system:compute is the package the agent lives in. Eleven tools over one idea:
every one of them takes a target that says which machine it runs on, and the
default target is the agent’s own.
compute_target acquires and lists them:
Running a command
compute_exec has no fast lane and no slow lane. You run the command; if it
outlives the wait, it is not killed — the reply is
Keeping a shell
compute_exec forgets everything between calls. compute_shell is a real PTY
that does not: cd, exported variables and background jobs survive, and a
program started in the session receives later writes on its stdin.
open, write, read, peek, kill and list. read polls for
new output without writing, peek returns the transcript without consuming it.
Two things follow from it being a terminal rather than a pipe. The output carries
the terminal’s escape codes and prompt, so strip them or grep them rather than
comparing strings. And control characters are signals: chars="\x03" interrupts
the running program instead of typing three characters at it.
Use it for a REPL, an ssh session, an interactive installer, anything where the
next command depends on the state the last one left. Background a long-running
process with a trailing & so the session stays usable, then reach for
compute_preview.
Files
Four tools, and the choice between them is not stylistic.Read a file, optionally a range of it.
max_kb caps at 32.Create or overwrite one file, parent directories included. One file per call.
Exact string replacement in place — the default for changing an existing file.
ripgrep.
output_mode="files_with_matches" is the cheapest and the default.compute_edit is worth understanding before the first failure. old_string must
match the file including whitespace, and it must identify exactly one place:
Seeing things
compute_view hands the agent an image — a screenshot, a chart, a photograph —
as an image rather than as bytes:
"shot.png (image/png, 643716 bytes)", and
the picture itself reaches the model. png, jpeg, gif and webp, up to about 5 MB.
For text use compute_read_file.
The desktop
compute_computer drives a real X11 desktop with Chromium on it: open_url,
screenshot, click, type, key, hotkey, scroll, drag. Sandbox only.
Handing something over
Two tools, and the difference is whether you are sharing a file or a server.compute_download pulls one file off the target and returns a signed URL, up to
100 MiB. compute_preview exposes a port the sandbox is already listening on —
a dev server, an API, or python3 -m http.server 8080 --directory ~/site & when
what you want is to show somebody a page. A splox.app link renders inline in
the chat, so the reader sees the page without leaving the conversation.
compute_preview is sandbox-only; ssh and local targets are refused. Both
URLs are signed and expire — an hour by default, expires_in_seconds up to
86400 — so they are for showing a person, not for building an integration on.
