Documentation

Task details

Operate the selected task's project folders, conversation, follow-ups, queue, interruption, resume, account, attachments, and errors.

Applies to
DesktopPWACLI
WindowsmacOSLinux

Verified 2026-10-18 · v4.108.1

Markdown

Task details is where you understand a piece of work selected from the Task list and return the next instruction or decision. It combines the conversation, progress, confirmation requests, composer, and the task's right-side panels.

Follow up, queue, interrupt, and resume

  • Follow-up sends the next turn to a task awaiting confirmation.
  • Queue holds instructions sent while the current turn is running and delivers them in order afterward.
  • Interrupt current turn stops current processing and switches to the instruction you entered.
  • Resume reconnects an unfinished task to its saved session after its process stopped, such as after an app restart.

A Terminal task cannot restore its previous shell process, so resume starts a new shell in the same directory. Native UI for Cursor, Qoder, Grok Build, and Muse Code reconnects to its supported saved conversation.

After three consecutive identical turn failures in Visual Runtime, Cockpit marks the conversation Session cannot be resumed and stops retrying that rejected session. Inspect the last error, then run cockpit task resume <id> --fresh-session to start a new conversation in the same task with a summary of the stored conversation. Do not use an ordinary resume to return to the rejected session. Antigravity continuation tracking timeouts (continuation_timeout) do not count toward this repeated-failure limit.

Escape stops a running turn. With multiple task panes, it applies only to the pane with keyboard focus. After interruption settles, the task returns to a state that can accept the next instruction and the composer can continue.

In Claude Native UI, Claude's completion result after an interrupt is recorded as interrupted, not as a failed turn, and the same task can accept the next instruction. If the interrupt request fails or times out, Cockpit closes that runtime session so a late interrupt cannot affect the replacement instruction. Send the message returned to the composer again to reconnect to the saved conversation and continue.

Stopping a turn, completing or removing a task, or quitting the app also stops descendant processes launched by that task. A process explicitly launched outside the task lifecycle is outside Cockpit's cleanup boundary, so detach one only when it is intended to remain running.

The Follow-up behavior setting under Appearance chooses whether an ordinary follow-up sent during a reply waits in the Queue or Steers the current reply. Queue is the default. When it does not conflict with the configured send or steer shortcut, Cmd/Ctrl+Enter uses the opposite behavior for that one message.

In Claude, Codex, Antigravity, Cursor, Qoder, Grok Build, and Muse Code Native UI on Desktop and the PWA, each queued message starts its own turn after the preceding response has finished. The next queued message is delivered after that turn finishes. Choose Steer when you want to affect the current response.

In Muse Code Native UI on Desktop and the PWA, once Muse Code reports that its reply is complete and only background checks remain, the composer returns to Send and hides the processing indicator. You can send the next message while those checks continue. This does not mean all background work has finished; switching between standard and Contributor models, /compact, and /clear still require the current work to finish.

Before delivery, an ordinary queued message can be edited, sent now, or removed. Edit returns its text and attachments to the composer and removes that entry from the queue; revise it and send it again when ready.

The Queue is shared by Desktop and the PWA, with Ask answers and ordinary messages in registration order. Entries that still need attention, including waiting, delivering, and failed entries, survive closing a view or restarting Cockpit. Once delivery is confirmed and the entry appears in the conversation, it leaves the Queue instead of remaining as a sent item.

An Ask answer is summarized with its selections, free-form input, and attachments first. Expand it to inspect the full answer together with the question, responder, and raw payload. You cannot edit, remove, or send an Ask answer as an interrupt. Failed delivery can be retried. If delivery cannot be confirmed, automatic resend stops to prevent duplicates; check the conversation first. Choose Mark as handled without resending to move past that item without sending it again. Completing or deleting a task cancels its remaining Queue without delivering those items.

Configure follow-up behavior from the CLI

Use cockpit settings get shortcuts.followUpBehavior to read the current default, and cockpit settings set shortcuts.followUpBehavior queue or cockpit settings set shortcuts.followUpBehavior steer to change it. queue waits for the current turn to finish; steer sends to the current turn. The default is queue. This does not change the separate shortcuts.steerTurn key binding or add steering support to an unsupported agent mode.

Check the task's project folders

The Desktop task header shows the task's project. Open its folder control to see the working folder and the other project folders given to the current agent session. A folder added since the session started is marked Not given to this session yet; a removed folder can remain available to that session until it restarts. Missing folders are identified separately.

Except for Muse Code Native UI, which updates additional workspace roots every turn, project-folder changes apply when the agent next starts or resumes a session. For a supported Native UI task, cockpit task reconnect <id> restarts the agent in place with the project's current folders while preserving its conversation. Moving a task to another project also moves its child tasks, but the new folders are not applied to the already-running session until that next start.

Confirm the execution account

New Claude, Codex, Grok Build, Antigravity, Cursor, and Qoder tasks default to Auto. Auto uses shorter usage windows to confirm current availability, then chooses among available accounts from the remaining capacity and reset time of the longest window. After detecting a usage or plan limit, it can switch to another available account and continue the saved session.

The selection made when the task is created is saved with that task and remains the selection used for display, resume, and execution. Desktop and PWA show Auto · account name near the composer. The account menu can select Auto, the default account, or a named profile. A manual switch stops current execution, moves the saved conversation to the chosen profile, and resumes it.

Account switching preserves the active conversation for Codex, Grok Build, Cursor, and Qoder as well as Claude and Antigravity. If the source conversation is missing, busy, unreadable, or ambiguous, Cockpit stops the switch without replacing the target history. Different target history is archived before the active conversation is carried forward, and a notice reports when the target already contains the same or newer conversation.

If no account is available, usage cannot be checked, or switching or resume fails, the task stops with waiting_confirmation and usage_limit. When a reset time is known, Cockpit re-evaluates usage after that time and resumes the task if capacity has recovered. If the account remains exhausted, usage cannot be confirmed, or authentication has expired, the task shows the reason and recovery action. Switch accounts or sign in again before retrying.

Usage indicators keep an exhausted allowance visible as 0% remaining. An unavailable value is not treated as 0% remaining. In the PWA, tap a usage ring to open details. The details stay within the screen, and long content can scroll. Tap the ring again or tap outside the details to close them. See Accounts and Auto to identify the account affected by a limit.

Muse Code has no account switching. Its native conversations resume from the saved Muse Code session; terminal tasks reopen their recorded session with muse resume. In Native UI, project folder changes apply on the next message because Muse Code receives additional workspace roots each turn. Its terminal UI receives no extra project folders.

Switch agents with conversation history

In a supported Native UI task, choose another agent's model and send the next message to apply the switch. Claude Code, Codex, Grok Build, Cursor, Qoder, Antigravity, and Cockpit Agent are supported. The preview explains how history will be transferred and any omissions. Choosing a model of the current agent cancels a pending switch. Fleet, Autorun, Master Agent, and terminal UI tasks cannot switch; finish any running turn, approval, or question first.

Earlier messages, tool inputs and outputs, file changes, images, and compaction summaries can be sent to the new agent's provider. Thinking and encrypted reasoning are excluded. Some targets receive a single history message, and long histories may have tool output shortened or middle exchanges omitted; review the preview before sending. If a switch fails, the message is not sent, the previous agent stays active, and the pending switch can be retried or canceled.

The Default/Plan interaction-mode picker and the /plan and /default actions are no longer available. Describe any planning request in your message.

Enter a message

Desktop's Send key setting assigns sending to Enter or Cmd/Ctrl+Enter. Shift+Enter inserts a newline in either mode. On supported Desktop systems, the microphone records up to 90 seconds and transcribes locally. Review the inserted text before sending.

Each task keeps its own draft text and attachments. If you switch tasks before a send or interrupt result arrives, failed input returns to the originating task's composer, and a delayed Visual Runtime error appears on that task. Restored text is prepended to any newer draft entered for the same task in the meantime.

The PWA stores each task's in-progress message body in sessionStorage. In the same browser tab, it restores the draft after switching tasks, reloading the page, or reloading a remote-task view embedded in Desktop. It does not synchronize drafts to another device or persist them beyond the browser tab session. Attachments and queued messages follow their own storage boundaries.

PWA uses the same Follow-up behavior setting and queue as Desktop. In Claude, Codex, Antigravity, Cursor, Qoder, Grok Build, and Muse Code Native UI, sending only /compact from PWA compacts the conversation context.

Compact or reset the conversation context

In Desktop and the PWA, send only /compact in a supported Native UI task after the current reply finishes. Wait for compaction to finish before continuing.

For Antigravity, Cursor, and Qoder, Cockpit asks the agent for a hand-off summary and seeds a new session with it. The conversation shows that Cockpit performed the compaction. If the agent returns no summary, the session stays unchanged. If the new session cannot accept the summary immediately, Cockpit keeps it in the compaction entry and sends it with your next message.

In a supported Native UI, /clear keeps the task but discards its conversation and original instruction, then starts a new conversation. /compact and /clear are unavailable while a turn is running or waiting for a tool approval or question. Finish, answer, or cancel that turn first.

The reset immediately updates every Desktop and PWA view that has the task open. The view that started the reset clears its draft text and attachments; other views keep their drafts. Because the Queue is shared, ordinary messages awaiting delivery or marked as failed are removed from every view. Ask answers and items whose dispatch has started or whose delivery is unconfirmed are not removed by this operation. The conversation shows Started a new conversation.

Read and quote the conversation

On Desktop, hover over a task-conversation message or move keyboard focus to it to reveal the date and time it was sent. In the PWA, tap a message to reveal the timestamp and tap elsewhere to hide it. Older items without a saved timestamp do not show one.

Select chat text and choose Quote selection to add it to the composer as a Markdown quote. The selection is preserved while progress updates.

A message from another Cockpit task displays its source task name or shortened ID. If the source remains in the list, select the name to navigate there. A parent-child relationship alone does not send results or automatically resume the parent.

On PWA, a down-arrow button appears after you scroll away from the end. Select it to return to the newest message and follow new output. When you open a task, the PWA fetches a small newest-first range so that recent messages appear sooner in a long conversation. If one turn exceeds that range, Cockpit still keeps the turn intact.

In Desktop and the PWA, when saved turns exist before the loaded view, Load more appears at the top of the conversation. Select it or scroll near the top to prepend earlier history while keeping the message you were reading in place. When the view reaches its in-memory limit, loading an older page can remove some newer events from the current display, but it does not delete the saved record.

The PWA shows when it is loading the newest or earlier history below the conversation, while the conversation already on screen and the composer remain usable. A timeout, disconnection, or other failure shows a matching explanation and Retry. While connected, Cockpit makes a bounded set of automatic retries; reconnecting or selecting Retry starts a fresh recovery cycle. A valid late response is still accepted and clears the failure. Reloading does not discard or duplicate earlier pages that are already loaded or new messages that arrive during the request. No messages yet appears only after history loaded successfully and was actually empty.

Saved Native UI history is restored by conversation turn. If the PWA cannot load an earlier page, its notice counts unloaded turns rather than individual events. A tool item whose complete output cannot be restored from saved history displays Some output omitted in both Desktop and the PWA.

When a task detail is open in the PWA, its URL uses #task/<task-id> as a deep link. On initial launch or during reconnection, Cockpit waits for the task list to synchronize before opening that task, and browser Back returns to the list. A deleted or unknown ID returns to the list and shows Task not found.

Selecting an OS notification for a completed response, confirmation request, usage limit, or error brings Desktop to the foreground and opens the source task. Selecting the notification does not answer an Ask, approve a tool, or complete the task.

Pin an answer and return to it

In Cockpit agent tasks and Native UI tasks for Claude Code, Codex, Antigravity, Cursor, Qoder, Grok Build, and Muse Code, hover over an assistant answer and choose Pin answer. Open Pinned answers above the conversation to jump back to a saved answer or unpin it. Desktop and the PWA show the same task's pins; the PWA pinned-answers bar lets you return to marked answers. Pins survive reopening the task and restarting Cockpit.

User messages, tool calls, and Terminal UI output cannot be pinned. In Native UI, one turn is treated as one answer, including output that continued after an approval. Selecting an older answer that is not loaded yet loads the required history. If history is reset, cleared, or compacted and an answer is no longer available, its pin is not a jump target; remove the stale pin instead. Deleting the task also deletes its pins.

Use cockpit pinned-answers list <task-id> --all to obtain answer IDs, then pin <task-id> <message-id> or unpin <task-id> <message-id>. See the pinned-answers reference.

Find text in Desktop chat

Select Find in content, or press Cmd+F on macOS / Ctrl+F on Windows and Linux while the chat is active. Enter literal text to highlight matches and show the match count. Enter moves forward, Shift+Enter moves backward, and Esc closes search. For a long conversation, Cockpit also searches saved history page by page and loads the required range when you move to a match. If it could not read the complete conversation, use the displayed retry action. Search covers conversation content available to that task, not every task or unavailable archived output. This in-content search is a Desktop feature, distinct from PWA task-list search.

Inspect errors and tool runs

If a new task cannot start, Desktop and the PWA keep the task in error instead of discarding its instruction. The error card shows the cause, lets you edit the saved prompt or Terminal command, and provides Run again. For an unstarted standalone task, you can also choose another working folder before retrying the same task. Existing sessions, child tasks, Master Agent tasks, branches, worktrees, and Creative Studio tasks cannot change folders this way. Correct the cause, input, or folder before retrying. The failed-start instruction and attachments are retained and have not run yet.

From the CLI, cockpit task retry-start <id> reuses the saved instruction or Terminal command. To replace the input, pass --instruction, --instruction-file, or --stdin. For an eligible unstarted standalone task, --directory /path/to/folder selects another existing folder. Cockpit does not create a missing folder and reassigns the task to the project containing the new folder, if any. This command is only for startup failure; it is distinct from resume for a stopped task and reconnect for an existing visual session.

When Claude, Codex, Antigravity, Cursor, or Grok Build reports an error that may indicate a service incident, such as a 404, 5xx response, or gateway timeout, the error surface links directly to that provider's status page. Cockpit does not show this link for authentication, usage-limit, quota, rate-limit, or billing errors; follow the on-screen sign-in, account-switching, or wait guidance instead.

When a Grok Build, Cursor, or Qoder Native UI turn sends no response for 18 minutes while it is not waiting on an approval, question, background operation, or tool call, Cockpit stops it and reports runtime_error with reason stalled. The task no longer remains running indefinitely, and the next message restarts its session. Cockpit also stops a single turn at the 12-hour limit and restarts the session on the next message.

In Antigravity Native UI, a scheduled or background continuation that times out before a final response is reported as incomplete, with waitingReason: runtime_error and errorReason: continuation_timeout, even if a partial reply is visible. Cockpit accepts new input without automatically resending the prompt. A final response that arrives later can be reflected before the next message is sent. Before continuing, check running background tasks, subagents, and tool side effects; the timeout does not confirm that they stopped.

A message's copy button includes the visible body and error details. Diagnostics may contain local file paths, session logs, or account information, so inspect the copied content before sharing it externally.

When several tool runs are grouped and only some fail, the heading shows the failed count. Do not treat the successful entries as proof that the whole group succeeded; inspect each failed operation and its effect.

When an MCP server asks for tool confirmation in a Codex visual task, Desktop and the PWA identify the server, tool, and target and offer one-time allow or deny. A supported MCP input schema becomes a text, number, single-choice, or multi-choice form. Cockpit declines unsupported schemas. From the CLI, inspect turnRequests in task get, use task approve or task deny for approval, and use task answer for a form. MCP approval remains one-time even when --scope always is supplied.

Review and edit files

A task's file action opens the target in the right side panel. A writable regular text file up to 1 MB can be edited with the pencil button, and changes save automatically. Cockpit provides no undo action, so confirm the path and Git scope first.

See Results and tools for diffs, HTML Surfaces, the browser, App Surface, and terminals. Use cockpit browser for web operation and App Surface for connected mobile screens.

Attach files

Desktop and PWA can attach images, text, source code, JSON, CSV, PDFs, audio, video, and Office documents. When a selected agent cannot receive the format directly, Cockpit provides its local path and metadata for name, MIME type, and size.

On Desktop, select an image attachment thumbnail before sending to open an enlarged preview. Selecting the image or caption keeps it open; the dark background, including the area beside the image, the close button, or Esc closes it. Esc closes the preview without stopping a running turn, and opening or closing the preview does not send the attachment.

From the CLI, pass repeatable --media <path> options to task create and task send. Cockpit copies local files into the same managed area used by the GUI and neither moves nor deletes the source. Remote attachment delivery through --host is unsupported.

For an image sent to Antigravity Native UI, Cockpit uses an image already inside the workspace in place. It temporarily copies an external image into a per-session, Git-ignored directory under .agi-cockpit-attachments in the workspace. This makes it readable in supervised mode. Cockpit removes the temporary copy when the session, CLI, or app stops, and sweeps old leftover directories when another session starts in that workspace. If the workspace is not writable or the staging location is not a real directory, Cockpit reports an error without sending the image.

One message accepts up to eight files, each up to 512 MB and 1 GB in total. JSON files are limited to 25 MB. All file types are accepted, including archives, executables, and unknown extensions. Cockpit enforces actual size and file-count limits and stores files unchanged under randomized names. It does not reject extensions or verify that content matches the declared MIME type or file format.

The limit applies per message, so earlier attachments do not count toward the next eight. When clipboard content has a plain-text representation, Cockpit inserts the text instead of attaching unnecessary image representations.

An attachment's name and content are not automatically trusted instructions. State which file to use, why, and what result you expect in the message. Cockpit opens only safe formats inside app-managed storage; it does not directly launch executables, paths outside that storage, remote file URLs, or data URLs that may contain executable HTML or SVG.

Find task attachments on Desktop

Open the Attachments panel from the paperclip in task details to browse attachments from Cockpit Agent and Native UI conversations, grouped by date. Search by file name, preview a supported format in the right side panel, or open it in the associated application. Terminal and Terminal UI conversation history is not indexed in this list.

Select Go to message on a row to load older conversation history when needed and jump to the message where the file was attached. If the original file was moved or deleted, Cockpit keeps details such as its saved name, type, size, and attachment time but cannot open it. An attachment that exists only inline in the conversation, such as some pasted content, may remain listed even when it can no longer be previewed.

Continue from the CLI

cockpit task get <id>
cockpit task account <id> auto
cockpit task retry-start <id>
cockpit task retry-start <id> --directory /path/to/folder
cockpit task resume <id> --fresh-session
cockpit task send <id> --text "Follow-up" --media ./evidence.png --wait
cat follow-up.md | cockpit task send <id> --stdin --wait
cockpit task send <id> --text-file follow-up.md --wait
cockpit task wait <id> --since <seq>

Use --stdin or --text-file for multiline or shell-sensitive content. task wait returns a saved report or the next report after the sequence; it never injects instructions into another task.

progress in task get includes lastRuntimeEventAt for the latest runtime event, turnStartedAt and turnElapsedMs for the current turn, and turnToolCallCount. For a long turn, use this runtime progress instead of lastActivityAt, which does not move while the task is visible, or CPU usage.