@phnx-labs/computer-cli 0.1.4 → 0.1.7
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/CHANGELOG.md +30 -0
- package/README.md +279 -18
- package/package.json +9 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.7
|
|
4
|
+
|
|
5
|
+
- `computer sessions` uses the shared `@phnx-labs/tui` picker, list and stdout writer (PHNX-4227), so its controls and output match standalone `sessions` and `browser sessions`. The picker still lists every run.
|
|
6
|
+
- Ages read `just now`, `3 min ago`, `2 hours ago`, `4 days ago`, then a calendar date (`Sep 28`), in the picker, its preview and the table, instead of `3m ago` / `2h ago` / `5d ago`.
|
|
7
|
+
- The table's footer moves from stdout to stderr and reads `Showing 50 of 120 runs. --limit 120 or --json to see all, --search or --since to narrow.` instead of `… (70 more; --limit 120 …)`, so piped stdout carries rows only. Table columns are as wide as their widest cell, and a long task ends in `…`.
|
|
8
|
+
- Typing a filter in the picker closes the preview pane, as in `sessions`; clear the filter and press space to reopen it.
|
|
9
|
+
- `--json` output is unchanged.
|
|
10
|
+
|
|
11
|
+
## 0.1.6
|
|
12
|
+
|
|
13
|
+
- `computer sessions --since <when>` and `--until <when>` filter runs by last activity, with the same values as `sessions` (`2h`, `7d`, `4w`, `1mo`, `1y` or an ISO date). They apply to the picker, whose header now lists the active filters, the table and `--json`. An unreadable value exits 2.
|
|
14
|
+
- `computer sessions --limit <n>` now also caps `--json` when given (`--json` stays unbounded without it), and a value that is not a positive integer exits 2 instead of being ignored.
|
|
15
|
+
- Preserve 365-day computer run summaries independently of Agents and Sessions, with safe adoption of existing history, total action counts and saved screenshot locations.
|
|
16
|
+
- Browse runs and captures with consistent search, previews and Escape navigation; use `sessions --search` for scripts or `--open` to open a saved screenshot. Existing action and live desktop task commands remain available.
|
|
17
|
+
- Piped output is no longer cut off at 64 KiB: `computer sessions --json | …` and every other command now deliver all of their output to a pipe. The picker's prompt library loads only when a picker opens.
|
|
18
|
+
- `computer sessions` opens its picker in a terminal instead of failing with `Cannot find package '@inquirer/prompts'`.
|
|
19
|
+
- The legacy import skips runs older than the 365-day retention, and expired runs are pruned before a listing reads them. A legacy database with no computer table, or one that cannot be read, is checked once rather than on every listing; an unreadable one is reported once, and `computer sessions migrate` retries it.
|
|
20
|
+
- Add a generated command reference: `docs/command-reference.html` (searchable, command tree in a sidebar), `docs/command-index.md` and `docs/command-index.json`, built from the registered command tree by `bun scripts/gen-docs.ts`. `scripts/test.sh` fails when they are stale. `computer task start`, `task list` and `task stop` now have help descriptions.
|
|
21
|
+
- Return compact post-action screenshots in one CLI or MCP tool call, with optional local Tesseract OCR and original-desktop word coordinates. Preserve successful action results when capture fails.
|
|
22
|
+
- Add `computer mcp` image tool results and actual image inputs in the opt-in `computer run` model loop.
|
|
23
|
+
- Add Linux desktop tasks with private capability handles, reconnect, per-desktop operation serialization and owned-resource cleanup. New tasks default to isolated X displays; save `desktopMode` in `~/.agents/.computer/config.json` or override with `--desktop-mode`.
|
|
24
|
+
- Keep persistent VNC input responsive by consuming incremental framebuffer updates, and remove the two-second timer left behind after a closed VNC connection.
|
|
25
|
+
- macOS helper: coordinate clicks, drags and scrolls are gated on the app that owns the window under the point, not only on the named pid, and `screenshot --display` leaves out windows of apps outside the allow list. A coordinate paste restores the previous clipboard.
|
|
26
|
+
- Both helpers: element ids are never reused, so an id from an earlier `describe` returns `element_stale` instead of acting on a different element, and input from concurrent connections is serialized. The Windows helper drops an unauthenticated connection after 10 seconds or a 4 KiB first line.
|
|
27
|
+
- `stop --host` signals the recorded tunnel pid only while it is still that ssh tunnel, and `start --host` notices an ssh that exited during startup. Default screenshot captures are pruned to the newest 200 from the last 7 days, and VNC rejects rectangles outside the framebuffer.
|
|
28
|
+
|
|
29
|
+
## 0.1.5
|
|
30
|
+
|
|
31
|
+
- Saved screenshots carry their actual output path, name and byte count in action history, so session viewers can open the capture. Failed writes and window listings do not claim a saved capture.
|
|
32
|
+
|
|
3
33
|
## 0.1.4
|
|
4
34
|
|
|
5
35
|
- `computer apps` now surfaces menu-bar / status-item apps. The macOS helper listed only `.regular` (Dock) apps, so an accessory app such as AGI Menu was invisible in discovery and could not be targeted by `--bundle`/`--name` (pid resolution matches against the listing) even though the pid gate would drive it once its bundle id was in the allow list. Listing now includes `.regular` and `.accessory` and omits only background-only (`.prohibited`) processes; the hard floor, exact allow list and peer gates are unchanged. The macOS helper floor is 1.0.2, carrying this discovery fix.
|
package/README.md
CHANGED
|
@@ -1,34 +1,295 @@
|
|
|
1
|
-
#
|
|
1
|
+
# computer-cli
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](#platform-support)
|
|
4
|
+
[](#platform-support)
|
|
5
|
+
[](#platform-support)
|
|
6
|
+
|
|
7
|
+
`computer` drives desktop applications from the command line — macOS apps
|
|
8
|
+
through Accessibility, Windows apps through UI Automation over SSH, and any GUI
|
|
9
|
+
desktop over VNC. It reads the accessibility tree, clicks elements by id or
|
|
10
|
+
coordinate, types text, sends key chords, takes screenshots, and can run an
|
|
11
|
+
autonomous task with an embedded model loop. It talks to a local native helper
|
|
12
|
+
daemon on macOS, an SSH tunnel to the Windows driver, or the RFB protocol for
|
|
13
|
+
VNC targets.
|
|
14
|
+
|
|
15
|
+
## Install
|
|
4
16
|
|
|
5
17
|
```sh
|
|
6
18
|
npm install -g @phnx-labs/computer-cli
|
|
7
|
-
computer --
|
|
8
|
-
|
|
19
|
+
computer --version
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
npm installs a small Node launcher plus one compiled binary for your platform
|
|
23
|
+
(macOS arm64/x64, Linux arm64/x64, or Windows x64). No TypeScript sources or
|
|
24
|
+
source maps ship in the package.
|
|
25
|
+
|
|
26
|
+
## First run (macOS)
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
computer setup # download and verify the signed native helper
|
|
30
|
+
computer start # activate the helper daemon via launchd
|
|
31
|
+
computer apps # list apps the daemon may drive
|
|
32
|
+
computer screenshot -o desktop.png # capture the display
|
|
33
|
+
computer describe # dump the accessibility tree of the front app
|
|
34
|
+
computer click --id <element> # click an element from the tree
|
|
35
|
+
computer type --id <field> "hello" # set a field value
|
|
36
|
+
computer key "cmd+shift+s" # send a key chord
|
|
37
|
+
computer stop # deactivate the daemon
|
|
9
38
|
```
|
|
10
39
|
|
|
11
|
-
|
|
40
|
+
`setup` downloads the signed native helper to `/Applications/`. macOS requires
|
|
41
|
+
the user to grant Accessibility and Screen Recording access; setup cannot do
|
|
42
|
+
that automatically. `start` activates the helper daemon via launchd; `stop`
|
|
43
|
+
deactivates it. `computer status` reports installation, connection and trust
|
|
44
|
+
state.
|
|
45
|
+
|
|
46
|
+
## Remote targets
|
|
47
|
+
|
|
48
|
+
`--host` selects a remote desktop using the address grammar shared by every
|
|
49
|
+
Phoenix CLI:
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
# Windows: native UI Automation driver over SSH
|
|
53
|
+
computer screenshot --host ssh://user@winbox
|
|
54
|
+
computer click --host ssh://user@winbox --id <element>
|
|
55
|
+
|
|
56
|
+
# VNC: any GUI desktop (Linux, macOS, Windows) over RFB
|
|
57
|
+
computer screenshot --host vnc://host:5900
|
|
58
|
+
computer click --host vnc://host:5900 --x 512 --y 384
|
|
59
|
+
computer type-text --host vnc://host:5900 --text "hello"
|
|
60
|
+
computer key --host vnc://host:5900 --keys enter
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
VNC provides screenshot and coordinate input (`click --x --y`, `type-text`,
|
|
64
|
+
`key`). Accessibility verbs (`describe`, `get-text`, `click --id`, `type --id`)
|
|
65
|
+
require a native driver and are not available over VNC.
|
|
66
|
+
|
|
67
|
+
`computer run` drives an app from a natural-language task using an embedded model
|
|
68
|
+
loop over the computer verbs.
|
|
12
69
|
|
|
13
|
-
|
|
70
|
+
## Agent tools and isolated Linux desktops
|
|
14
71
|
|
|
15
|
-
|
|
72
|
+
`computer mcp` serves tools over stdio to your existing agent. It does not make
|
|
73
|
+
model API calls. Input tools return a compact screenshot as an actual MCP image
|
|
74
|
+
alongside action metadata. `computer run` remains the opt-in embedded model loop;
|
|
75
|
+
it sends the latest screenshot as an image to its configured provider.
|
|
16
76
|
|
|
17
|
-
|
|
77
|
+
On Linux, each new MCP task gets its own desktop by default. Install `Xvfb`,
|
|
78
|
+
`x11vnc` (with Unix-socket support), `xauth`, and util-linux (`flock`, `setpriv`).
|
|
79
|
+
These displays start empty; launch an application with `launch --path`.
|
|
18
80
|
|
|
19
|
-
|
|
81
|
+
```sh
|
|
82
|
+
computer mcp # create an isolated Linux task
|
|
83
|
+
computer task start # create a task for CLI use; prints its ID
|
|
84
|
+
computer launch --path /path/to/app --desktop-task TASK_ID
|
|
85
|
+
computer click --x 400 --y 300 --screenshot --desktop-task TASK_ID
|
|
86
|
+
computer mcp --desktop-task TASK_ID # reconnect another agent to that task
|
|
87
|
+
computer task list
|
|
88
|
+
computer task stop TASK_ID
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Save the default in `~/.agents/.computer/config.json`, or override it when creating
|
|
92
|
+
a task. An override never changes the saved setting or an existing task's mode.
|
|
93
|
+
|
|
94
|
+
```sh
|
|
95
|
+
computer config desktopMode shared
|
|
96
|
+
computer task start --desktop-mode isolated
|
|
97
|
+
computer mcp --desktop-mode shared --host vnc://localhost:5901
|
|
98
|
+
```
|
|
20
99
|
|
|
21
|
-
|
|
100
|
+
One private local service coordinates Linux tasks. Clients sharing a task hold
|
|
101
|
+
its desktop lock through target selection, input and capture. Separate isolated
|
|
102
|
+
desktops run independently; shared-mode tasks are serialized. Direct commands
|
|
103
|
+
without `--desktop-task` do not participate in that coordination. Disconnecting
|
|
104
|
+
one client does not stop another client's task. Idle tasks expire after 15 minutes.
|
|
22
105
|
|
|
23
|
-
|
|
106
|
+
Isolation covers the X display, windows, focus and pointer, not the host user,
|
|
107
|
+
filesystem, application profiles or credentials. Applications that reuse a
|
|
108
|
+
global profile may require their own separate-profile launch configuration.
|
|
109
|
+
Private task handles prevent accidental cross-task access; they are not a
|
|
110
|
+
security boundary against hostile code running as the same OS user. No TCP port
|
|
111
|
+
is opened for an isolated desktop. Native macOS shared-mode MCP uses the existing
|
|
112
|
+
helper; managed task provisioning currently requires Linux.
|
|
113
|
+
|
|
114
|
+
## Action observations and local OCR
|
|
24
115
|
|
|
25
116
|
```sh
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
bash scripts/build.sh
|
|
29
|
-
# Run dist/<platform>-<arch>/computer directly for development.
|
|
30
|
-
bash scripts/release.sh # print the release plan
|
|
31
|
-
bash scripts/release.sh --confirm # publish the reviewed commit
|
|
117
|
+
computer click --host vnc://localhost:5901 --x 400 --y 300 --screenshot result.png --max-dimension 1280 --json
|
|
118
|
+
computer screenshot --host vnc://localhost:5901 --ocr --out screen.png --json
|
|
32
119
|
```
|
|
33
120
|
|
|
34
|
-
|
|
121
|
+
`--ocr` uses local Tesseract and includes text, word bounds and confidence, without
|
|
122
|
+
a model call. For input commands it implies a post-action capture. OCR coordinates
|
|
123
|
+
refer to the original desktop; screenshot `scale` and `scale_y` map that desktop
|
|
124
|
+
into the resized image. Images preserve aspect ratio and default to a maximum
|
|
125
|
+
edge of 1280 pixels for action/MCP observations. A screenshot is an observation,
|
|
126
|
+
not a guarantee that an application's asynchronous work has finished.
|
|
127
|
+
|
|
128
|
+
If capture fails after a successful action, the action remains successful and
|
|
129
|
+
the capture error is returned separately. Retry observation, not the action.
|
|
130
|
+
Native compact capture requires a helper supporting `max_dimension`; an older
|
|
131
|
+
helper that ignores the requested bound reports `helper_update_required`.
|
|
132
|
+
|
|
133
|
+
## How fast are action observations?
|
|
134
|
+
|
|
135
|
+
In a September 15, 2026 Linux arm64 benchmark, the installed **0.1.5** CLI was
|
|
136
|
+
compared with the **0.1.6 candidate** at `60ca877`. The candidate was not released
|
|
137
|
+
or installed at measurement time. Gedit displayed the real 729-line
|
|
138
|
+
`src/commands/actions.ts`; each sample sent Page Down and captured the result on
|
|
139
|
+
the same owned, isolated 1600 × 1000 desktop.
|
|
140
|
+
|
|
141
|
+
| Workflow | Median | Observed range | Samples |
|
|
142
|
+
| --- | ---: | ---: | ---: |
|
|
143
|
+
| 0.1.5: separate action and screenshot | 4,494 ms | 4,453–4,552 ms | 8 |
|
|
144
|
+
| Candidate: separate action and screenshot | 515 ms | 454–691 ms | 8 |
|
|
145
|
+
| Candidate: combined action and screenshot | 712 ms | 693–947 ms | 8 |
|
|
146
|
+
| Candidate: MCP image response | 533 ms | 496–578 ms | 8 |
|
|
147
|
+
| Candidate: MCP image + local OCR | 1,205 ms | 1,111–1,364 ms | 8 |
|
|
148
|
+
|
|
149
|
+
The candidate MCP workflow had **88.1% lower median latency (8.4× speedup)** than the released
|
|
150
|
+
separate-call workflow. Most of that improvement also exists in the candidate's
|
|
151
|
+
separate CLI calls, following the connection-close timer fix; it is not an
|
|
152
|
+
MCP-only speedup. Combined capture was **38% slower** than candidate separate
|
|
153
|
+
calls here, and MCP was not demonstrably faster than candidate separate calls.
|
|
154
|
+
OCR added **672 ms** to the MCP median.
|
|
155
|
+
|
|
156
|
+
Separate screenshots were full-size; combined/MCP observations used the default
|
|
157
|
+
1280 × 800 image and a 150 ms post-input receive window. MCP PNGs were **21.3%
|
|
158
|
+
smaller** (93,406 versus 118,695 bytes), excluding protocol/base64 overhead.
|
|
159
|
+
These compare default workflows, not identical capture settings.
|
|
160
|
+
|
|
161
|
+
Each mode had one warmup; measured order rotated between rounds. Timings include
|
|
162
|
+
CLI process start/exit or a tool request on an already-connected MCP client.
|
|
163
|
+
Desktop/app startup, the initial 67 ms MCP connection and harness verification
|
|
164
|
+
are excluded. All 40 captures matched the expected source section using
|
|
165
|
+
case-insensitive OCR anchors; original case-sensitive misses were retained in
|
|
166
|
+
the raw results. The busy host and eight samples per mode make this a directional
|
|
167
|
+
comparison, not a production tail-latency estimate. No model calls, token savings,
|
|
168
|
+
concurrent-task throughput, macOS latency or Windows latency were measured.
|
|
169
|
+
|
|
170
|
+
See the [benchmark evidence on PR #14](https://github.com/phnx-labs/computer-cli/pull/14#issuecomment-5683895205)
|
|
171
|
+
for the recorded run and delivery limits. Source links require repository access.
|
|
172
|
+
|
|
173
|
+
## Command reference
|
|
174
|
+
|
|
175
|
+
[docs/command-reference.html](docs/command-reference.html) lists every command
|
|
176
|
+
with its arguments and options, searchable, with the command tree in a sidebar.
|
|
177
|
+
[docs/command-index.md](docs/command-index.md) is the one-line-per-command index,
|
|
178
|
+
and [docs/command-index.json](docs/command-index.json) the structured form.
|
|
179
|
+
`bun scripts/gen-docs.ts` regenerates all three from the registered command
|
|
180
|
+
tree; `scripts/test.sh` fails when they are stale.
|
|
181
|
+
|
|
182
|
+
## Using it through agents-cli
|
|
183
|
+
|
|
184
|
+
Agents CLI ships `agents computer` as a thin consumer of this binary. It
|
|
185
|
+
forwards every verb unchanged and adds fleet device discovery (`--device` becomes
|
|
186
|
+
a resolved `--host`), agent-session identity, and cross-machine session history.
|
|
187
|
+
The seam between the two is documented in
|
|
188
|
+
[docs/integration.md](docs/integration.md). Transports, addresses and verbs are
|
|
189
|
+
explained in [docs/computer.md](docs/computer.md).
|
|
190
|
+
|
|
191
|
+
## Platform support
|
|
192
|
+
|
|
193
|
+
| Platform | CLI architectures | Desktop driver |
|
|
194
|
+
| --- | --- | --- |
|
|
195
|
+
| macOS | arm64, x64 | Native Accessibility helper (local) |
|
|
196
|
+
| Windows | x64 | UI Automation driver over SSH |
|
|
197
|
+
| Linux | arm64, x64 | VNC; isolated task desktops via Xvfb (no native Accessibility) |
|
|
198
|
+
|
|
199
|
+
These badges describe platform support, not feature parity. Managed isolated
|
|
200
|
+
task provisioning is Linux-only. The measurements above cover Linux/VNC, not
|
|
201
|
+
the native macOS or Windows paths.
|
|
202
|
+
|
|
203
|
+
### Do macOS and Windows need native helpers?
|
|
204
|
+
|
|
205
|
+
Yes, for native element-level automation, and **both helpers already live in
|
|
206
|
+
this repository**, extracted from Agents CLI. Installing Agents CLI is not
|
|
207
|
+
required.
|
|
208
|
+
|
|
209
|
+
- **macOS:** the [Swift helper](native/computer-mac) supplies Accessibility,
|
|
210
|
+
ScreenCaptureKit capture and CoreGraphics input. Its signed app bundle keeps a
|
|
211
|
+
stable identity for the user's Accessibility and Screen Recording grants.
|
|
212
|
+
The CLI downloads/verifies it during setup and manages it through launchd.
|
|
213
|
+
- **Windows:** the [C#/.NET helper](native/computer-win) supplies UI Automation,
|
|
214
|
+
screen capture and `SendInput`. Setup provisions a scheduled task in the
|
|
215
|
+
logged-in interactive desktop session. The CLI reaches its loopback service
|
|
216
|
+
over an authenticated SSH tunnel; an SSH login alone is not a GUI session.
|
|
217
|
+
- **Linux/VNC:** no macOS or Windows helper is needed. A VNC server supplies
|
|
218
|
+
screenshot and coordinate input; isolated Linux tasks additionally need the
|
|
219
|
+
dependencies listed [above](#agent-tools-and-isolated-linux-desktops).
|
|
220
|
+
|
|
221
|
+
Native helpers retain their separate, immutable `computer-mac/v*` and
|
|
222
|
+
`computer-win/v*` release channels. An ordinary CLI release does not rebuild
|
|
223
|
+
them.
|
|
224
|
+
|
|
225
|
+
## Troubleshooting
|
|
226
|
+
|
|
227
|
+
- **Accessibility not trusted (macOS).** `computer status` shows whether the
|
|
228
|
+
helper has Accessibility and Screen Recording access. Grant both in System
|
|
229
|
+
Settings > Privacy & Security. The helper binary path must match the grant;
|
|
230
|
+
`computer setup` after a helper upgrade may require re-granting.
|
|
231
|
+
- **VNC password.** Pass `--vnc-password <pw>` or set
|
|
232
|
+
`COMPUTER_HELPER_VNC_PASSWORD`. A VNC server with no authentication needs
|
|
233
|
+
neither.
|
|
234
|
+
- **`unsupported_over_vnc`.** Accessibility verbs (`describe`, `get-text`,
|
|
235
|
+
`click --id`, `type --id`) require a native driver. Over VNC, use coordinate
|
|
236
|
+
input (`click --x --y`, `type-text --text`, `key --keys`).
|
|
237
|
+
- **Windows SSH tunnel.** `computer start --host ssh://user@winbox` opens the
|
|
238
|
+
tunnel. The Windows driver runs in the interactive desktop session, so the SSH
|
|
239
|
+
user must have an active logon session.
|
|
240
|
+
|
|
241
|
+
## Development
|
|
242
|
+
|
|
243
|
+
```sh
|
|
244
|
+
bash scripts/install.sh # install dependencies
|
|
245
|
+
bash scripts/test.sh # typecheck + tests
|
|
246
|
+
bash scripts/build.sh # compile this platform's binary into dist/
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
`scripts/build.sh` bundles and minifies `src/`, obfuscates the bundle offline
|
|
250
|
+
with a pinned tool and fixed seed, then compiles a bytecode binary per target.
|
|
251
|
+
Run `dist/<platform>-<arch>/computer` directly during development.
|
|
252
|
+
|
|
253
|
+
Release with the repository's own script:
|
|
254
|
+
|
|
255
|
+
```sh
|
|
256
|
+
bash scripts/release.sh # print the release plan (dry run)
|
|
257
|
+
secrets exec npmjs.com -- bash scripts/release.sh --confirm
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Release requires a clean linked worktree at the reviewed `origin/main` commit. It
|
|
261
|
+
builds every platform, verifies packed file lists and immutable package
|
|
262
|
+
integrity, publishes the launcher and per-platform packages, and checks a
|
|
263
|
+
registry install. Live desktop verification remains part of delivery.
|
|
264
|
+
|
|
265
|
+
Minification, obfuscation and bytecode compilation raise the bar for casual
|
|
266
|
+
inspection; they are not a guarantee against reverse engineering. Keep
|
|
267
|
+
credentials out of the binary.
|
|
268
|
+
|
|
269
|
+
## License
|
|
270
|
+
|
|
271
|
+
Functional Source License 1.1 with an Apache 2.0 future grant
|
|
272
|
+
([FSL-1.1-Apache-2.0](LICENSE)).
|
|
273
|
+
|
|
274
|
+
## Browse run history
|
|
275
|
+
|
|
276
|
+
`computer sessions` opens a searchable picker: arrows move, Enter shows run
|
|
277
|
+
details and saved screenshots, and Escape goes back. `--search <text>` also
|
|
278
|
+
filters scripted output, `--json` remains a row array, and `--no-interactive`
|
|
279
|
+
prints the table. `--since <when>` and `--until <when>` keep runs whose last
|
|
280
|
+
activity falls in that window and accept the same values as `sessions`: `2h`,
|
|
281
|
+
`7d`, `4w`, `1mo`, `1y` or an ISO date. An unreadable value exits 2. `--limit
|
|
282
|
+
<n>` caps the table (default 50) and, when given, `--json`; when rows are left
|
|
283
|
+
out, the count and the `--limit` that shows them go to stderr, so piped stdout
|
|
284
|
+
carries rows only. The picker header
|
|
285
|
+
lists the active filters. `--open latest` (or a screenshot filename) opens a recorded
|
|
286
|
+
capture. Live Linux desktops remain under `computer task start/list/stop`.
|
|
287
|
+
|
|
288
|
+
Computer owns 365-day run summaries under `.history/computer/history.db`.
|
|
289
|
+
Counts survive the 30-day action ledger; summaries retain the latest 120
|
|
290
|
+
actions and 120 screenshot locations per run. Typed text is never stored.
|
|
291
|
+
Existing ledger entries and legacy Agents summaries are adopted without
|
|
292
|
+
modifying their source. Legacy runs older than 365 days are skipped. The
|
|
293
|
+
automatic import runs once; if the legacy database cannot be read it is reported
|
|
294
|
+
once, and `computer sessions migrate [--from /path/to/sessions.db]` retries.
|
|
295
|
+
The command safely repeats the summary import. Sessions need not be installed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phnx-labs/computer-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Native desktop automation over Accessibility, UI Automation and VNC",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -25,14 +25,16 @@
|
|
|
25
25
|
"test": "bash scripts/test.sh"
|
|
26
26
|
},
|
|
27
27
|
"optionalDependencies": {
|
|
28
|
-
"@phnx-labs/computer-cli-darwin-arm64": "0.1.
|
|
29
|
-
"@phnx-labs/computer-cli-darwin-x64": "0.1.
|
|
30
|
-
"@phnx-labs/computer-cli-linux-arm64": "0.1.
|
|
31
|
-
"@phnx-labs/computer-cli-linux-x64": "0.1.
|
|
32
|
-
"@phnx-labs/computer-cli-win32-x64": "0.1.
|
|
28
|
+
"@phnx-labs/computer-cli-darwin-arm64": "0.1.7",
|
|
29
|
+
"@phnx-labs/computer-cli-darwin-x64": "0.1.7",
|
|
30
|
+
"@phnx-labs/computer-cli-linux-arm64": "0.1.7",
|
|
31
|
+
"@phnx-labs/computer-cli-linux-x64": "0.1.7",
|
|
32
|
+
"@phnx-labs/computer-cli-win32-x64": "0.1.7"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@
|
|
35
|
+
"@modelcontextprotocol/sdk": "1.30.0",
|
|
36
|
+
"@phnx-labs/cli-docs": "0.1.1",
|
|
37
|
+
"@phnx-labs/tui": "file:vendor/phnx-labs-tui-0.1.0.tgz",
|
|
36
38
|
"@types/bun": "1.3.10",
|
|
37
39
|
"@types/node": "26.1.0",
|
|
38
40
|
"bun": "1.4.1",
|