turnout-cli 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +29 -24
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -23,7 +23,7 @@ Point an app at a stand:
23
23
  $ turnout use web staging
24
24
  'web' now uses 'staging'.
25
25
  The running gateway picks this up automatically.
26
- Stand check: https://staging.example.com responded with 200 OK.
26
+ 'staging' is up: https://staging.example.com/health answered 200 in 84 ms.
27
27
  ```
28
28
 
29
29
  Nothing in the project changed - the app still talks to `localhost`, and the [gateway](https://lacodda.github.io/turnout/concepts/gateway/) routes it to the stand you picked. Your session survives the switch, because cookies are kept per app **and** stand.
@@ -79,24 +79,26 @@ And see what has been going on:
79
79
 
80
80
  ```console
81
81
  $ turnout status
82
- turnout 0.20.0
83
- Data directory: ~/.local/share/lacodda/turnout
84
- Apps: 2 (api, web)
85
- Servers: 2 (prod-eu, staging)
86
- Group: contour (web, api)
87
- Creds: 1 (prod-deploy)
88
- Paths: 1 (wwwroot)
89
- Targets: 1 (web-prod-eu)
90
- Bindings:
91
- api -> staging
92
- web -> prod-eu
93
- Gateway: running (pid 24180)
94
- Front: http://localhost - http://NAME.localhost
95
- Spare: web:7100 -> VITE_API_URL, api:7101 -> TURNOUT_GATEWAY_URL
96
- Jobs: 2 running (api dev, web dev) - see `turnout ps`
97
- Recent:
98
- 2026-08-09T01:15:02Z deploy web -> prod-eu (142 files)
99
- 2026-08-09T01:12:44Z use web -> prod-eu
82
+ turnout 0.22.0 ~/.local/share/lacodda/turnout
83
+
84
+ Apps
85
+ api -> staging http://api.localhost spare :7101 (TURNOUT_GATEWAY_URL)
86
+ web -> prod-eu http://web.localhost spare :7100 (VITE_API_URL)
87
+
88
+ Gateway running · pid 24180 · up 2h 05m
89
+ front door http://localhost
90
+ ! 'staging' answers 502 - the stand is down, not the app (3m)
91
+
92
+ Jobs 2 running - `turnout ps` shows the rest
93
+ api dev ready 9m http://api.localhost
94
+ web dev ready 14m http://web.localhost
95
+
96
+ Recent
97
+ 3m ago deploy web -> prod-eu (142 files)
98
+ 6m ago use web -> prod-eu
99
+
100
+ $ turnout status --short
101
+ prod-eu · gw ok · 2 dev
100
102
  ```
101
103
 
102
104
  ## What you get
@@ -111,11 +113,13 @@ Recent:
111
113
  - **Secrets in the OS keyring** - Windows Credential Manager, macOS Keychain, Linux Secret Service. A secret belongs to a credential, so one `pass set` covers every stand that credential reaches. Copy it to the clipboard with one command; nothing lands in a config file, and `status` only ever reports *that* a credential exists.
112
114
  - **Commands from any directory.** `dev`, `build`, `test`, `lint` and any custom command run in the right project folder. Commands are taken from your actual `package.json` scripts, so a project whose dev script is `serve` still answers to `turnout dev`.
113
115
  - **A quiet console.** A build shows a loader and its elapsed time, not two minutes of scrollback; a dev server goes quiet once it reports itself and speaks again only when something breaks. A failure prints its output on the spot - no re-run to see what went wrong - and every job's output is kept in a log file whatever the terminal showed. `-v` gives you all of it, and so does any pipe, so scripts and CI logs are unchanged.
114
- - **Jobs in the background.** `turnout dev --detach` gives the terminal back and the server keeps running; so do `build`, `run` and `deploy`. `turnout ps` shows everything turnout runs - the gateway included - with ports, addresses and uptime, `logs -f` follows any of it, and `stop` takes a job down with every process it started.
116
+ - **Jobs in the background.** `turnout dev --detach` gives the terminal back and the server keeps running; so do `build`, `run` and `deploy`. When one is done, a desktop notification says so and opens the page, the stand or the log of the failure. `turnout ps` shows everything turnout runs, `logs -f` follows any of it, and `stop` takes a job down with every process it started.
115
117
  - **A hand on the server.** `turnout ssh web-prod` opens a session with host, port, user and key from the catalogs, in the deploy directory, the password already on the clipboard; `turnout exec web-prod -- docker compose ps` runs one command there and hands back its exit code.
116
118
  - **Deploy over SSH/SFTP** - build, upload, restart, with remote backup and restore when a release goes wrong. Artifacts travel as a single archive instead of thousands of round trips, falling back to file-by-file when the server cannot unpack one. Linux and Windows servers alike: turnout detects which shell answers SSH and phrases every remote command in it.
117
119
  - **Portable settings.** `export` writes your apps, servers, credentials, paths, targets and groups to one file and `import` merges it on another machine; secrets come along only when you ask, sealed with a passphrase.
118
120
  - **Stays current.** A once-a-day check mentions a new release without ever delaying a command, and `self-update` installs it - leaving package-manager installs to their package manager.
121
+ - **One window onto it all.** `status` shows where every app points, the gateway, running jobs and the latest actions, with clickable addresses; `status --short` puts `prod · gw ok · 2 dev` into a starship or tmux line; `use -` goes back to the stand before. Every command that reports takes `--json`.
122
+ - **A gateway that speaks up.** A stand answering 502 or a session the stand refused shows in `status` and the prompt line, and once on the desktop - not as a mystery in your app. Stands behind single sign-on get their browser session handed over with `turnout cookie set`.
119
123
  - **Groups.** Bind a whole contour to one stand with a single `use`.
120
124
  - **Nothing to memorize.** Leave a name out and pick it from a list; in bash, Tab completes app, server, credential, path and group names from your own catalogs. The short alias `tn` is installed alongside.
121
125
  - **An action journal.** Every state change appends one JSON line - what happened and to which entities, never secrets or output. `tail`, `grep` and `jq` work on it directly.
@@ -178,10 +182,11 @@ Full command reference and concepts: **[lacodda.github.io/turnout](https://lacod
178
182
 
179
183
  ## Status
180
184
 
181
- v0.20.0, in daily use. Everything above works today: stands and switching
182
- between them, the gateway, secrets in the OS keyring, the quiet console, jobs
183
- in the background with `ps`, `logs` and `stop`, and build and deploy from any
184
- directory. What landed in each version:
185
+ v0.22.0, in daily use. Everything above works today: stands and switching
186
+ between them, the gateway and what it notices about them, secrets in the OS
187
+ keyring, the quiet console, jobs in the background with a notification when
188
+ they are done, `status` for a person, a prompt and a script, and build and
189
+ deploy from any directory. What landed in each version:
185
190
  [the Releases page](https://github.com/lacodda/turnout/releases).
186
191
 
187
192
  ## Documentation
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "turnout-cli",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "turnout": {
5
- "binary": "v0.20.0"
5
+ "binary": "v0.22.0"
6
6
  },
7
7
  "description": "A developer's switchyard: point local apps at any backend stand, keep servers and secrets at hand, build and deploy from any directory",
8
8
  "license": "MIT",