mirror of
https://github.com/VibedByKaKi/t3-code-android-nightly.git
synced 2026-10-09 11:51:15 +02:00
Some checks are pending
CI / Lint (push) Waiting to run
CI / Typecheck (push) Waiting to run
CI / Build (push) Waiting to run
CI / Test (push) Waiting to run
CI / Test Web (push) Waiting to run
CI / Test Server 1 (push) Waiting to run
CI / Test Server 2 (push) Waiting to run
CI / Test Server 3 (push) Waiting to run
CI / Test Server 4 (push) Waiting to run
CI / Test Server 5 (push) Waiting to run
CI / Test Server 6 (push) Waiting to run
CI / Transfer report artifact (push) Blocked by required conditions
CI / Rust (push) Waiting to run
CI / Mobile Native Changes (push) Waiting to run
CI / Mobile Native Static Analysis (push) Blocked by required conditions
CI / Release Smoke (push) Waiting to run
CI / Check (push) Blocked by required conditions
Forward to Cursor hygiene / POST to Cursor (push) Waiting to run
Deploy T3 Connect relay / Deploy production relay (push) Waiting to run
Mobile EAS Production / EAS production (push) Waiting to run
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>
183 lines
8.6 KiB
Markdown
183 lines
8.6 KiB
Markdown
# 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:
|
|
|
|
```json
|
|
[
|
|
{ "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](#precedence) 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:
|
|
|
|
```json
|
|
{ "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](./thread-sidebar.md#start-a-thread). `chat.newWithoutProject`
|
|
(`mod+alt+n`) starts a thread [without a project](./thread-sidebar.md#start-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.
|