Skip to content

Config Files

Global config (~/.config/deer/config.toml)

The global config applies to all repositories. Any field you set here replaces the built-in default for that field.

Note that list fields like allowlist replace the built-in list entirely -- they are not additive.

toml
[defaults]
base_branch = "main"
timeout_ms = 1800000
setup_command = "npm install"

[network]
allowlist = [
  "api.anthropic.com",
  "claude.ai",
  "statsig.anthropic.com",
  "sentry.io",
  "registry.npmjs.org",
]

[sandbox]
runtime = "srt"
env_passthrough = ["NODE_ENV", "CI"]

Repo-local config (deer.toml)

Place this file in your repository root. It is safe to commit.

Top-level fields (like base_branch) override the global config directly. For list fields, use the _extra suffix to append to (rather than replace) the global list.

toml
base_branch = "master"
setup_command = "pnpm install"

[network]
allowlist_extra = ["npm.pkg.github.com"]

[sandbox]
env_passthrough_extra = ["NODE_ENV"]

The _extra convention

Global config uses bare field names. Repo-local config uses _extra suffixed fields to extend lists without replacing them.

Global fieldRepo-local fieldBehavior
allowlistallowlist_extraGlobal replaces built-in list; repo-local appends to it
env_passthroughenv_passthrough_extraGlobal replaces built-in list; repo-local appends to it
proxy_credentialsproxy_credentials_extraGlobal replaces built-in list; repo-local appends to it

This means a repo-local deer.toml never accidentally removes domains or credentials that the global config provides.


CLI flags

CLI flags have the highest priority and override all config file values.

FlagDescription
--modelOverride the model used by the agent
--base-branchOverride the base branch for PRs
--fromStart the worktree from a specific branch instead of the base branch
--keepKeep the worktree after the agent finishes
--continueContinue a previous agent session

Released under the MIT License.