CLI command
spis crawl-desktop
Crawl real macOS or desktop applications through Cua Driver on a pinned Stado host.
Invocation#
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-examplesordesktop-app-examples;--host <target>is required in coordinator mode. --record <slug>limits the run;--fixtures <file>supplies inputs;--secret-envmay 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--outputare 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 requiredorcrawl-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-onlyin worker mode.- Unknown flags are
unknown argument: VALUE; extra positionals areunexpected argument: VALUE; a failed batch ends withN desktop records could not be crawled.