Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
8.6 KiB
Keybindings
Customize shortcuts in Settings → Keybindings on web and desktop. That page also lists the command IDs and defaults available in your version.
Composer controls
In Settings → General → Send shortcut, choose whether Enter sends, requires
mod+Enter for multiline prompts, or always requires mod+Enter. Shift+Enter
inserts a new line. This applies to the web and desktop composer at desktop widths.
Follow-up behavior chooses Queue or Steer while the agent runs. Use
mod+Enter to do the opposite for one message, even when the send shortcut
requires a modifier. mod+Alt+Enter sends, keeps that thread running in the
background, and opens a fresh new-thread composer. In a new thread, mod+Enter
does the same. Change these shortcuts in Settings → Keybindings under
Composer: Opposite Queue or Steer Action, Composer: Start in Background,
or Composer: Send and Start New Thread. These bindings take priority over the
send shortcut. Click the send button to use the configured follow-up behavior.
When an active turn has queued messages, mod+Shift+Enter sends the first as a
steer. Change it under Queue: Send First Queued Message as Steer in Keybindings.
Use mod+shift+m to choose a model and mod+shift+h to choose a host.
To step a new thread to the next machine instead of opening the menu, bind
Composer: Cycle Host in Keybindings. It has no default shortcut.
Use mod+shift+e for effort, mod+shift+a for access mode, mod+shift+x for the
workspace, and mod+shift+g for the Git branch. The workspace menu includes the
current checkout, a new worktree, and the previous worktree when available.
Use mod+shift+l to reuse the previous worktree directly.
In the model picker, press Left in an empty search field or Shift+Tab to reach
the provider list. Use Up/Down to move and Enter to choose. Right returns to
model search. mod+shift+up and mod+shift+down switch providers directly and clear the
search. These provider shortcuts can also be changed in Settings.
These shortcuts run inside the focused web or desktop client. mod uses Command
on macOS and Ctrl on Windows and Linux, including GNOME, KDE Plasma, Niri, and
Hyprland. If a custom desktop shortcut takes the same keys, choose another binding
in Settings.
Copy pull request references
With a PR open in the right panel or on the Pull Requests page, use mod+shift+c
to copy its URL and mod+shift+k to copy its number with a # prefix.
Both shortcuts can be changed in Settings. Search for “Copy Link or Thread ID”
or “Copy Number”. They copy the selected PR and leave terminal input alone.
Find in a diff
Click into a diff in the Diff panel or a pull request's Code tab, then press
mod+f to search every file in it, including folded files and unchanged lines
hidden between changes. Enter and Shift+Enter move between matches, and a
match in a folded file opens it. Escape closes the search. This shortcut is not
configurable. A very large uncommitted diff loads its files as you scroll, and
find only searches the files loaded so far.
iPad
With a hardware keyboard, use Cmd+1 through Cmd+9 to open the first nine
displayed threads. The shortcuts follow the current list filters and order.
Cmd+K opens the command palette to search commands, projects, and threads.
Use the arrow keys and Return to choose a result, or Cmd+1 through Cmd+9 to
choose directly. Escape or Cmd+K closes the palette. Start a search with >
to show only actions.
In a new thread, Cmd+Shift+H moves the draft to the next machine.
In the composer, Return sends and Shift+Return inserts a new line. Cmd+Return
also sends. To make Return insert a new line instead, change the Return key
behavior in Settings → Keyboard.
Edit the configuration file
Keybindings live on the environment's machine, in
~/.t3/userdata/keybindings.json by default. You can edit this file directly.
It is a JSON array of rules:
[
{ "key": "mod+g", "command": "terminal.toggle" },
{ "key": "mod+shift+g", "command": "terminal.new", "when": "terminalFocus" }
]
T3 Code creates the file with its defaults and adds new defaults on later startups. New defaults do not replace commands you customized. If a new default overlaps one of your shortcuts, rule order decides which runs. Invalid rules are ignored; if the file cannot be parsed, T3 Code uses defaults.
Rule shape
Each rule requires a key shortcut and a command ID. An optional when
expression restricts when it runs.
Project scripts use script.{id}.run, such as script.test.run.
Key syntax
Join modifiers and a key with +, such as mod+shift+d or ctrl+l.
mod means Command on macOS and Control elsewhere. Other modifiers are
cmd / meta, ctrl / control, alt / option, and shift.
When conditions
Available context keys are terminalFocus, terminalOpen, previewFocus,
previewOpen, modelPickerOpen, usagePageOpen, composerFocus, composerDraft,
turnRunning, editableFocus, isWeb, and isDesktop.
editableFocus is true while a text field, the composer, or another editor has
the keyboard. isWeb is true in a browser tab. isDesktop is true in the
desktop app. Unknown keys evaluate to false.
mod+1 through mod+9 jump to the first nine threads, and to models while the
model picker is open. Those defaults use isDesktop so they do not steal the
browser's tab-switch shortcuts. Remove that condition in Settings if you want
the same jumps in a browser.
Combine keys with ! for not, && for and, || for or, and parentheses:
{ "key": "mod+j", "command": "terminal.toggle", "when": "terminalOpen && !terminalFocus" }
Find in the current thread
chat.find searches conversation messages and proposed plans in the active thread. Entering a
query searches the entire thread, including older messages. Thread search requires server support;
update an older server to enable it. Select Retry if a search fails. It defaults to
mod+f outside terminals and previews. Press Enter or Shift+Enter to move between matches,
and Escape to close find.
Precedence
The last rule whose key and condition both match wins, even if it belongs to a different command. Put a more specific rule after a general one when they share a shortcut.
Commands with special behavior
thread.stop interrupts the running turn in the focused thread. It has no default
shortcut; assign one in Settings → Keybindings.
thread.undo (mod+z by default) reverses the actions shown in the notice at the
bottom of the sidebar, such as unpin, settle, snooze, archive, or discarding a
draft. Consecutive
actions of the same kind undo together. The notice remains available for five
seconds after the latest action. The default shortcut skips text fields and
terminals so native undo keeps working there.
navigation.back (mod+[ by default) and navigation.forward (mod+]) move
through the pages you have visited, like a browser's back and forward buttons.
chat.new may ask you to choose a project when there is more than one.
chat.newLocal skips that chooser. Both use your
new-thread defaults. chat.newWithoutProject
(mod+alt+n) starts a thread without a project.
Reserved shortcuts
In the desktop app, mod+w closes the focused terminal or the active right-panel
tab. When nothing remains to close, it closes the window. In a browser, mod+w
closes the browser tab; rebind rightPanel.close and terminal.close to an available
shortcut such as alt+w.
mod+shift+t reopens the last closed tab across the app, including files,
diffs, pull requests, browsers, and devices, in the order you closed them.
A browser opens in a fresh session without its old page history. Incognito tabs
can reopen until you reload or quit the app. This shortcut does not undo deleted work.
Browsers also use it to reopen browser tabs; choose another binding in Settings
if the browser takes it first.
Many defaults include !terminalFocus so they do not intercept terminal input.
Keep that condition when remapping them if you want the same behavior.
Desktop quit shortcut
Use Cmd+Q on macOS or Ctrl+Q on Windows and Linux. In the default Hold mode,
hold for 1.2 seconds or press twice within 500 milliseconds. Holding requires
keyboard repeat; if repeat is disabled, use two presses or the application menu.
Change Settings → General → Confirmations → Quit shortcut to Direct for a single press or Double press for two presses only. Choosing Quit from the application menu always quits immediately.