配置参考
Herdr 从 config.toml 读取的所有规范键都在这里平铺列出,并支持筛选。
配置的分步指南与各选项的背景说明见配置。
随时可以打印带注释的完整默认配置:
herdr --default-config自定义命令绑定([[keys.command]])是用户自定义的表,因此不在此处逐键列出,
见自定义命令按键绑定。
各键的描述目前为英文。
General
-
onboardingboolean defaultunsetShow first-run setup on startup. Missing or true shows onboarding; continuing from onboarding writes onboarding = false.
Theme
-
theme.namestring default"catppuccin"Built-in theme name.
-
theme.auto_switchboolean defaultfalseFollow host terminal light/dark appearance and switch between theme names.
-
theme.dark_namestring defaultunsetTheme name used when `auto_switch` selects a dark appearance.
-
theme.light_namestring defaultunsetTheme name used when `auto_switch` selects a light appearance.
-
theme.custom.accentcolor defaultunsetOverride the accent color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.panel_bgcolor defaultunsetOverride the panel_bg color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.surface0color defaultunsetOverride the surface0 color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.surface1color defaultunsetOverride the surface1 color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.surface_dimcolor defaultunsetOverride the surface_dim color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.overlay0color defaultunsetOverride the overlay0 color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.overlay1color defaultunsetOverride the overlay1 color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.textcolor defaultunsetOverride the text color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.subtext0color defaultunsetOverride the subtext0 color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.mauvecolor defaultunsetOverride the mauve color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.greencolor defaultunsetOverride the green color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.yellowcolor defaultunsetOverride the yellow color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.redcolor defaultunsetOverride the red color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.bluecolor defaultunsetOverride the blue color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.tealcolor defaultunsetOverride the teal color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
-
theme.custom.peachcolor defaultunsetOverride the peach color token on top of the base theme. Accepts hex, named colors, rgb(r,g,b), or reset aliases.
Terminal
-
terminal.default_shellstring default""Executable used for new interactive panes. Empty means SHELL, then /bin/sh.
-
terminal.shell_modeenum default"auto"Startup mode for new interactive pane shells.
autologinnon_login -
terminal.new_cwdenum default"follow"CWD policy for new interactive panes, tabs, and workspaces.
followhomecurrentpath
Updates
-
update.channelenum default"stable" ("preview" on Windows)Update channel used by background version checks and herdr update. Homebrew, mise, and Nix installs ignore the preview channel.
stablepreview -
update.version_checkboolean defaulttrueCheck herdr.dev for new Herdr versions in the background.
-
update.manifest_checkboolean defaulttrueCheck herdr.dev for remote agent-detection manifest updates in the background. Bundled manifests and local overrides still apply.
Keybindings
-
keys.prefixstring default"ctrl+b"Prefix key to enter prefix mode (e.g. "ctrl+b", "f12", "esc").
-
keys.helpkeybinding default"prefix+?"Open keybinding help.
-
keys.settingskeybinding default"prefix+s"Open settings.
-
keys.new_workspacekeybinding default"prefix+shift+n"Create a new workspace.
-
keys.new_worktreekeybinding default"prefix+shift+g"Create a Git worktree from the selected workspace.
-
keys.open_worktreekeybinding defaultunsetOpen an existing Git worktree from the selected workspace. Unset by default.
-
keys.remove_worktreekeybinding defaultunsetDelete the selected managed worktree checkout after confirmation. Unset by default.
-
keys.rename_workspacekeybinding default"prefix+shift+w"Rename the selected workspace.
-
keys.close_workspacekeybinding default"prefix+shift+d"Close the selected workspace.
-
keys.workspace_pickerkeybinding default"prefix+w"Open the workspace navigation surface.
-
keys.gotokeybinding default"prefix+g"Open the session navigator.
-
keys.navigate_workspace_upkeybinding default"up"Move workspace selection up in navigate mode.
-
keys.navigate_workspace_downkeybinding default"down"Move workspace selection down in navigate mode.
-
keys.navigate_pane_leftkeybinding default"h"Focus the pane to the left in navigate mode. Left arrow is always an alias.
-
keys.navigate_pane_downkeybinding default"j"Focus the pane below in navigate mode.
-
keys.navigate_pane_upkeybinding default"k"Focus the pane above in navigate mode.
-
keys.navigate_pane_rightkeybinding default"l"Focus the pane to the right in navigate mode. Right arrow is always an alias.
-
keys.detachkeybinding default"prefix+q"Detach from server/client mode, or exit --no-session mode.
-
keys.reload_configkeybinding default"prefix+shift+r"Reload config.toml in the running app/server.
-
keys.open_notification_targetkeybinding default"prefix+o"Focus the currently visible notification target.
-
keys.previous_workspacekeybinding defaultunsetSelect the previous workspace. Unset by default.
-
keys.next_workspacekeybinding defaultunsetSelect the next workspace. Unset by default.
-
keys.previous_agentkeybinding defaultunsetFocus the previous agent shown in the agent panel. Unset by default.
-
keys.next_agentkeybinding defaultunsetFocus the next agent shown in the agent panel. Unset by default.
-
keys.focus_agentkeybinding defaultunsetFocus an agent by index 1-9. Unset by default.
-
keys.remote_image_pastestring default"ctrl+v"Local-client shortcut that sends a clipboard image to a remote Herdr session.
-
keys.new_tabkeybinding default"prefix+c"Create a new tab in the active workspace.
-
keys.rename_tabkeybinding default"prefix+shift+t"Rename the active tab.
-
keys.previous_tabkeybinding default"prefix+p"Select the previous tab.
-
keys.next_tabkeybinding default"prefix+n"Select the next tab.
-
keys.switch_tabkeybinding default"prefix+1..9"Switch to tab 1-9.
-
keys.switch_workspacekeybinding defaultunsetSwitch to workspace 1-9 from prefix mode. Unset by default.
-
keys.close_tabkeybinding default"prefix+shift+x"Close the active tab.
-
keys.rename_panekeybinding default"prefix+shift+p"Rename the focused pane.
-
keys.edit_scrollbackkeybinding default"prefix+e"Open the focused pane scrollback in $EDITOR.
-
keys.copy_modekeybinding default"prefix+["Enter keyboard copy mode for the focused pane.
-
keys.focus_pane_leftkeybinding default"prefix+h"Focus the pane to the left.
-
keys.focus_pane_downkeybinding default"prefix+j"Focus the pane below.
-
keys.focus_pane_upkeybinding default"prefix+k"Focus the pane above.
-
keys.focus_pane_rightkeybinding default"prefix+l"Focus the pane to the right.
-
keys.swap_pane_leftkeybinding default"prefix+shift+h"Swap the focused pane with the pane to the left.
-
keys.swap_pane_downkeybinding default"prefix+shift+j"Swap the focused pane with the pane below.
-
keys.swap_pane_upkeybinding default"prefix+shift+k"Swap the focused pane with the pane above.
-
keys.swap_pane_rightkeybinding default"prefix+shift+l"Swap the focused pane with the pane to the right.
-
keys.cycle_pane_nextkeybinding default"prefix+tab"Cycle to the next pane.
-
keys.cycle_pane_previouskeybinding default"prefix+shift+tab"Cycle to the previous pane.
-
keys.last_panekeybinding defaultunsetFocus the last focused pane across workspaces and tabs. Unset by default.
-
keys.split_verticalkeybinding default"prefix+v"Split pane vertically (side by side).
-
keys.split_horizontalkeybinding default"prefix+minus"Split pane horizontally (stacked).
-
keys.close_panekeybinding default"prefix+x"Close the focused pane.
-
keys.zoomkeybinding default"prefix+z"Toggle zoom for the focused pane. The legacy key name `fullscreen` is accepted as an alias.
-
keys.resize_modekeybinding default"prefix+r"Enter resize mode.
-
keys.toggle_sidebarkeybinding default"prefix+b"Toggle sidebar collapse.
-
keys.indexed.tabsstring defaultunsetModifier combo for tab shortcuts 1-9. Unset by default.
-
keys.indexed.workspacesstring defaultunsetModifier combo for workspace shortcuts 1-9. Unset by default.
-
keys.indexed.agentsstring defaultunsetModifier combo for agent shortcuts 1-9. Unset by default.
UI and sidebar
-
ui.sidebar_widthinteger default26Default expanded sidebar width in columns. Auto-scales based on workspace names.
-
ui.sidebar_min_widthinteger default18Minimum sidebar width (columns) when expanded.
-
ui.sidebar_max_widthinteger default36Maximum sidebar width (columns) when expanded.
-
ui.sidebar_collapsed_modeenum defaultcompactCollapsed sidebar presentation.
compacthidden -
ui.mobile_width_thresholdinteger default64Terminal width at or below which Herdr uses the mobile single-column layout.
-
ui.mouse_captureboolean defaulttrueCapture mouse input for Herdr's mouse UI.
-
ui.host_cursorenum defaultautoHost cursor policy.
autonativedrawn -
ui.right_click_passthrough_modifierstring default""Modifier that lets right-click gestures pass through to pane apps. Empty disables it. Accepts ctrl, alt, cmd, super, meta, hyper, or a + separated combination; shift is rejected because many terminals reserve Shift+mouse.
-
ui.redraw_on_focus_gainedboolean defaulttrueForce a full host-terminal redraw when the outer terminal regains focus.
-
ui.mouse_scroll_linesinteger default3Lines to scroll per mouse wheel notch.
-
ui.confirm_closeboolean defaulttrueAsk for confirmation before closing a workspace.
-
ui.prompt_new_tab_nameboolean defaulttrueAsk for a tab name before creating a new tab.
-
ui.pane_bordersboolean defaulttrueDraw borders around split panes.
-
ui.pane_gapsboolean defaulttrueKeep split panes visually separated instead of sharing divider borders.
-
ui.show_agent_labels_on_pane_bordersboolean defaultfalseShow agent labels in split pane borders when no manual pane label is set.
-
ui.hide_tab_bar_when_single_tabboolean defaultfalseHide the tab row when the workspace has one tab.
-
ui.agent_panel_sortenum default"spaces"Agent sidebar ordering. Saved values are "spaces" or "priority"; "workspaces" is accepted as an alias for "spaces".
spacespriority -
ui.accentcolor default"cyan"Accent color for highlights, borders, and navigation UI. Accepts hex (#89b4fa), named colors (cyan, blue), or RGB (rgb(137,180,250)).
Notifications
-
ui.toast.deliveryenum default"off"Popup notification delivery. off disables popups, herdr shows in-app toasts, terminal asks the outer terminal for a desktop notification, system asks the OS notification service directly.
offherdrterminalsystem -
ui.toast.delay_secondsinteger default1Seconds to wait before sending finished or needs-input agent notifications. Herdr notifies only if the pane is still in the same state when the delay expires. 0 is instant; valid values are 0 through 3600.
-
ui.toast.herdr.positionenum default"bottom-right"In-app toast position, relative to the full Herdr frame.
top-lefttop-rightbottom-leftbottom-right -
ui.toast.clipboard.enabledboolean defaulttrueShow the copied-to-clipboard popup after a mouse copy.
-
ui.toast.clipboard.positionenum default"bottom-center"Copied-to-clipboard popup position.
top-lefttop-centertop-rightbottom-leftbottom-centerbottom-right
Sound
-
ui.sound.enabledboolean defaulttruePlay sounds when agents change state in background workspaces.
-
ui.sound.pathpath defaultunsetOptional mp3 file path used for all notification sounds. Relative paths are resolved from the config file's directory.
-
ui.sound.done_pathpath defaultunsetOptional mp3 file path for "done" notifications. Relative paths are resolved from the config file's directory.
-
ui.sound.request_pathpath defaultunsetOptional mp3 file path for "request" notifications. Relative paths are resolved from the config file's directory.
-
ui.sound.agents.pienum default"default"Sound override for detected Pi agents.
defaultonoff -
ui.sound.agents.claudeenum default"default"Sound override for detected Claude Code agents.
defaultonoff -
ui.sound.agents.codexenum default"default"Sound override for detected Codex agents.
defaultonoff -
ui.sound.agents.geminienum default"default"Sound override for detected Gemini CLI agents.
defaultonoff -
ui.sound.agents.cursorenum default"default"Sound override for detected Cursor Agent CLI agents.
defaultonoff -
ui.sound.agents.devinenum default"default"Sound override for detected Devin agents.
defaultonoff -
ui.sound.agents.agyenum default"default"Sound override for detected Agy agents.
defaultonoff -
ui.sound.agents.clineenum default"default"Sound override for detected Cline agents.
defaultonoff -
ui.sound.agents.open_codeenum default"default"Sound override for detected OpenCode agents.
defaultonoff -
ui.sound.agents.github_copilotenum default"default"Sound override for detected GitHub Copilot CLI agents.
defaultonoff -
ui.sound.agents.kimienum default"default"Sound override for detected Kimi Code CLI agents.
defaultonoff -
ui.sound.agents.kiroenum default"default"Sound override for detected Kiro agents.
defaultonoff -
ui.sound.agents.droidenum default"off"Sound override for detected Droid agents.
defaultonoff -
ui.sound.agents.ampenum default"default"Sound override for detected Amp agents.
defaultonoff -
ui.sound.agents.grokenum default"default"Sound override for detected Grok CLI agents.
defaultonoff -
ui.sound.agents.hermesenum default"default"Sound override for detected Hermes Agent agents.
defaultonoff -
ui.sound.agents.kiloenum default"default"Sound override for detected Kilo Code CLI agents.
defaultonoff -
ui.sound.agents.qoderclienum default"default"Sound override for detected Qoder CLI agents.
defaultonoff
Session
-
session.resume_agents_on_restoreboolean defaulttrueResume supported AI-agent panes into their native conversation sessions when restoring a Herdr session.
Worktrees
-
worktrees.directorystring default"~/.herdr/worktrees"Root directory under which Herdr creates <repo>/<branch-slug> checkouts.
Remote
-
remote.manage_ssh_configboolean defaulttrueAdd keepalive fallbacks and private connection reuse for `herdr --remote`. Set false to run plain ssh unchanged.
Advanced
-
advanced.scrollback_limit_bytesinteger default10000000Maximum scrollback buffer size in bytes retained per pane terminal. The legacy key name `scrollback_lines` is accepted as an alias.
Experimental
-
experimental.allow_nestedboolean defaultfalseAllow launching herdr inside an existing herdr pane.
-
experimental.kitty_graphicsboolean defaultfalseExperimental local Kitty graphics rendering for attached clients.
-
experimental.pane_historyboolean defaultfalsePersist pane screen history to session-history.json.
-
experimental.reveal_hidden_cursor_for_cjk_imeboolean defaultfalseExpose the focused pane's cursor anchor to the outer terminal even when the pane requested `?25l`, so macOS native input methods keep tracking the candidate window when TUIs paint their own cursor (Claude Code, pi, codex, etc.). Default: false. When the pane reports no cursor position, falls back to the pane's top-left so a stable IME anchor is always available. Trade-off when enabled: an extra hardware cursor will be visible in the outer terminal for apps that hide the cursor without painting a replacement (vim normal mode, etc.). See #149.
-
experimental.cjk_ime_agentslist of strings default[]Restrict `reveal_hidden_cursor_for_cjk_ime` to focused panes whose detected agent matches one of these names (case-insensitive). Empty list means apply to any focused pane. Unknown agent names are ignored; if the list contains no valid names, the reveal does not apply. Accepted names: pi, claude, codex, gemini, cursor, devin, cline, opencode, copilot, kimi, kiro, droid, amp, grok, hermes, kilo, qodercli, qoder.
-
experimental.cjk_ime_cursor_shapeenum default"steady_block"Cursor shape rendered for the IME anchor when `reveal_hidden_cursor_for_cjk_ime` is enabled.
blocksteady_blockunderlinesteady_underlinebarsteady_bar -
experimental.switch_ascii_input_source_in_prefixboolean defaultfalseWhile prefix mode is active, temporarily switch the macOS host input source to an ASCII-capable keyboard layout so prefix commands are read as ASCII even when a CJK IME is active, then restore the previous input source when prefix mode exits. macOS only; a no-op elsewhere and a best-effort no-op if the switch fails.
没有匹配的键。