Skip to content

Settings

Settings is a workspace with a tab for each area of settings. Each tab is a page you change things on, and your changes go into the same files you’d edit by hand (~/.config/ws/keys.toml, ~/.config/ws/config.toml), keeping your comments.

Its tabs:

Tab What’s in it File
Keyboard shortcuts Every command’s keys, the keyboard map, the leader keys.toml
General The Dashboard on a fresh start; the which-key popup and its delay; whether the leader twice types it config.toml, keys.toml
Agents & memory Memory on or off, which agents get context, the context budget, per-repo opt-outs, session summaries, other agents config.toml
Reviews The review workspace, template and command, the default repo, repo aliases, the PR-comments prompt config.toml
  • leader S (Ctrl-Space S)
  • Click settings at the right end of the status line
  • The main menu (≡ menu): Settings
  • The finder (leader f): type settings
  • The Dashboard: the Settings link under “Your leader key is …”, or the Settings button under “Start something”
  • ws settings from a shell inside ws. With no ws running, it runs the Keyboard shortcuts page right there.

The first time, ws makes a Settings workspace at the end of the sidebar. After that it takes you back to the tab you last had there. It’s a workspace like any other: switch tabs with leader 1-9 or Alt-[/Alt-], and close it (or one of its tabs) when you’re done. Opening Settings again brings back whatever you closed.

This tab is the shortcut editor, with the keyboard map and every command. Two things are different from running ws keys in a terminal:

  • Changes save as you make them. There’s no w and no q. A running ws picks each change up within 10 seconds, and u undoes (and saves that too).
  • Hand edits are noticed. If keys.toml changes on disk (you edited it in Neovim, say), the page shows the new file within a second. Its next change builds on your edit, so it never overwrites it. A file that doesn’t load shows its error until you fix it.

Below the commands it lists, for reference, the keys you can’t change yet: the sidebar’s, copy mode’s and the mouse.

leader ? still opens the keys overlay, a quick look at every key. The keys link on the status line does the same.

Each is a list of settings under headings. The selected one’s description, and when a change takes effect, show at the bottom.

Key Does
j/k, arrows, g/G Move
Enter, Space A switch flips. Anything else is edited on its line: type, Enter saves, Esc cancels, C-u clears
d Back to the default (the line leaves the file)
a On a table (Repo aliases, Per-repo opt-outs, Other agents) or one of its entries: add an entry. It asks for what the entry needs (below)
x On an entry’s name: remove the entry and its settings (asks first)
e Open config.toml in your editor at this setting’s section (WS_EDITOR, else nvim, else $EDITOR); on an entry, at its own header
u Undo the last change (and save that)
  • A value that isn’t the default is highlighted, with the default beside it.

  • Checked the way ws loads it. A number that isn’t one, or anything else ws wouldn’t load, is refused, and the bottom line says why.

  • Saved as you go, comments kept, and hand edits noticed, as on the Keyboard shortcuts page.

  • When it applies: ws reads config.toml each time it needs a value, so most changes apply the next time they’re used: the next review, the next agent that starts. The Dashboard setting applies on the next fresh start, and General’s keys settings within 10 seconds.

  • Tables show each entry under them, with the entry’s settings indented below its name. Those edit like any other setting.

    Table a asks for Each entry’s settings
    Repo aliases a name and the repo: sf acme/storefront repo, clone, host, gh account
    Per-repo opt-outs the repo: github.com/org/name (stored in lowercase, as memory looks it up) store its sessions, give its memory to agents (both on to start)
    Other agents the agent’s name: grok command, how it gets context, model flag

    A new agent also gets a “Give context to …” switch under Memory.

  • Required text can’t be emptied (an alias’s repo, the review workspace): change it, or d for the default where there is one.

  • Lists of words (the summarizer command, its repos) are edited as text separated by spaces.