Configs
List, validate, create, and deploy agent configs from the terminal. Set which agent runs by default, per repository or for the whole account.
Every command here drives the same /v1 API the dashboard uses. An agent is a YAML file in git; the default-branch version is the live config: Agents as code. Install and authenticate first: Agent CLI.
Manage
agent config init scaffolds a starter config 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 config init agents/unfilled-shift-digest.yaml
✓ wrote agents/unfilled-shift-digest.yaml
Commit it to your default branch. Ellipsis syncs agent configs from GitHub.agent config validate checks a file server-side, with the same parsing the GitHub sync runs, so a local pass means the merge will deploy. An invalid file prints each error indented and exits 1, so it works as a pre-commit or CI check. It also names what the file is: a valid kind: code_review pipeline handed to config validate is reported as one, not waved through as an agent config.
$ agent config validate agents/unfilled-shift-digest.yaml
✓ agents/unfilled-shift-digest.yaml is a valid agent configagent config list shows your saved configs with their source file (path@branch, prefixed ⚠ when the last sync failed) and who last edited them. agent config get prints one config as YAML on stdout; the dashboard link goes to stderr, so piping and redirecting stay clean.
$ agent config list
ID SOURCE UPDATED EDITED BY
agent_x9Kd3Fq2 agents/ci-triager.yaml@master 2026-07-28 14:02 priya-shah
agent_2Jb7pN4x agents/issue-implementer.yaml@master 2026-07-24 17:48 dani-okoro
agent_5Tn2wR8c agents/recent-work.yaml@master 2026-07-21 09:15 marcus-leeagent config get agent_x9Kd3Fq2 # the saved config as YAML (--json for the raw object)agent config create creates an agent the same way the dashboard does: Ellipsis opens a pull request adding the config file to your repository, and the agent goes live when it merges. Pass exactly one of -f/--file (a local .yaml/.yml or .json file) or --template (a slug from agent template list); --path picks the file's location in the repo (default agents/<slug>.yaml, and it must be one of the synced locations above).
$ agent config create --repo splitshift-api --file agents/unfilled-shift-digest.yaml
✓ opened a pull request adding the agent config (agents/unfilled-shift-digest.yaml)
https://github.com/splitshift-hq/splitshift-api/pull/519
Merge it to deploy the agent.agent template list prints the built-in templates with the slugs --template takes (agent config create --template, or the equivalent agent config init --template <slug> --repo <name>):
$ 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.
session-log-search Session Log Search Answers questions about your team's session history by searching every cloud agent run and synced laptop Claude Code session, reading their recaps and transcripts, and citing the exact session ids and pull requests behind each answer.
schema-migration-reviewer Schema Migration Reviewer Reviews database migrations before they merge.
Create one: agent config init --template <slug> --repo <name>list, get, create, validate, and template list accept --json for the raw API response.
Default agents
agent config default manages which agent runs when a session names no config source: the defaults ladder of repository default, then account default, then a bare ad-hoc config (an empty system prompt on claude-opus-5, no triggers). This is what a bare agent session start "..." resolves; details on the resolution: Sessions.
agent config default # the effective default where you are standing
agent config default list # every rung that is set, account and per-repo
agent config default set agent_5Tn2wR8c # set the ACCOUNT default
agent config default set agent_x9Kd3Fq2 --repo # set the default for the repo you are standing in
agent config default set agent_x9Kd3Fq2 --repo splitshift-hq/splitshift-api # set a named repo's default
agent config default clear --repo splitshift-hq/splitshift-api # clear a rung (alias rm)Bare agent config default reads the ladder the way session start does: the repo default for your origin remote if one is set, else the account default, else no default set (sessions start on the bare config).
$ agent config default
using config "CI failure triager" (repo default for splitshift-hq/splitshift-api)Writes are always explicit about their target: without --repo they address the account rung, --repo with no value addresses the repo you are standing in, and --repo owner/name addresses that repository.
$ agent config default set agent_5Tn2wR8c
✓ set account default to "Recent work summary" (agent_5Tn2wR8c)
$ agent config default list
RUNG CONFIG CONFIG ID STATUS UPDATED
account Recent work summary agent_5Tn2wR8c ok 2026-07-31 10:22
splitshift-hq/splitshift-api CI failure triager agent_x9Kd3Fq2 ok 2026-07-28 14:05A rung pointing at a config that was deleted, disabled, or never merged shows broken: <reason> instead of ok, and sessions refuse to start on it until you fix or clear it: a broken default fails closed, never silently falls through to the next rung. An agent's own in-sandbox token can read the ladder but not set or clear a rung (the server answers 403), so an agent cannot repoint your account's default.