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.
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.
--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:
--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.
aether task get <id> --json (awaiting_input.kind plus the payload), then respond:
--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 inawaiting_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.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: