@phnx-labs/computer-cli 0.1.5 → 0.1.8

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 (3) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +293 -18
  3. package/package.json +9 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.8
4
+
5
+ - Add `scripts/generate-cli-docs.sh` with `--check` and `--out-dir`, downloadable command references in PR/release-branch CI, and a freshness check that also covers releases with tests/build skipped.
6
+ - Calling `computer` directly records the same session as `agents computer`: it now reads `CLAUDE_SESSION_ID` and `AGENTS_RUN_ID`, prefers `CODEX_THREAD_ID` and `CLAUDE_CODE_SESSION_ID` over `AGENTS_SESSION_ID` / `AGENT_SESSION_ID`, and skips empty values. An inherited context session still wins. Target admissions use the same resolver.
7
+ - `computer run` exits 1 when it stops at `--max-steps` without a completion, in both human and `--json` output; the JSON result is unchanged. `--max-steps` and `--max-tokens` reject values that are not positive integers (such as `0`, `abc` or `1.5`) before any request.
8
+
9
+ ## 0.1.7
10
+
11
+ - `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.
12
+ - 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`.
13
+ - 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 `…`.
14
+ - Typing a filter in the picker closes the preview pane, as in `sessions`; clear the filter and press space to reopen it.
15
+ - `--json` output is unchanged.
16
+
17
+ ## 0.1.6
18
+
19
+ - `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.
20
+ - `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.
21
+ - Preserve 365-day computer run summaries independently of Agents and Sessions, with safe adoption of existing history, total action counts and saved screenshot locations.
22
+ - 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.
23
+ - 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.
24
+ - `computer sessions` opens its picker in a terminal instead of failing with `Cannot find package '@inquirer/prompts'`.
25
+ - 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.
26
+ - 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.
27
+ - 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.
28
+ - Add `computer mcp` image tool results and actual image inputs in the opt-in `computer run` model loop.
29
+ - 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`.
30
+ - Keep persistent VNC input responsive by consuming incremental framebuffer updates, and remove the two-second timer left behind after a closed VNC connection.
31
+ - 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.
32
+ - 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.
33
+ - `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.
34
+
3
35
  ## 0.1.5
4
36
 
5
37
  - 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.
package/README.md CHANGED
@@ -1,34 +1,309 @@
1
- # Computer CLI
1
+ # computer-cli
2
2
 
3
- Desktop automation through macOS Accessibility, Windows UI Automation and VNC.
3
+ [![macOS: arm64 and x64](https://img.shields.io/badge/macOS-arm64%20%7C%20x64-24292f?logo=apple&logoColor=white)](#platform-support)
4
+ [![Linux: arm64 and x64](https://img.shields.io/badge/Linux-arm64%20%7C%20x64-24292f?logo=linux&logoColor=white)](#platform-support)
5
+ [![Windows: x64](https://img.shields.io/badge/Windows-x64-0078D4?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI%2BPHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0wIDBoN3Y3SDB6bTkgMGg3djdIOXptLTkgOWg3djdIMHptOSAwaDd2N0g5eiIvPjwvc3ZnPg%3D%3D)](#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 --help
8
- computer apps
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
38
+ ```
39
+
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.
69
+
70
+ ## Agent tools and isolated Linux desktops
71
+
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.
76
+
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`.
80
+
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
+ ```
99
+
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.
105
+
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
115
+
116
+ ```sh
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
119
+ ```
120
+
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
+ ```bash
176
+ scripts/generate-cli-docs.sh # refresh docs/
177
+ scripts/generate-cli-docs.sh --check # fail on stale docs
178
+ scripts/generate-cli-docs.sh --out-dir .agents/scratch/cli-docs # preview
9
179
  ```
10
180
 
11
- The executable is `computer`. Agents CLI consumes it through `agents computer`, adding fleet device discovery and agent-session history.
181
+ Run after `bun install --frozen-lockfile`. The script works from any directory;
182
+ `--out-dir` is relative to your current directory. Open `command-reference.html`
183
+ from the output folder to browse the tree and search commands.
184
+ CI uploads a `computer-cli-docs` artifact on pull requests and pushes to `main`
185
+ or `release/**`. It contains the HTML reference plus Markdown and JSON indexes.
186
+ Tests and releases check the committed files; commit regenerated `docs/` with
187
+ command changes. Release checks also run with `--skip-tests` / `--skip-build`.
188
+
189
+ [docs/command-reference.html](docs/command-reference.html) lists every command
190
+ with its arguments and options, searchable, with the command tree in a sidebar.
191
+ [docs/command-index.md](docs/command-index.md) is the one-line-per-command index,
192
+ and [docs/command-index.json](docs/command-index.json) the structured form.
193
+ `scripts/generate-cli-docs.sh` regenerates all three from the registered command
194
+ tree; `scripts/test.sh` fails when they are stale.
195
+
196
+ ## Using it through agents-cli
197
+
198
+ Agents CLI ships `agents computer` as a thin consumer of this binary. It
199
+ forwards every verb unchanged and adds fleet device discovery (`--device` becomes
200
+ a resolved `--host`), agent-session identity, and cross-machine session history.
201
+ The seam between the two is documented in
202
+ [docs/integration.md](docs/integration.md). Transports, addresses and verbs are
203
+ explained in [docs/computer.md](docs/computer.md).
12
204
 
13
- On first use, macOS downloads and verifies the signed native helper. macOS still requires the user to grant Accessibility and Screen Recording access. Setup cannot grant those permissions automatically. An existing helper is reused; its application identity and policy files are preserved. `computer start` also installs a missing helper. Use `computer setup` to explicitly replace it.
205
+ ## Platform support
14
206
 
15
- Windows automation uses the native Windows driver in the interactive desktop session, reached through SSH. VNC provides screenshot and coordinate input for desktops without native Accessibility support. See [command reference](https://github.com/phnx-labs/computer-cli/blob/main/docs/computer.md) and [integration contract](https://github.com/phnx-labs/computer-cli/blob/main/docs/integration.md).
207
+ | Platform | CLI architectures | Desktop driver |
208
+ | --- | --- | --- |
209
+ | macOS | arm64, x64 | Native Accessibility helper (local) |
210
+ | Windows | x64 | UI Automation driver over SSH |
211
+ | Linux | arm64, x64 | VNC; isolated task desktops via Xvfb (no native Accessibility) |
16
212
 
17
- Source lives in the private `phnx-labs/computer-cli` repository. npm ships a small Node launcher and an optional compiled package for your platform: macOS arm64/x64, Linux arm64/x64, or Windows x64. TypeScript, source maps and intermediate bundles are excluded. Before compilation, our application code is obfuscated offline with a pinned tool and fixed seed: identifiers, string lookups and selected control flow are transformed. Dependencies are bundled without that transformation to limit runtime overhead.
213
+ These badges describe platform support, not feature parity. Managed isolated
214
+ task provisioning is Linux-only. The measurements above cover Linux/VNC, not
215
+ the native macOS or Windows paths.
18
216
 
19
- Bun executables retain JavaScript alongside bytecode. The transformed code can still be extracted, analyzed and deobfuscated; this build raises inspection effort and does not provide secrecy or an authorization boundary. Bytecode alone is a startup optimization, not source protection. No source is sent to an obfuscation service, and the build adds no debugger interference or runtime network checks. Keep credentials out of binaries.
217
+ ### Do macOS and Windows need native helpers?
20
218
 
21
- Native helpers retain their separate, immutable `computer-mac/v*` and `computer-win/v*` release channels. An ordinary CLI release does not rebuild them. This JavaScript hardening does not transform the helpers; the Windows helper is a managed .NET single-file application and remains decompilable.
219
+ Yes, for native element-level automation, and **both helpers already live in
220
+ this repository**, extracted from Agents CLI. Installing Agents CLI is not
221
+ required.
22
222
 
23
- Development:
223
+ - **macOS:** the [Swift helper](native/computer-mac) supplies Accessibility,
224
+ ScreenCaptureKit capture and CoreGraphics input. Its signed app bundle keeps a
225
+ stable identity for the user's Accessibility and Screen Recording grants.
226
+ The CLI downloads/verifies it during setup and manages it through launchd.
227
+ - **Windows:** the [C#/.NET helper](native/computer-win) supplies UI Automation,
228
+ screen capture and `SendInput`. Setup provisions a scheduled task in the
229
+ logged-in interactive desktop session. The CLI reaches its loopback service
230
+ over an authenticated SSH tunnel; an SSH login alone is not a GUI session.
231
+ - **Linux/VNC:** no macOS or Windows helper is needed. A VNC server supplies
232
+ screenshot and coordinate input; isolated Linux tasks additionally need the
233
+ dependencies listed [above](#agent-tools-and-isolated-linux-desktops).
234
+
235
+ Native helpers retain their separate, immutable `computer-mac/v*` and
236
+ `computer-win/v*` release channels. An ordinary CLI release does not rebuild
237
+ them.
238
+
239
+ ## Troubleshooting
240
+
241
+ - **Accessibility not trusted (macOS).** `computer status` shows whether the
242
+ helper has Accessibility and Screen Recording access. Grant both in System
243
+ Settings > Privacy & Security. The helper binary path must match the grant;
244
+ `computer setup` after a helper upgrade may require re-granting.
245
+ - **VNC password.** Pass `--vnc-password <pw>` or set
246
+ `COMPUTER_HELPER_VNC_PASSWORD`. A VNC server with no authentication needs
247
+ neither.
248
+ - **`unsupported_over_vnc`.** Accessibility verbs (`describe`, `get-text`,
249
+ `click --id`, `type --id`) require a native driver. Over VNC, use coordinate
250
+ input (`click --x --y`, `type-text --text`, `key --keys`).
251
+ - **Windows SSH tunnel.** `computer start --host ssh://user@winbox` opens the
252
+ tunnel. The Windows driver runs in the interactive desktop session, so the SSH
253
+ user must have an active logon session.
254
+
255
+ ## Development
24
256
 
25
257
  ```sh
26
- bash scripts/install.sh
27
- bash scripts/test.sh
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
258
+ bash scripts/install.sh # install dependencies
259
+ bash scripts/test.sh # typecheck + tests
260
+ bash scripts/build.sh # compile this platform's binary into dist/
32
261
  ```
33
262
 
34
- Run publishing through an existing npm credential bundle, for example `secrets exec npmjs.com -- bash scripts/release.sh --confirm`. Release requires a clean linked worktree at the reviewed remote main commit. It verifies packed file lists, checks immutable package integrity on retries, and checks a registry installation. Live desktop verification remains part of delivery.
263
+ `scripts/build.sh` bundles and minifies `src/`, obfuscates the bundle offline
264
+ with a pinned tool and fixed seed, then compiles a bytecode binary per target.
265
+ Run `dist/<platform>-<arch>/computer` directly during development.
266
+
267
+ Release with the repository's own script:
268
+
269
+ ```sh
270
+ bash scripts/release.sh # print the release plan (dry run)
271
+ secrets exec npmjs.com -- bash scripts/release.sh --confirm
272
+ ```
273
+
274
+ Release requires a clean linked worktree at the reviewed `origin/main` commit. It
275
+ builds every platform, verifies packed file lists and immutable package
276
+ integrity, publishes the launcher and per-platform packages, and checks a
277
+ registry install. Live desktop verification remains part of delivery.
278
+
279
+ Minification, obfuscation and bytecode compilation raise the bar for casual
280
+ inspection; they are not a guarantee against reverse engineering. Keep
281
+ credentials out of the binary.
282
+
283
+ ## License
284
+
285
+ Functional Source License 1.1 with an Apache 2.0 future grant
286
+ ([FSL-1.1-Apache-2.0](LICENSE)).
287
+
288
+ ## Browse run history
289
+
290
+ `computer sessions` opens a searchable picker: arrows move, Enter shows run
291
+ details and saved screenshots, and Escape goes back. `--search <text>` also
292
+ filters scripted output, `--json` remains a row array, and `--no-interactive`
293
+ prints the table. `--since <when>` and `--until <when>` keep runs whose last
294
+ activity falls in that window and accept the same values as `sessions`: `2h`,
295
+ `7d`, `4w`, `1mo`, `1y` or an ISO date. An unreadable value exits 2. `--limit
296
+ <n>` caps the table (default 50) and, when given, `--json`; when rows are left
297
+ out, the count and the `--limit` that shows them go to stderr, so piped stdout
298
+ carries rows only. The picker header
299
+ lists the active filters. `--open latest` (or a screenshot filename) opens a recorded
300
+ capture. Live Linux desktops remain under `computer task start/list/stop`.
301
+
302
+ Computer owns 365-day run summaries under `.history/computer/history.db`.
303
+ Counts survive the 30-day action ledger; summaries retain the latest 120
304
+ actions and 120 screenshot locations per run. Typed text is never stored.
305
+ Existing ledger entries and legacy Agents summaries are adopted without
306
+ modifying their source. Legacy runs older than 365 days are skipped. The
307
+ automatic import runs once; if the legacy database cannot be read it is reported
308
+ once, and `computer sessions migrate [--from /path/to/sessions.db]` retries.
309
+ 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.5",
3
+ "version": "0.1.8",
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.5",
29
- "@phnx-labs/computer-cli-darwin-x64": "0.1.5",
30
- "@phnx-labs/computer-cli-linux-arm64": "0.1.5",
31
- "@phnx-labs/computer-cli-linux-x64": "0.1.5",
32
- "@phnx-labs/computer-cli-win32-x64": "0.1.5"
28
+ "@phnx-labs/computer-cli-darwin-arm64": "0.1.8",
29
+ "@phnx-labs/computer-cli-darwin-x64": "0.1.8",
30
+ "@phnx-labs/computer-cli-linux-arm64": "0.1.8",
31
+ "@phnx-labs/computer-cli-linux-x64": "0.1.8",
32
+ "@phnx-labs/computer-cli-win32-x64": "0.1.8"
33
33
  },
34
34
  "devDependencies": {
35
- "@inquirer/prompts": "8.5.2",
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",