config.yaml

AgentKit Configuration

config.yaml stores AgentKit preferences: file locations, user/project merge, each setting’s meaning, defaults, and options.

Locations

Two scopes, one schema

User

~/.agentkit/config.yaml (or $AGENTKIT_HOME/config.yaml). Per-machine: keys, updates, adapters, telemetry…

Project

.agentkit/config.yaml in the repo. Deep-merges over user for this repo: coding_level, paths, hooks…

Field names are snake_case. Schema: https://releases.agentkit.best/schemas/config/v1.json — validate with ak config prefs validate.

CLI

View and edit

shell
# Dashboard / visual config
ak config

# Preferences (hook toggles, resolve effective config)
ak config prefs resolve
ak config prefs validate
ak config prefs set hooks.simplify-gate false --scope project
ak config prefs unset hooks.simplify-gate --scope project

Setup-owned

Sections ak setup / lifecycle usually write

Keys the CLI setup model owns. “—” means omit/empty until setup writes them.

Path Type Default Options Meaning
keys.anthropic string Anthropic API key written by ak setup. User config only — never commit secrets in project config.
keys.openai string OpenAI API key written by ak setup. User config only.
provider.default string Default provider id (for example anthropic).
provider.model string Default text model id.
provider.image string Model used for image generation.
kit.default string Default kit (for example engineer) for install/setup.
telemetry.enabled boolean false* Send anonymous usage telemetry. *setup fixtures often false; enable only if you opt in.
api.token string Bearer token for the local API/dashboard when binding beyond loopback. Do not commit.
adapters.enabled string claude-code, codex, cursor, … Comma-separated enabled adapter ids (e.g. claude-code,codex).
codex.api_key_env_var string Env var name Codex reads for the API key (e.g. OPENAI_API_KEY).
codex.default_model string Model written into the Codex config.
codex.provider string openai | azure | bedrock Codex backend provider.
updates.enabled boolean Opt in to Desktop auto-update / paired updates.
updates.channel string stable | beta Binary update channel. Empty may fall back to binary defaults.
updates.registry_url string Override update metadata root (staging only).
updates.cli_path string Verified ak executable paired with Desktop auto-update.
backups.scope string full full | lean Capture scope for user-home snapshots.
backups.keep_last integer 20 Snapshots to retain. 0 disables pruning.

Preferences

Workflow / kit preferences (often project)

From the project template and schema v1. Safe to commit so teams share coding_level, paths, and hooks.

Path Type Default Options Meaning
coding_level integer -1 -1…5 -1 off · 0 eli5 · 1 junior · 2 mid · 3 senior · 4 tech-lead · 5 architect/god-mode. Controls explanation depth.
privacy_block boolean true Privacy hook blocks reading sensitive files (.env, credentials, keys…).
paths.docs string docs Docs directory (project-relative or absolute).
paths.plans string plans Plans directory.
docs.max_loc integer 800 100–5000 Suggested max LOC per documentation file.
locale.response_language string|null null User-facing response language (null = match user / English).
locale.thinking_language string|null null Internal reasoning language (null = English).
plan.naming_format string "{date}-{issue}-{slug}" Plan directory name template. Tokens: {date}, {issue}, {slug}.
plan.date_format string YYMMDD-HHmm Format for the {date} token.
plan.issue_prefix string GH- Issue prefix (e.g. GH-, JIRA-).
plan.reports_dir string reports Reports subdirectory inside a plan.
plan.resolution.order string[] ["session","branch"] session, branch, directory Order of strategies to resolve the active plan.
plan.validation.mode string prompt prompt | auto | strict | none When the plan validation interview runs.
plan.validation.min_questions integer 3 Minimum validation questions.
plan.validation.max_questions integer 8 Maximum validation questions.
hooks.<name> boolean absent = on true | false Per-hook toggle by script basename. Missing key means the hook is enabled.
project.type string auto auto | library | application | monorepo | cli | api | web | mobile Override project type detection.
gemini.model string gemini-3-flash-preview gemini-2.5-flash | gemini-2.5-pro | … Gemini CLI model when skills use Gemini.

Examples

Minimal samples

User (this machine)

config.yaml
# ~/.agentkit/config.yaml  (user scope)
telemetry:
  enabled: false
adapters:
  enabled: claude-code,codex
updates:
  enabled: false
  channel: stable
backups:
  scope: full
  keep_last: 20
coding_level: 2
privacy_block: true
locale:
  response_language: vi
  thinking_language: en

Project (committable)

.agentkit/config.yaml
# .agentkit/config.yaml  (project — safe to commit)
# yaml-language-server: $schema=https://releases.agentkit.best/schemas/config/v1.json
coding_level: 3
paths:
  docs: docs
  plans: plans
privacy_block: true
hooks:
  simplify-gate: false
plan:
  naming_format: "{date}-{slug}"
  validation:
    mode: prompt

Next