Configuration

Keybindings & actions

Every command in Sinclair is an action, and any action can be bound to any key combination from your config file. Sinclair ships with a sensible default keymap so it works the moment you launch it, but nothing is fixed: override a default, remove one you never use, or invent entirely new shortcuts — including chords and bindings that drive plugin commands. Changes take effect the instant you save the file.

Syntax

Keybindings live in your settings file ($XDG_CONFIG_HOME/sinclair/settings.json or ~/.config/sinclair/settings.json). Each binding is one entry in the keybind array:

"keybind": ["trigger=action"]   // optionally with a :param

The keybind array takes as many entries as you like. A trigger is one or more modifiers and a key, joined with +:

Note

cmd is Command on macOS and Ctrl on Linux/Windows. Write your bindings with cmd and they map to the platform's primary modifier automatically.

Chain keys into a chord with > — the binding fires only when the keys are pressed in sequence (for example ctrl+a>n means "press A, then N").

keybind = cmd+t=new_tab
keybind = cmd+shift+d=new_split:down
keybind = ctrl+a>n=next_tab

Customizing

Your bindings are merged on top of the defaults, so you only declare what you want to change:

# Override: make Cmd+T open a split instead of a tab
keybind = cmd+t=new_split:right

# Unbind: reclaim Cmd+K for the shell
keybind = cmd+k=unbind

# Chord: leader key for jumping to the first tab
keybind = ctrl+b>1=goto_tab:1

# Bind a plugin command
keybind = cmd+shift+j=plugin_command:git/status
Tip

Sinclair watches your config file. Edits to your keybindings apply live the moment you save — no restart needed.

Default keybindings

These bindings are active out of the box. ( is Command on macOS and Ctrl on Linux/Windows.)

ShortcutActionWhat it does
Nnew_windowOpen a new window
Tnew_tabOpen a new tab
Wclose_surfaceClose the focused pane
Wclose_tabClose the tab and all its panes
Wclose_windowClose the window
Wclose_all_windowsClose every window
Ssave_bufferSave the focused terminal's buffer to a text file
Dnew_split:rightSplit the pane to the right
Dnew_split:downSplit the pane downward
[previous_tabSwitch to the previous tab
]next_tabSwitch to the next tab
19goto_tab:NJump to tab N (1-based)
goto_split:upFocus the pane above
goto_split:downFocus the pane below
goto_split:leftFocus the pane to the left
goto_split:rightFocus the pane to the right
Ccopy_to_clipboardCopy the selection
Vpaste_from_clipboardPaste from the clipboard
arrowsadjust_selection:<dir>Extend the selection by a cell (falls through to the app when none)
+ adjust_selection:word_left / word_rightExtend the selection by a word (starts at the cursor)
+ adjust_selection:line_start / line_endExtend the selection to the line start / end (starts at the cursor)
+increase_font_size:1Increase the font size
=increase_font_size:1Increase the font size
-decrease_font_size:1Decrease the font size
0reset_font_sizeReset the font size
Kclear_screenClear the screen and scrollback
Ftoggle_searchToggle the search bar
Ftoggle_semantic_searchToggle semantic search
Eexplain_outputExplain the output (AI)
Gcompose_commandCompose a command (AI)
Btoggle_broadcastToggle input broadcast to all panes
Pcommand_paletteOpen the command palette
Pquick_openQuick open
Rtoggle_recordingToggle session recording
jump_to_prompt:-1Jump to the previous prompt
jump_to_prompt:1Jump to the next prompt
Ocopy_command_outputCopy the last command's output (OSC 133 blocks)
UhintsHint mode: label visible URLs, type to open
Spacecopy_modeCopy mode: vi-style keyboard selection
Yclipboard_historyClipboard-history picker
Fsearch_allGlobal search across all tabs
Eunicode_pickerEmoji / symbol insert picker
SsnippetsSnippet / workflow picker
PprofilesLaunch-profile picker (opens a command tab)
AannotateAnnotate the current line with a note
NnotesOpen the Notes markdown-vault surface
B / Bsidebar:left / sidebar:rightToggle the left / right sidebar
,toggle_settingsToggle the settings panel
Ttoggle_quick_terminalToggle the quick terminal
Arelay_launchLaunch a relay agent
Irelay_feedOpen the relay feed
Lrelay_logOpen the relay log
QquitQuit Sinclair

macOS-only readline keys

On macOS, Sinclair maps the familiar Cocoa text-navigation shortcuts to the control sequences a readline shell expects, so line editing feels native.

ShortcutSendsWhat it does
0x01Move to start of line
0x05Move to end of line
0x15Delete to start of line
ESC bMove to previous word
ESC fMove to next word
ESC DELDelete previous word
Aselect_allSelect all terminal text

Action catalog

Every action you can bind, with its config string and any parameters. Parameters follow the action after a colon (for example new_split:right). Where an action lists an alias, either name works in your config.

Action (config string)ParamsDescription
new_windowOpen a new window
new_tabOpen a new tab
close_surfaceClose the focused pane
close_tabClose the tab and all its panes
close_windowClose the window
close_all_windowsClose every window
new_splitDIR: right | down | left | upSplit the focused pane in the given direction
goto_splitTARGET: up | down | left | right | next | previousMove focus to an adjacent or sequential pane
zoom_split (toggle_split_zoom)Toggle zoom on the focused pane
equalize_splitsReset all split ratios to equal
resize_splitDIR: up | down | left | rightGrow the focused pane in the given direction
goto_tabN: 1-based index; negative counts from the endSwitch to tab N
previous_tabSwitch to the previous tab
next_tabSwitch to the next tab
move_tabDELTA: signed integerMove the current tab by DELTA positions
copy_to_clipboard (copy)Copy the selection
copy_command_output (copy_last_output)Copy the last command's output between OSC 133 prompt marks
hints (open_url_hint)Enter hint mode: label visible URLs, type a label to open
copy_mode (toggle_copy_mode)Toggle vi-style keyboard selection
clipboard_history (paste_history)Open the clipboard-history picker
search_all (global_search)Fuzzy search recent output across all tabs
unicode_picker (insert_emoji)Insert an emoji or symbol
snippets (workflows)Insert a saved snippet into the focused pane
profiles (profile_picker)Open a named launch profile in a new tab
annotatePin a note to the current line
notesOpen the Notes markdown-vault surface
paste_from_clipboard (paste)Paste from the clipboard
select_allSelect all terminal text
adjust_selectionleft, right, up, down, home, end, page_up, page_down, word_left, word_right, line_start, line_endExtend the selection's moving end (word_* / line_* start at the cursor)
textBYTES: C-escapes \n \r \t \e \0 \\ \xNNSend literal bytes to the terminal
escBYTES: C-escapes \n \r \t \e \0 \\ \xNNSend an escape sequence (prefixed with ESC) to the terminal
increase_font_sizeAMOUNT (optional)Increase the font size by AMOUNT (default 1)
decrease_font_sizeAMOUNT (optional)Decrease the font size by AMOUNT (default 1)
reset_font_sizeReset the font size to the configured default
scroll_page_upScroll up one page
scroll_page_downScroll down one page
scroll_to_topScroll to the top of the scrollback
scroll_to_bottomScroll to the bottom (live output)
jump_to_promptDELTA: signed integerJump to a prompt relative to the current one
clear_screenClear the screen and scrollback
toggle_searchToggle the search bar
toggle_semantic_searchToggle semantic search
explain_outputExplain the output (AI)
compose_commandCompose a command (AI)
plugin_commandPLUGIN/COMMANDRun a command contributed by a plugin
macro_recordStart or stop recording a macro
macroNAMEReplay the named macro
command_paletteOpen the command palette
quick_openQuick open
toggle_settings (open_settings)Toggle the settings panel
show_help (help)Show the help screen
toggle_fullscreenToggle fullscreen
minimize_window (minimize)Minimize the window
zoom_windowZoom (maximize) the window
hide_all (toggle_visibility)Hide or show all windows
bring_all_to_frontBring all windows to the front
return_to_default_size (reset_window_size)Restore the window to its default size
use_as_defaultSave the current layout as the default
change_tab_titleRename the current tab
change_terminal_titleRename the current terminal
toggle_read_onlyToggle read-only mode for the pane
toggle_broadcast (broadcast_input)Toggle input broadcast to all panes
toggle_recording (record_session)Toggle session recording
export_recording (export_recording:mp4)Export the latest recording to a GIF (or MP4 with :mp4)
save_bufferSave the focused terminal's buffer (scrollback + screen) to a text file
toggle_quick_terminal (quick_terminal)Toggle the quick terminal
relay_feedOpen the relay feed
relay_launchLaunch a relay agent
relay_logOpen the relay log
relay_startStart the relay daemon
relay_stopStop the relay daemon
relay_restartRestart the relay daemon
tileLAYOUT_IDApply a saved tile layout
save_layoutSave the current layout
worktree_create (worktree_new)PATH; append @branch to name the branchCreate a git worktree branched from HEAD and open it in a new tab
worktree_openPATHOpen an existing git worktree in a new tab
worktree_removePATHRemove a git worktree (git worktree remove)
sidebarSIDE: left | right; optional :PANEL idToggle a sidebar (optionally a specific panel)
open_teamNAMEOpen the named team
agent_defNAMEOpen the named agent definition
quitQuit Sinclair
unbindRemove a default binding for this trigger