grith config
Print the effective configuration, or set one key from a fixed 58-key whitelist.
grith config
grith config set <KEY> <VALUE>grith config prints the effective configuration - every layer already merged - as
TOML on stdout. Around 260 lines, so pipe it.
$ grith config | head -9
[general]
log_level = "info"
audit_dir = "~/.local/share/grith/audit"
plan_tier = "community"
update_check = true
audit_sync = true
profile_update_check = true
onboarded = false
exec_notice_seen = falseThis is the fastest way to answer "what is grith actually using right now", because it
shows the result of the file layers, --config and any GRITH_* variables together.
grith config set
Sets one key and rewrites $HOME/.config/grith/config.toml. On success it prints
Set <key>: <old> -> <new> followed by Saved to <path>.
The key must be on a fixed whitelist of 58 keys. It is not an arbitrary dotted path into the TOML, so a key that exists in the file is not necessarily settable this way.
$ grith config set foo.bar 1
Error: configuration error: unknown config key: foo.barValues are parsed to the field's type, and general.plan_tier is checked separately:
$ grith config set general.plan_tier gold
Error: configuration error: invalid plan_tier 'gold', expected one of: ["community", "pro", "enterprise"]Setting plan_tier grants nothing - the licence decides
the tier, and the daemon overwrites the key at start.
Keys you are most likely to want
| Key | Type | Default |
|---|---|---|
general.log_level | string | info |
general.audit_dir | string | ~/.local/share/grith/audit |
general.audit_sync | bool | true |
general.update_check | bool | true |
proxy.auto_allow_threshold | float | 3.0 |
proxy.auto_deny_threshold | float | 8.0 |
proxy.review_timeout_seconds | integer | 300 |
server.enabled | bool | true |
server.host | string | 127.0.0.1 |
server.port | port | 3141 |
server.auto_open_dashboard | bool | true |
supervisor.enabled | bool | true |
supervisor.default_profile | string | generic |
supervisor.max_concurrent_sessions | integer | 4 |
supervisor.freeze_timeout_seconds | integer | 300 |
llm.default_provider | string | ollama |
Most of the rest is the fifteen [supervisor.dns_inspection] tunables and the fifteen
[notifications] channel keys, plus the remaining [llm] model and base-URL keys, the
[supervisor] replay windows and the bookkeeping flags in [general]. Anything not on
the list is edited in the file.
⚠️Two workspace keys are not settable
supervisor.trust.restrict_to_workspace and supervisor.trust.additional_project_roots
are not on the whitelist. Edit config.toml directly, or turn the boundary on for a
single session with grith exec --workspace-only.
What does not exist
There is no grith config get, list, edit, validate or reload. To read a value,
grep the output of grith config. Changes are picked up when the process that reads them
next starts - restart the daemon with grith daemon restart.
See also
- Configuration overview - layers, precedence and the merge trap
grith init- create the file in the first place