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-shah

agent 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/519

agent 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_7Qm4vD1s

Both 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.

On this page

Schedule a demo