Settings

Global settings live in the wsx state database. Read and change them with wsx config. Per-repo values override some of them.

wsx config list
wsx config get <key>
wsx config set <key> <value>
wsx config edit <key>        # opens $EDITOR (default: vi)

Value sources:

  • A literal: wsx config set branch_prefix bakedbean
  • A file, prefixed with @: wsx config set custom_instructions @./instructions.md
  • An empty string clears the key and restores the default: wsx config set custom_instructions ""
  • wsx config edit <key> opens the current value in $EDITOR. Use it for multi-line values.

config set rejects unknown keys. On/off keys accept on/true/1/yes and off/false/0/no. See wsx config for the full syntax.

Global settings drawer

Press , on the dashboard to browse every key below without leaving wsx. The footer describes the selected key and lists its allowed values.

  • Unset keys are dimmed and show their default.
  • ↑/↓ selects a key. Enter flips an on/off key, steps a fixed-choice key (theme, coding_agent, bells, sort mode, usage window) to its next value, or opens any other key in $EDITOR.
  • d clears the key, restoring its default. Esc closes the drawer.

Values are validated the same way as wsx config set. Dashboard sort, pin, and top-bar tag settings apply at once; keys marked "Restart wsx to apply" still need a restart.

General

KeyDefaultEffect
branch_prefixunsetNames new branches <prefix>/<workspace>. Unset, the branch is the bare workspace name.
coding_agentclaudeAgent for new workspaces: claude, pi, hermes, codex or omp. See Coding agents.

Agent sessions

KeyDefaultEffect
custom_instructionsunsetText appended to the agent's system prompt on every spawn.
process_doctrinebuilt-in textReplaces the working doctrine injected into every session. off, none or disabled turns it off; an empty value restores the default. See What agents are told.
process_doctrine_extraunsetExtra - ... bullet lines appended to the doctrine.
mcp_mirroronCopy the source repo's MCP servers into each worktree. See MCP server inheritance.

Editor and tools

KeyDefaultEffect
editor_cmd$VISUAL, then $EDITORCommand for e. The worktree path is appended unless the command contains {path}.
terminal_cmd$TERMINALCommand for t, run in the worktree. {cmd} makes it usable for desktop-widget jumps.
diff_cmdunsetCommand for v. Accepts {path} and {base}.
lazygit_cmdunsetCommand for g, run in the worktree. It must open its own window, for example wezterm start -- lazygit.

See Editor, terminal, and diff for examples.

Notifications

KeyDefaultEffect
notificationsonMaster switch for the terminal bell and the ! attention marker.
notification_bell_questiondoubleBell when the agent asks you a question.
notification_bell_completesingleBell when the agent finishes a turn.
notification_bell_permissionsingleBell when the agent waits on a permission prompt.
notification_bell_stalledtripleBell when the agent stalls.

Bell values are off, single, double or triple. off silences the bell but keeps the ! marker. See Status indicators.

Dashboard

KeyDefaultEffect
dashboard_sort_moderecencyWorkspace order within a repo: recency or status. o toggles it.
dashboard_blocked_pin_max_age_secs86400How long a workspace blocked on you stays pinned to the top in recency mode.
top_bar_show_tagsunsetTags, separated by commas or spaces, that keep a workspace in the attached view's top bar when a tag hide rule hides it from the dashboard. A workspace with any listed tag ignores every tag rule; PR hide rules still apply. Names are lowercased, and invalid ones are ignored. After wsx config set, restart wsx to apply; the , drawer applies it at once.
dashboard_branch_width28Width of the branch column, clamped to 10–80.
dashboard_pr_width16Width of the PR column, clamped to 8–24.
detail_bar_configbuilt-inJSON for the detail pane. See Detail bar for the schema.
usage_graph_window24hWindow of the $usage activity graph: 24h, 1w or 1mo. Shown only when a theme places $usage.
pinned_commandsunsetLabel=command lines shown as chips. See Pinned commands.
prompt_tagsunsetname=uses lines, maintained by the prompt-tag picker. See Prompt tags.

Appearance

KeyDefaultEffect
themewsxBase palette: wsx, default (terminal ANSI colors), dracula, jellybeans or nord. Restart wsx to apply.
bar_themeoffRead bar layout and styling from ~/.config/wsx/theme.toml. Applies within a second. See Themes.
nerd_fontsonUse Nerd Font glyphs on the dashboard.

Remote

KeyDefaultEffect
remote_controlonStart claude with --remote-control, so claude.ai/code and the mobile app can reach it. See Remote access.
remote_control_sandboxoffAlso pass --sandbox when remote_control is on.
remotesunsetname=command lines run by wsx remote <name>. See Remote access.
shared_hostsunsetname=ssh-destination lines for browsing and creating workspaces on other machines. See Shared workspaces.

Per-repo settings

Each repo can override or add these values:

SettingCLINotes
Namewsx repo set-name
Branch prefixwsx repo set-prefixOverrides branch_prefix.
Base branchwsx repo set-base-branch
Custom instructionswsx repo set-instructionsAdded to the global custom_instructions.
Setup and archive scriptswsx repo set-setup, set-archiveSee Setup and archive scripts.
Pinned commandswsx repo set-pinned-commandsReplaces the global pinned_commands.
Related reposwsx repo set-related-reposSee Related repos.
Detail bardrawer onlyMerged over the global detail_bar_config.

You can also edit them in the repo settings drawer: press s on any dashboard row.

  • An unset field shows the global value marked (inherited), or (unset).
  • ↑/↓ selects a field. Enter opens the repo value in $EDITOR and saves it when the editor exits.
  • d clears the repo value, which restores inheritance. Esc closes the drawer.

Use a terminal editor that blocks until you quit (vim, helix, nano). A GUI editor that returns immediately saves nothing.

See wsx repo for the full syntax.