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:
# Seeded demo data, screenshot own window, exitswift run Cone --demo --self-shot /tmp/shot.png
# A real turn through the full pipeline, then a screenshotswift 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.pngThe 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.