~/.geoff (or $GEOFF_CODE_HOME if set):
Both are created with defaults on first run. Validate them at any time with
geoff doctor (see Command Reference). Keys use snake_case.
config.toml
Top-level keys
[providers.<name>]
Each provider declares how to reach an API. The type is one of anthropic, openai, openai_responses, google-genai, vertexai, or kimi.
Get a key from https://geoff.ai/settings/api-keys. Avoid committing keys; set
GEOFF_API_KEY in your environment, or pass -k, --api-key for a single invocation.[models.<alias>]
Aliases map a short name to a concrete model on a provider. The default alias is pyro.
[[hooks]]
Lifecycle hooks (array of tables). See Hooks for events and the I/O protocol.
[permission]
Persistent allow/deny/ask rules for tool calls.
[loop_control]
Tune the agent’s turn-execution limits.
[background]
Control background task execution.
[experimental]
Toggle named experimental features (booleans). Unknown keys are rejected by validation.
Alternate config files
Geoff Code also readsconfig.toml over RPC at startup. Use geoff doctor config <path> to validate a file at a non-default path.
tui.toml
Client-side preferences for the terminal UI:
Validate it with
geoff doctor tui.
Related
Command Reference
Use
geoff doctor to validate both files.Hooks
The full hook event reference.