grithdocs

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.

terminal
$ 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 = false

This 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.

terminal
$ grith config set foo.bar 1
Error: configuration error: unknown config key: foo.bar

Values are parsed to the field's type, and general.plan_tier is checked separately:

terminal
$ 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

KeyTypeDefault
general.log_levelstringinfo
general.audit_dirstring~/.local/share/grith/audit
general.audit_syncbooltrue
general.update_checkbooltrue
proxy.auto_allow_thresholdfloat3.0
proxy.auto_deny_thresholdfloat8.0
proxy.review_timeout_secondsinteger300
server.enabledbooltrue
server.hoststring127.0.0.1
server.portport3141
server.auto_open_dashboardbooltrue
supervisor.enabledbooltrue
supervisor.default_profilestringgeneric
supervisor.max_concurrent_sessionsinteger4
supervisor.freeze_timeout_secondsinteger300
llm.default_providerstringollama

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

Last updated: 2026-08-24Edit this page on GitHub →