Spis/Docs

CLI command

spis crawl-desktop

Crawl real macOS or desktop applications through Cua Driver on a pinned Stado host.

Invocation#

bash
spis crawl-desktop <macos-app-examples|desktop-app-examples> --host <target> [--record <slug>] [--fixtures <file>] [--secret-env <NAME=SKARBIEC_ITEM>]... [--max-states <n>] [--max-depth <n>]

Crawl real macOS or desktop applications through Cua Driver on a pinned Stado host.

Inputs and options#

  • The required catalog is exactly macos-app-examples or desktop-app-examples; --host <target> is required in coordinator mode.
  • --record <slug> limits the run; --fixtures <file> supplies inputs; --secret-env may be repeated for injected values.
  • --max-states <n> defaults to 200 and must be 1–10000; --max-depth <n> defaults to 8 and must be 0–32.
  • --worker, --artifact-uri, and --output are worker-facing options shown by help.

Output and state effects#

Coordinator mode submits the pinned source revision. Worker mode drives the installed app, writes a timestamped run plus batch.json under $HOME/.spis/crawls/<catalog>/, optionally publishes the run, prints the summary JSON, and fails when any record failed. Before pressing anything, every labelled control in the window is judged by a model through Brama: navigation (goes back, cancels, closes or dismisses) is pressed; consent, destructive and other are withheld and recorded with their safety class and withheld_reason; inert elements are not listed. The control is judged again on a fresh snapshot just before it is pressed. A window Brama cannot judge ends the record with Brama's cause and nothing is pressed.

Refusals#

These messages are emitted by the current Rust implementation:

  • catalog is required or crawl-desktop accepts macos-app-examples or desktop-app-examples
  • --host is required; desktop crawls execute as pinned Stado jobs
  • --max-states must be 1..10000 and --max-depth must be 0..32
  • --host and --secret-env are coordinator-only in worker mode.
  • Unknown flags are unknown argument: VALUE; extra positionals are unexpected argument: VALUE; a failed batch ends with N desktop records could not be crawled.