Automations
List, run, create, and move automations from the terminal. agent automation run invokes a saved agent exactly as defined.
An automation is a saved agent definition: trigger, persona, environment, budget. Every command here drives the same /v1 API the dashboard uses. Usually an automation is a YAML file in git and the default-branch version is the live definition; it can also live in the API alone, with no file: Automations. Install and authenticate first: Agent CLI.
Inspect
agent automation list shows your automations with their source file (path@branch, prefixed ⚠ when the last sync failed) and who last edited them. An automation with no file shows api.
$ agent automation list
ID NAME SOURCE UPDATED EDITED BY
agent_x9Kd3Fq2 CI failure triager agents/ci-triager.yaml@master 2026-08-28 14:02 priya-shah
agent_2Jb7pN4x Linear issue implementer agents/issue-implementer.yaml@master 2026-08-24 17:48 dani-okoro
agent_5Tn2wR8c Recent work summary agents/recent-work.yaml@master 2026-08-21 09:15 marcus-lee
agent_7Qm4vD1s Docs drift checker api 2026-08-19 11:40 priya-shahagent automation get prints one automation as YAML on stdout; the dashboard link goes to stderr, so piping stays clean:
agent automation get agent_x9Kd3Fq2 # YAML (--json for the raw object)Run
agent automation run invokes an automation exactly as defined: its prompt, model, environment, permissions, skills, and budget all bind. It takes an id or the automation's name.
$ agent automation run agent_2Jb7pN4x --input '{"issue": "ENG-42"}'
✓ started session_7Hq2mX4p
https://app.ellipsis.dev/your-org?session=session_7Hq2mX4p
follow with: agent session get session_7Hq2mX4p --watch-i/--input is the JSON payload for an automation that declares an input schema (--input-file reads it from a JSON or YAML file). --budget <usd> lowers this run's spend cap below the automation's own budget, in dollars; it cannot raise it. -m/--metadata key=value attaches metadata (repeatable). --json prints the created session. The command returns as soon as the session exists; follow it with agent session get <id> --watch, which exits 0 only when the session completes. Sessions started this way record source: cli, and agent session list --automation agent_2Jb7pN4x lists them.
To run a prompt of your own in an environment, without an automation, use the bare form: Sessions.
Create
agent automation init scaffolds a starter definition locally (default path agents/my_agent.yaml; --force overwrites). Commit it to your default branch to deploy it: Ellipsis syncs any .yaml/.yml file at any depth under agents/, .agents/, ellipsis/, or .ellipsis/.
$ agent automation init agents/docs-drift-checker.yaml
✓ wrote agents/docs-drift-checker.yaml
Commit it to your default branch. Ellipsis syncs automations from GitHub.agent automation create creates one now. Pass exactly one of -f/--file (a local .yaml/.yml or .json file) or --template (a slug from agent template list).
Without --repo the automation has no file. It is live as soon as the command returns, and agent automation edit is how you change it:
$ agent automation create --file agents/docs-drift-checker.yaml
✓ created "Docs drift checker" (agent_7Qm4vD1s) — live now
It has no file; change it with `agent automation edit`, or `agent automation link` to move it into a repo.With -r/--repo the automation is created live and then moved into that repository: Ellipsis opens a pull request adding its file, and merging hands the definition over to the file. --path picks the file's location (default agents/<slug>.yaml; it must be one of the synced locations above).
$ agent automation create --repo api-repo --file agents/docs-drift-checker.yaml
✓ created "Docs drift checker" (agent_7Qm4vD1s) — live now
✓ opened a pull request adding the definition file (agents/docs-drift-checker.yaml)
https://github.com/your-org/api-repo/pull/519agent template list prints the built-in templates with the slugs --template takes. agent automation init --template <slug> --repo <name> creates one from a template by pull request:
$ agent template list
SLUG NAME DESCRIPTION
agent-config-builder Agent Config Builder Interviews you about the agent you want, then opens a pull request that adds a schema-valid agent config YAML to your repository so merging it deploys the new agent.
daily-standup Daily Standup Posts a product-level summary of yesterday's merged pull requests across every repository.
skill-maintainer Skill Maintainer Scans each day's merged pull requests and opens a PR updating your team's skills when the code has moved past them.
schema-migration-reviewer Schema Migration Reviewer Reviews database migrations before they merge.
Create one: agent automation init --template <slug> --repo <name>Every command here accepts --json for the raw API response.
Change an automation that has no file
agent automation edit replaces the whole definition from a file, effective at once. agent automation delete removes the automation: it stops running and frees its name, and its past sessions stay readable.
$ agent automation edit agent_7Qm4vD1s --file agents/docs-drift-checker.yaml
✓ updated "Docs drift checker" (agent_7Qm4vD1s) — live now
$ agent automation delete agent_7Qm4vD1s
✓ deleted agent_7Qm4vD1sBoth are refused for a file-defined automation (409): the next push to its file would undo the change. To edit one anyway, take it over with agent automation unlink first. To remove one, delete its file.
Move an automation between the two
agent automation link moves an automation with no file into a repository. Ellipsis opens a pull request adding its file; the automation keeps running unchanged while that sits, and merging hands it over to the file.
$ agent automation link agent_7Qm4vD1s --repo api-repo
✓ opened a pull request adding the definition file (agents/docs-drift-checker.yaml)
https://github.com/your-org/api-repo/pull/523
The automation keeps running meanwhile; merging hands it over to the file.agent automation unlink does the reverse: the file stops governing the automation immediately, and agent automation edit changes it from then on. The file is left in your repository, inert.
$ agent automation unlink agent_x9Kd3Fq2
✓ took over "CI failure triager" (agent_x9Kd3Fq2)
Its file no longer governs it and is left in place, inert.Neither move changes the automation's id, history, or sessions.
No default automation
There is no default automation. agent "prompt" runs your prompt alone, on your organization's defaults; agent automation run is the only way a saved definition runs from the CLI. The defaults every session falls back to (model, environment, per-session budget ceiling) are organization settings, set on the dashboard's Automations > Settings tab or with PUT /v1/settings/organization: Organization. A session's model resolves in order: the request, the automation, then the organization default.