Skip to content

Latest commit

 

History

History
179 lines (139 loc) · 10.1 KB

File metadata and controls

179 lines (139 loc) · 10.1 KB

Working with threads

Use a new thread for a separate task. Choose New worktree when its code changes need a separate branch and working directory.

Start a thread

On web and desktop, a new thread keeps the current project and carries your model and mode selections, unless the destination project has its own model default. Its branch and workspace mode come from your configured defaults. To continue in an existing worktree, use New thread in this worktree from the branch toolbar. An agent that creates a worktree during a thread can move the thread there with the t3_worktree_handoff tool, so the branch toolbar and Open follow it.

When you change a new thread's project, T3 Code stays in the current environment if that project exists there. Otherwise it selects an environment that has it.

Start in the background

In a desktop browser or the desktop app, press Cmd+Enter on macOS or Ctrl+Enter on Windows and Linux to start a new thread and immediately open another draft. The next draft keeps the workspace mode and base branch you selected. With New worktree, each background submission creates its own worktree.

To send the same prompt to several models on web or desktop, Shift-click models in a new thread's model picker to add or remove them. A regular click returns to a single model. Choose a base branch and send. Each selection starts a separate thread and worktree while you stay in the new thread composer. This requires a Git project.

Update thread metadata with an agent

Ask the agent to rename the current thread, for example to CU-869y9uv0 change the button to green. A skill can set the name once it knows the task ID and description. The name syncs across your connected clients, and automatic title generation will not replace it. You can still rename it from the thread menu or ask the agent to change it again.

Agents can also regenerate a title. Both actions default to the current thread and can target another thread in the same project. Skills use t3_thread_update and can supply a clientRequestId to retry an action without applying it twice within the same agent session. A retry returns the original command receipt and the thread's current saved metadata. Pull request links are managed with the separate link_pull_request and unlink_pull_request tools.

Pin and reorder threads

Pin a thread from its menu to keep it above your active work.

On web and desktop, you can also drag files from your computer onto any thread row: the thread opens and the files are attached in its composer, ready for your next message. The same per-message file limits apply as when attaching files directly; see Attach files.

On web and desktop, pinning or unpinning a thread keeps the sidebar at your current scroll position instead of following the thread to its new place in the list.

Pinning prevents automatic settlement. A pinned thread stays active through inactivity and merged/closed pull requests until you unpin it or settle it manually. To let pinned threads settle like any other thread, turn on Auto-settle pinned threads in Settings → General. Settling a thread removes its pin.

On web and desktop, drag a thread between sections to change its state. Drag a thread up into the pinned section to pin it at the spot you drop it; drag a pinned thread down into the active list to unpin it. Dragging a thread onto the Settled header settles it, and dragging a settled thread into the active list un-settles it. A snoozed thread can be dragged out of the snoozed shelf, which wakes it, but threads cannot be dragged into the shelf because snoozing needs a wake time. Dragging a pinned thread out of the pinned section does not ask for unpin confirmation. Pinned and active boundary labels appear only while dragging, without moving the rows. The other rows slide aside to show where the thread will land. When you cross into another section, the dragged thread shows the action the drop performs, with its icon: Pin, Unpin, Settle, Un-settle, or Wake. Its status and hover actions hide during the drag. A pinned thread keeps its pin only while it stays in the pinned section; once it leaves, the badge takes over. Reordering within the same section shows no badge. When there are no pins, drag to the top edge to pin a thread. Section labels stay readable for the whole drag, and the section the thread is over takes the accent color. Section labels also identify empty sections and a collapsed settled shelf.

Drag within the pinned or active section to change its order. Other rows slide aside to show the spot where the thread will land. Drops into either section keep the position you choose. On mobile, open a thread's menu and choose Arrange threads. Drag a handle within or between Pinned and Active to reorder, pin, or unpin. Drop onto the Settled divider to settle a thread. The dragged card shows the action before you release it. Expand Snoozed or Settled to drag a parked thread back into either live section. Each drop saves; Done returns to the thread list. Move up and Move down are also available in the thread menu. The server saves the order, so it survives a refresh and appears on your other connected devices.

On web and desktop, the list also animates section changes made with thread actions such as Pin, Settle, and Snooze. These transitions respect your system's reduced-motion preference. While dragging, rows follow the insertion gap without replaying a second transition after the drop.

New threads appear above the active threads you have arranged. Settling clears a thread's active position, so using Un-settle returns it to the top. Pinning and snoozing preserve its active position until you move it again. Thread activity does not change the order. The settled shelf continues to use settlement time.

If dragging is unavailable for one environment, update the T3 Code server running in that environment. Pinned and active reordering require server support. Threads from older servers keep their default order until the server is updated.

Settle finished work

Choose Settle thread from its menu to move finished work out of the active list without deleting the conversation. Un-settle thread restores it to active work and prevents automatic settlement until new activity resumes the usual rules. Manually settling an idle thread dismisses unanswered async questions without sending an answer or restarting the agent.

By default, environments settle inactive threads after three days and settle threads whose pull request merged. A closed pull request can also settle an idle thread. Work in progress, pending questions or approvals, live background work, and pinned threads prevent automatic settlement. An old closed or merged pull request does not settle work you resumed after it closed.

For inactivity settlement, choose All threads, Threads without a PR, or Off in Settings → General. Threads without a PR excludes threads with PRs linked manually (including older links), created through the app, linked by an agent, associated through a stack, or detected from the branch. Dismissed stack PRs do not count. Merge and close settlement still follows the PR rules.

To keep one thread out of the settled shelf no matter how long it sits idle, open its menu, choose Auto-settle behavior, and pick Disabled. The current option is checked. Pick Enabled to return to the usual rules. Manual settle, snooze, and archive still work while it is disabled.

On mobile, these rules are in Settings → Thread behavior. These rules continue to run when your apps are closed. On web and desktop, choose an environment at the top to change only its rules, or All environments to update connected environments together. Mixed values show where the selected environments disagree. Mobile applies these rules to connected environments that support shared settings. Offline environments and older servers keep their previous values. Changing a rule does not reopen already settled threads.

Read and unread threads

Open a completed thread to clear its Done indicator on every connected device. On web and desktop, open the thread's context menu and choose Mark unread to bring the indicator back. Mobile clears the indicator when you open a thread but does not mark threads unread.

Older servers keep read and unread changes on the current device. Update the server to sync them across devices. When you first update, existing threads count as read.

Link a pull request

The server finds the PR for each unsettled thread's saved branch, even when your apps are closed. Settled threads keep their saved links. Update the server if automatic branch links do not appear.

On web and desktop, right-click a pull request link in a thread and choose Link to thread to select a different PR. Use Unlink from thread on the same link to return to the branch PR, if one exists. The linked pull request participates in automatic settlement.

Find and reference work

On web and desktop, open the command palette with Cmd/Ctrl+K to search threads across connected environments. Message search starts after two characters and includes your messages and final agent responses.

Use Settings → Keybindings to find or customize shortcuts for searching files and copying a thread reference. A copied reference uses the thread's pull request link when available, otherwise its thread ID. See keybindings for custom configuration.

Inspect agent work

On web and desktop, use Agents to follow work delegated to subagents.

Expand a tool call in the conversation to see its full command and output. Summaries shorten shell wrappers and can still describe the latest call after it finishes; the call's own result shows its status.

Snooze until later

Choose Snooze → Custom… from a thread's menu to pick a date and time in your local time zone, or a duration in minutes, hours, or days. Durations start when you confirm; one day means 24 hours. On web and desktop, you can also snooze several selected threads together. Choose Wake thread to bring a thread back early.