Skip to content

Thread CLI reference


Resolve, read, message, steer, answer, and act on a Workspace Thread.

Use this page to inspect every public atoi thread command, its accepted flags, and one runnable example.

atoi threadResolve, read, message, steer, answer, and act on a Workspace Thread.

CommandWhat it does
atoi thread resolveResolve a Workspace to the one Thread it drives.
atoi thread listList governed Threads, optionally within one Project.
atoi thread getRead one Thread and a bounded message page.
atoi thread sendSend a message and wait for its receipt-backed result.
atoi thread replyAnswer one message in a Thread and wait for its receipt.
atoi thread steerStop the reply that is running and send new direction in its place.
atoi thread retryRetry the last failed or stopped reply in a Thread.
atoi thread stopStop the active reply in a Thread.
atoi thread reactReact to one message with an emoji.
atoi thread answerAnswer one open question in a Thread, the same way the app card does. thread get lists them under asks.
atoi thread approveApprove one Ask waiting in a Thread, after you read what it will do.
atoi thread denyDeny one Ask waiting in a Thread, after you read what it will do.
atoi thread launchLaunch a Task from a Thread and choose where it runs.
atoi thread pinPin a Thread and read back the app-visible state.
atoi thread unpinUnpin a Thread and read back the app-visible state.

#thread resolve

Resolve a Workspace to the one Thread it drives.

atoi thread resolve [<workspace-id>] [--workspace <workspace-id>]

FlagTypeDefaultValuesWhat it does
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread resolve

bash
atoi thread resolve wsp_3f8a --json

#thread list

List governed Threads, optionally within one Project.

atoi thread list [--project <project-id>] [--limit <n>]

FlagTypeDefaultValuesWhat it does
--projectstringSelect a Project by id.
--limitnumberReturn between 1 and 200 Threads.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread list

bash
atoi thread list --project prj_8k2v --json

#thread get

Read one Thread and a bounded message page.

atoi thread get <thread-id> [--thread <thread-id>] [--workspace <workspace-id>] [--limit <n>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--limitnumberReturn between 1 and 200 messages.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread get

bash
atoi thread get thr_9c4k --json

#thread answer

Answer the Thread's open question from the terminal. thread get lists each pending question under asks with its request id and lettered options. thread answer resolves one through the same path the app card uses, so an interview that creates an Automation lands exactly as it would from the app. Pick by letter, option id, or label, and add a note with --text.

atoi thread answer <thread-id> --request <request-id> [--pick <letter|option-id>[,…]] [--text <answer>] [--question <question-id>] [--thread <thread-id>] [--workspace <workspace-id>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--request requiredstringName the question to answer.
--pickstringChoose options by letter, id, or label; separate several with commas.
--textstringAdd a written answer or a note next to the pick.
--questionstringName the question inside the request when it holds more than one.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread answer

bash
atoi thread answer thr_9c4k --request ask_6m2d --pick B --text "Only on weekdays" --json

#thread send

Send a message and wait for its receipt-backed result.

atoi thread send <thread-id> --prompt <text> [--thread <thread-id>] [--workspace <workspace-id>] [--model <model-id>] [--reasoning <strength>] [--context-ref <json> ...] [--context-refs <json-array>] [--reply-to <message-id>] [--delivery-id <key>] [--idempotency-key <key>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--prompt requiredstringSet the message text.
--modelstringSelect a model id.
--reasoningstringdefault, none, minimal, low, medium, high, xhigh, maxSelect the model reasoning strength.
--context-refjsonAttach one context reference as JSON. Repeat the flag for more.
--context-refsjsonAttach an array of context references as JSON.
--reply-tostringAnswer one message by id.
--delivery-idstringSet the exact delivery identity.
--idempotency-keystringReuse a mutation identity when you safely retry the same action.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread send

bash
atoi thread send thr_9c4k --prompt "Summarize the release blockers." --delivery-id msg_release_1 --json

#thread reply

Answer one message in a Thread and wait for its receipt. Name the message with --reply-to.

atoi thread reply <thread-id> --prompt <text> --reply-to <message-id> [--thread <thread-id>] [--workspace <workspace-id>] [--model <model-id>] [--reasoning <strength>] [--context-ref <json> ...] [--context-refs <json-array>] [--delivery-id <key>] [--idempotency-key <key>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--prompt requiredstringSet the reply text.
--reply-to requiredstringName the message you are answering.
--modelstringSelect a model id.
--reasoningstringdefault, none, minimal, low, medium, high, xhigh, maxSelect the model reasoning strength.
--context-refjsonAttach one context reference as JSON. Repeat the flag for more.
--context-refsjsonAttach an array of context references as JSON.
--delivery-idstringSet the exact delivery identity.
--idempotency-keystringReuse a mutation identity when you safely retry the same action.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread reply

bash
atoi thread reply thr_9c4k --reply-to msg_2v7b --prompt "Use the staging database." --json

#thread steer

Stop the reply that is running and send new direction in its place. Use this when Atoi is working on the wrong thing and you do not want to wait for it to finish.

atoi thread steer <thread-id> --prompt <text> [--thread <thread-id>] [--workspace <workspace-id>] [--model <model-id>] [--reasoning <strength>] [--context-ref <json> ...] [--context-refs <json-array>] [--reply-to <message-id>] [--delivery-id <key>] [--idempotency-key <key>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--prompt requiredstringSet the new direction.
--modelstringSelect a model id.
--reasoningstringdefault, none, minimal, low, medium, high, xhigh, maxSelect the model reasoning strength.
--context-refjsonAttach one context reference as JSON. Repeat the flag for more.
--context-refsjsonAttach an array of context references as JSON.
--reply-tostringAnswer one message by id.
--delivery-idstringSet the exact delivery identity.
--idempotency-keystringReuse a mutation identity when you safely retry the same action.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread steer

bash
atoi thread steer thr_9c4k --prompt "Stop and start from the failing test instead." --json

#thread retry

Retry the last failed or stopped reply in a Thread.

atoi thread retry <thread-id> [--thread <thread-id>] [--workspace <workspace-id>] [--model <model-id>] [--reasoning <strength>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--modelstringSelect a model id.
--reasoningstringdefault, none, minimal, low, medium, high, xhigh, maxSelect the model reasoning strength.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread retry

bash
atoi thread retry thr_9c4k --reasoning high --json

#thread stop

Stop the active reply in a Thread.

atoi thread stop <thread-id> [--thread <thread-id>] [--workspace <workspace-id>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread stop

bash
atoi thread stop thr_9c4k --json

#thread react

React to one message with an emoji. Pass --reaction to say whether the emoji is added, removed, or toggled.

atoi thread react <thread-id> --message <message-id> --emoji <emoji> [--thread <thread-id>] [--workspace <workspace-id>] [--reaction <intent>] [--idempotency-key <key>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--message requiredstringName the message to react to.
--emoji requiredstringSet the emoji to apply.
--reactionstringadd, remove, toggleChoose what the reaction does.
--idempotency-keystringReuse a mutation identity when you safely retry the same action.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread react

bash
atoi thread react thr_9c4k --message msg_2v7b --emoji check --json

#thread approve

Approve one Ask waiting in a Thread. Read what the Ask will do before you answer it, then pass --confirm. Add --always to approve that kind of action from now on.

atoi thread approve <thread-id> --request <request-id> --confirm [--thread <thread-id>] [--workspace <workspace-id>] [--always]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--request requiredstringName the Ask to answer.
--alwaysbooleanApprove this kind of action from now on.
--confirm requiredbooleanConfirm the exact consequential action after you inspect its target.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread approve

bash
atoi thread approve thr_9c4k --request ask_6m2d --confirm --json

#thread deny

Deny one Ask waiting in a Thread. Denying stops that action and leaves the Thread where it was.

atoi thread deny <thread-id> --request <request-id> --confirm [--thread <thread-id>] [--workspace <workspace-id>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--request requiredstringName the Ask to answer.
--confirm requiredbooleanConfirm the exact consequential action after you inspect its target.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread deny

bash
atoi thread deny thr_9c4k --request ask_6m2d --confirm --json

#thread launch

Launch a Task from a Thread. Atoi asks where the Task should run unless you name a place, and the answer comes back as a placement request you can rerun with --place and --confirm.

atoi thread launch <thread-id> --prompt <text> [--thread <thread-id>] [--workspace <workspace-id>] [--project <project-id>] [--title <title>] [--model <model-id>] [--profile <profile>] [--place <where>] [--computer <computer-id>] [--confirm]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--prompt requiredstringState the outcome the Task should reach.
--briefstringGive the prompt under its older name.
--projectstringSelect a Project by id.
--titlestringName the Task.
--modelstringSelect a model id.
--profilestringSelect the safety profile the Task runs under.
--placestringChoose where the Task runs: none, cloud, host, or a computer name.
--computerstringName the computer when the place is host.
--confirmbooleanConfirm the chosen place.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread launch

bash
atoi thread launch thr_9c4k --prompt "Ship the release notes." --place cloud --confirm --json

#thread pin

Pin a Thread and read back the app-visible state.

atoi thread pin <thread-id> [--thread <thread-id>] [--workspace <workspace-id>] [--idempotency-key <key>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--idempotency-keystringReuse a mutation identity when you safely retry the same action.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread pin

bash
atoi thread pin thr_9c4k --json

#thread unpin

Unpin a Thread and read back the app-visible state.

atoi thread unpin <thread-id> [--thread <thread-id>] [--workspace <workspace-id>] [--idempotency-key <key>]

FlagTypeDefaultValuesWhat it does
--threadstringSelect a Thread by id instead of a positional id.
--workspacestringSelect the Workspace whose one Thread to act on, instead of a Thread id.
--idempotency-keystringReuse a mutation identity when you safely retry the same action.
--jsonbooleanfalseEmit the canonical JSON envelope.
--ndjsonbooleanfalseEmit one canonical JSON envelope per line.
--formatstringtexttext, jsonChoose human text or the JSON envelope.
--help -hbooleanShow command help.

#Run thread unpin

bash
atoi thread unpin thr_9c4k --json

Read Run work from the terminal for the rest of this group, or the CLI reference index for every command.

Was this useful?