Skip to main content
Manage agent tasks. A task is one agent run that reads files, executes commands, and writes code in an isolated workspace. See tasks and lifecycle for concepts.

Usage

tasks is an alias for task. Most <id> arguments accept a short prefix.

Subcommands

aether task list

List tasks in the current project.
--status takes one or more display statuses, comma-joined: running, awaiting_input, awaiting_ci, merged, unmerged, errored, archived. It also takes review_attention — a virtual filter token, not a display status, that matches a task whose pull-request review needs your judgment. Pass all to clear the filter. --needs-you is the shorthand for the same set the web app’s “Needs you” filter sends: --status awaiting_input,review_attention,errored.
The STATUS column is the task’s own state — running, awaiting_input, errored, done, or archived. Pull-request lifecycle lives in the PR column, so --status merged returns rows whose STATUS reads done with the merge shown under PR. The PR cell names the same bucket --status filters on: merged, or awaiting_ci for an open PR whose checks are still running. unmerged is a catch-all over open and closed PRs, so those rows show the pull request’s own state (open, closed) instead. --json is unaffected: it prints the server’s envelope, including the raw display_status.

aether task create

Create a task with a prompt. If --prompt is omitted (and not reading --stdin), you are prompted for it interactively.
aether run does create plus watch in one step and is usually what you want.
Every task carries an explicit VM size. If you omit --size, the size is resolved server-side — the project’s default task size, else small — and the CLI prints size: project default (use --size to override). See VM sizes and warm starts. With --json, the size is still resolved server-side the same way; the CLI only suppresses the notice so stdout remains valid JSON.

aether task get

Show task details, summary, and the event timeline.

aether task status

Show a compact status line — runtime status, display status, workspace, PR/CI, and tokens.

aether task update

Replace the task’s agent settings. Provide at least one flag.

aether task respond

Continue a task: send a follow-up message, or answer the agent inline when it is waiting on you.
With --message, the text is sent directly:
respond streams the agent’s reply by default, the same way aether run does, and exits non-zero if the task fails. Pass --no-watch to send and return immediately. --json prints the message id without streaming:
When you omit --message, respond is interactive. If the task is waiting on a question (ask_user) or a plan review (propose_plan), the CLI presents the prompt and submits your structured answer. Otherwise it asks you for a free-text message.
Structured input can also be answered non-interactively, so scripts and agents can drive tasks without a TTY. Read the pending question or plan from aether task get <id> --json (awaiting_input.kind plus the payload), then respond:
Every question must be answered, and each --answer is validated against the pending questions before anything is sent. --message composes with all three flags as the accompanying note on the task timeline. If the task is awaiting a structured answer, passing --message alone is rejected — pass --answer/--approve/--reject, or run respond without flags so the CLI can present the question or plan.

aether task stop

Stop a running task and park it in awaiting_input so you can respond and resume.

aether task archive / unarchive

Move a task into or out of the archive.

aether task remove-from-queue

Remove a single queued follow-up message from a task by its message ID.

aether task watch

Watch the agent’s progress live. The watch exits when the task completes, fails, or stops.
Watch polls the API every ~3 seconds for new status updates. A failed task exits non-zero and prints the failure, whether it failed while you were watching or before you attached — so watching an already-failed task is still how you read the error, and scripts can rely on the exit code either way. This is the same exit status aether run and aether task respond give you, since both watch through the same code.

Interactive Watch

On a TTY, watch is interactive. While watching you can: When the agent pauses to ask a question or propose a plan, watch presents it inline — answer it and watching continues automatically. After detaching, reattach any time: