Skip to content

Headless automation

Cone can launch itself into a staged state, drive a real turn, screenshot its own window, and exit. The flags exist so UI changes can be verified headlessly, without screen-recording permission or a browser driver, and they are how agents working on Cone itself check their work.

The three canonical invocations:

Terminal window
# Seeded demo data, screenshot own window, exit
swift run Cone --demo --self-shot /tmp/shot.png
# A real turn through the full pipeline, then a screenshot
swift run Cone --auto-prompt "hi" --auto-dir /path \
--auto-model claude-haiku-4-5-20251001 --self-shot /tmp/shot.png
# Bundled build, needed for frontmost-only menu shortcuts
./scripts/bundle.sh && open -a "$PWD/Cone.app" --args --demo --self-shot /tmp/shot.png

The flag families:

  • Turn flow: run real prompts through either provider, add follow-up turns, answer permission prompts, request stops, and target SSH hosts.
  • Staging: seed demo data, open any overlay, popover, settings pane, or composer state so it can be screenshotted deterministically.
  • Interaction probes: synthesize clicks, scrolls, and key equivalents, and hit-test what a click would land on.
  • Capture: window size, appearance, shot delay, and multi-window output.

Runs with --demo or --auto-prompt are ephemeral. They never write session data or preferences.

The full flag reference with pairing rules and caveats lives in docs/automation.md in the repository.