Run a script or spawn an agent with a prompt on your Mac or a paired device, by hand or on a schedule, and review every run afterward.
What an automation is
An automation is a named task tied to one workspace on one device (your Mac or a paired device), which runs either when you trigger it or on a cron schedule in that device's local time. It runs in the Spaces service, so it keeps its schedule whether Spaces is open or closed. A device that sleeps pauses everything on it, including a due schedule; when it wakes, the Spaces service resumes and fires that schedule late, regardless of its missed-run policy. The missed-run policy only decides what happens to a fire that elapsed while the Spaces service itself was stopped, not one delayed by sleep. There are two kinds: an agent automation spawns a coding agent into a workspace and hands it a prompt; a script automation runs a shell command. Automations are not available on the home workspace.
The sidebar's Automations row sits directly below Alerts and merges automations and runs across every paired device into one pane, with a device filter for when more than one is connected. Its badge counts runs currently in flight.
Creating an automation
Give it a name, a device (fixed at creation, since the automation lives there), and a workspace. A freshly created automation defaults to the Agent type.
AgentAn agent command (defaults to claude, and may carry flags such as --model; also works with codex, opencode, copilot, pi, and amp) and a multiline prompt sent once the agent is ready for it.
ScriptA multiline script that runs in the device's login shell at the workspace's directory.
TimeoutAn optional wall-clock budget. A run over budget is asked to stop and, if it doesn't, force-stopped shortly after.
ConcurrencyWhat happens when a fire lands while an earlier run is still going. Skip (the default for a freshly created automation) records a skipped run instead of starting another. Queue holds at most one run to start right after the current one finishes. Allow always starts another run alongside it.
When an agent automation fires, the agent spawns into that workspace exactly as if you had started it yourself: its permission prompts show up in its own terminal, and it appears in Agent status and Alerts like any agent you launched by hand. Once it reports it is done, the run finishes as succeeded, and its terminal is left open so you can read what it did; Spaces never closes a finished agent's session for you. Because that session outlives the run, a Skip or Queue automation keeps treating it as still going, and keeps recording skipped runs or holding the next one queued, until the session ends on its own or you use "End agents" on the run; closing its pane only detaches it and leaves the automation blocked.
Triggers
ManualRuns only when you ask, from the automation's row or its iPhone screen.
CronPreset builders (every N minutes, hourly at a minute, daily at a time, weekly on chosen days) plus an Advanced mode for a raw 5-field cron expression. The form previews the next three run times and flags a parse error inline.
Next run atA one-time override for the next occurrence only; the automation's own schedule resumes once it fires.
Missed-run policyWhat happens to a cron fire that elapsed while the device's Spaces service was down. "Run once" fires a single catch-up run; "Skip" records one skipped run instead.
A run's trigger shows in the Runs tab as manual, cron, scheduled (from a one-time override), missed catch-up, or restored (an agent automation's session brought back after a restart; see bringing agents back).
Runs
The Runs tab lists every run, newest first, with its status, trigger, start time, duration, and exit code; a skipped run shows why. Open a running run to watch its live terminal, or an ended run to replay its output read-only. A run ends succeeded, failed with its exit code, timed out, or canceled (available on any run still going). A failed or timed-out run also raises a dismissible alert, naming the automation, the failure, and the device, that opens straight to that run.
Any coding agents a run is responsible for show as chips with a live status dot; clicking one opens that agent's terminal. A run that has finished but still has a live agent lingering offers "End agents" to stop it, without changing the run's own status. Spaces keeps the newest 100 runs of each automation and prunes older ones with their saved logs; a run whose coding agent is still running is kept until that agent ends.
On iPhone
The Automations tab shows the paired device's automations. Creating, editing, and deleting an automation stay Mac-only. Each row shows a status dot for its most recent run, its trigger, the next fire time, and whether it is disabled; tapping a row opens that automation's detail screen, with its schedule, command, and run history. Run Now, and setting a one-time next run, live in a sheet opened from the detail screen's "Next run" row. A Runs screen (from the detail screen or the toolbar's Recent Runs) lists every run the same way the Mac's Runs tab does, with Cancel on a running one and End agents on a finished one with a lingering agent; tapping a run row opens its live terminal while it runs or its read-only transcript once it has ended.
Example patterns
Four patterns to copy and adapt. One is an agent automation you set up entirely in the form; the other three are script automations for cases that need more than one prompt.
Scheduled check
A nightly maintenance script that should never overlap itself and isn't worth catching up on if it's missed.
The Orchestrated batch pattern runs a coding agent non-interactively (prompt.md holds the orchestration instructions; see Orchestrate agents for a starting point), so there is no one at the keyboard to approve its spaces CLI calls as it spawns and manages worker agents. Pre-approve those tool calls in the agent's own permission settings before scheduling it, and set a timeout so a run that hangs does not run forever.
See also
• Agent status, for how agent state, hooks, and Alerts work for any agent, spawned or not.
• Orchestrate agents, for the orchestrator prompt behind the orchestrated-batch pattern.
• CLI, for the full flags for spaces agent spawn and spaces terminal send.
• iPhone app, for pairing a device so its Automations screen can view, trigger, and cancel runs.