Settings
A full-page settings view, opened with Cmd+,. Five sections — General, Editor, Keybindings, Git / GitHub, and a raw JSON editor. There is no Save button: every change applies and persists immediately.
General
- Theme —
grove(default),dark, orlight. - Markdown style —
nord(default) orreading(wider leading, narrow column) for rendered notes. See Markdown editor. - Open links in Grove browser — on by default; web links open in the embedded browser. Shift-click always escapes to the OS browser.
- Default agent — which agent CLI a bare new chat launches (
claudeby default).
Editor
- Font size — applies to the editor and diffs (clamped 8–32).
Keybindings
Every rebindable action with its current binding — edits apply live. The read-only cheatsheet is on Cmd+/. See Keyboard shortcuts.
Git / GitHub
- Default base branch — the base new tasks fork from when detection needs an override (default
main). See Design philosophy. - PRs default to draft — what the PR button preselects.
- Worktree setup script — edits
scripts.setupin your repo's committedgrove.jsonwithout you needing to know the format; it's the same file a hand-edit would touch, and it runs whenever a task worktree materializes. See Tasks and worktrees.
JSON
The whole settings object as editable JSON. It won't commit while it fails to parse — a parse error shows inline instead of eating your edits.
Where settings live
Settings persist in the app's local storage, per machine — there's no sync and no settings file on disk. Two exceptions:
- The worktree setup script is not a Grove setting at all — it reads and writes your workspace's
grove.json, which you can commit. - Disabled language servers (toggled from the process monitor, not this page) are mirrored to the backend so disabled languages stay off across restarts.