@usepowerplant/cli 0.4.3 → 0.4.4
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.
- package/README.md +69 -10
- package/dist/cli.js +10016 -4149
- package/dist/hooks/powerplant-codex-transcript.mjs +67 -0
- package/package.json +3 -3
- package/dist/hooks/powerplant-session-change.mjs +0 -21
package/README.md
CHANGED
|
@@ -36,7 +36,10 @@ re-run at any time — finished steps are skipped with a note:
|
|
|
36
36
|
the team's sessions, review rooms, and search. If you skip or cancel
|
|
37
37
|
a sign-in, nothing breaks: finish later with `powerplant connect`
|
|
38
38
|
(add `--client claude|codex|cursor` for just those — repeatable). Each
|
|
39
|
-
agent's own sign-in output prints as it runs.
|
|
39
|
+
agent's own sign-in output prints as it runs. Connect supports Claude Code
|
|
40
|
+
2.1.186, Codex 0.134.0, and Cursor 3.4 or newer; an older installation is
|
|
41
|
+
reported with an update hint and, when the machine holds another copy of
|
|
42
|
+
the same agent, that copy is tried instead.
|
|
40
43
|
|
|
41
44
|
The background service is macOS-only today. On other platforms, init still
|
|
42
45
|
enrolls the machine and adds MCP to your agents, and points you at running
|
|
@@ -59,7 +62,8 @@ sync-everything option.
|
|
|
59
62
|
When the CLI itself hits a bug — a crash or an unexpected error — it sends
|
|
60
63
|
an error report to [Sentry](https://sentry.io) so we can fix the problem
|
|
61
64
|
without asking you to dig through logs. This is on by default, and there
|
|
62
|
-
is no setting to turn it off
|
|
65
|
+
is no setting to turn it off for free users. Paid users can arrange an opt-out
|
|
66
|
+
through [support](mailto:support@forestwalk.ai). A report contains the error and its
|
|
63
67
|
stack trace, the CLI version and environment, which enrolled machine and
|
|
64
68
|
org the background service belongs to, and diagnostic details such as ids
|
|
65
69
|
and counts. It never contains session transcripts, code, or file contents,
|
|
@@ -76,7 +80,7 @@ something out.
|
|
|
76
80
|
```bash
|
|
77
81
|
powerplant status # what the sync service is doing (add --json for tools)
|
|
78
82
|
powerplant doctor # a diagnostics summary to paste into a support email
|
|
79
|
-
powerplant pause # stop uploads without uninstalling
|
|
83
|
+
powerplant pause # stop background uploads without uninstalling
|
|
80
84
|
powerplant resume # start again — a catch-up pass covers the pause
|
|
81
85
|
powerplant restart # restart the background service
|
|
82
86
|
powerplant connect # connect agents installed after setup, or re-sign-in
|
|
@@ -86,10 +90,12 @@ powerplant sync # run one upload pass now, in the foreground
|
|
|
86
90
|
|
|
87
91
|
`status` tells you whether the machine is enrolled, whether the service is
|
|
88
92
|
running, when it last uploaded, and what (if anything) is failing — with the
|
|
89
|
-
command that fixes it. `pause` is safe for as long as you need:
|
|
90
|
-
uploads while paused,
|
|
93
|
+
command that fixes it. `pause` is safe for as long as you need: the background
|
|
94
|
+
service uploads nothing while paused, every later command reminds you, `init`
|
|
95
|
+
offers to resume, and `resume` goes back and covers everything the pause
|
|
91
96
|
skipped. `sync` is the manual alternative to the background service — the
|
|
92
|
-
day-to-day upload path on machines that can't run it
|
|
97
|
+
day-to-day upload path on machines that can't run it; asked for explicitly, it
|
|
98
|
+
still runs while paused and says so. `disconnect` is the
|
|
93
99
|
inverse of `connect`: it removes each agent's Powerplant MCP entry and the
|
|
94
100
|
sign-in stored with it, and agents that were never connected just say so.
|
|
95
101
|
|
|
@@ -99,10 +105,28 @@ sign-in stored with it, and agents that were never connected just say so.
|
|
|
99
105
|
powerplant update
|
|
100
106
|
```
|
|
101
107
|
|
|
102
|
-
That
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
108
|
+
That reinstalls `@usepowerplant/cli` with whichever package manager put it
|
|
109
|
+
on this machine (npm, pnpm, bun, or yarn), so the copy that is running is the
|
|
110
|
+
copy that gets replaced, then restarts the background sync onto the new
|
|
111
|
+
version. Running the manager's own global install yourself works too: the
|
|
112
|
+
service notices the new version on disk and restarts itself within moments.
|
|
113
|
+
When the install can't be replaced this way (a folder only an administrator
|
|
114
|
+
can write, or a layout the CLI doesn't recognise), `update` says why and
|
|
115
|
+
prints the command to run instead. `powerplant status` tells you when a
|
|
116
|
+
newer version is available, and the menu bar app offers the update as one
|
|
117
|
+
click; it runs in the background and the menu shows its progress.
|
|
118
|
+
|
|
119
|
+
`powerplant init` asks once whether to keep the CLI up to date
|
|
120
|
+
automatically (yes is the default at the prompt, and a non-interactive
|
|
121
|
+
init says it took that default). With that on, the background sync checks
|
|
122
|
+
the registry hourly (and at boot) and installs a new release the same way,
|
|
123
|
+
then restarts itself onto it. The choice is per machine and only an
|
|
124
|
+
explicit yes counts: a machine set up before the question existed stays
|
|
125
|
+
off until someone turns it on. `powerplant status` and `powerplant doctor`
|
|
126
|
+
report the current choice, and `powerplant update --automatic on` or
|
|
127
|
+
`--automatic off`, or the menu bar's More menu, change it. A release that
|
|
128
|
+
fails to install is not retried by itself; the menu bar shows the failure
|
|
129
|
+
with a retry and the update log, and the next release clears it.
|
|
106
130
|
|
|
107
131
|
Powerplant also publishes the oldest version it still supports. When yours
|
|
108
132
|
is older, `powerplant status`, `powerplant doctor`, the menu bar app, and
|
|
@@ -110,6 +134,41 @@ the sync service log all say so and point you at `powerplant update`. Nothing
|
|
|
110
134
|
stops working on that notice — an unsupported version keeps syncing, but
|
|
111
135
|
it is no longer tested or fixed, so update when you see it.
|
|
112
136
|
|
|
137
|
+
### How a release reaches production
|
|
138
|
+
|
|
139
|
+
Every release is published to npm as `latest`. Machines pinned to the
|
|
140
|
+
staging environment (and our own development and agent machines) follow
|
|
141
|
+
npm, so a release soaks on our own machines first. Production machines
|
|
142
|
+
never follow npm: they ask the production API which version is promoted
|
|
143
|
+
and install exactly that, pinned. When a release has held up on staging,
|
|
144
|
+
dispatch the Promote CLI workflow with the version; production machines
|
|
145
|
+
with automatic updates install it within the hour, and everyone else sees
|
|
146
|
+
it in the menu bar and `powerplant status`. Until something is promoted,
|
|
147
|
+
production sees no update at all, only the supported-version floor.
|
|
148
|
+
Promoting an older version than the current one is a hold: production
|
|
149
|
+
stops advancing, and no machine downgrades. A bad release is undone by a
|
|
150
|
+
new release and a new promotion.
|
|
151
|
+
|
|
152
|
+
### Staging beside production on one Mac
|
|
153
|
+
|
|
154
|
+
A machine has one global `powerplant` by default, and the background sync
|
|
155
|
+
for each environment runs whatever copy `init` was run from. To soak
|
|
156
|
+
releases on staging while production keeps the promoted version, give
|
|
157
|
+
staging its own copy under its own npm prefix and set it up from there:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
npm install -g --prefix ~/.powerplant-staging @usepowerplant/cli
|
|
161
|
+
~/.powerplant-staging/bin/powerplant init --env staging
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
The staging daemon runs that copy and updates it in place (the updater
|
|
165
|
+
pins npm to the prefix the running copy lives under), so
|
|
166
|
+
`~/.powerplant-staging` follows npm's newest release while the production
|
|
167
|
+
install follows the promoted one. Run staging commands through that path,
|
|
168
|
+
`~/.powerplant-staging/bin/powerplant status --env staging`, or put the
|
|
169
|
+
directory on your PATH after the production one. `powerplant doctor` names
|
|
170
|
+
the install it is running from.
|
|
171
|
+
|
|
113
172
|
### Moving from @powerplant-sh/cli
|
|
114
173
|
|
|
115
174
|
Releases up to 0.2.1 were published as `@powerplant-sh/cli`. That package
|