Configuration you should tune
- The files most worth tuning
config.jsonshape- Adding your own MCP servers
- Tools are global, configuration is per-project
Everything is driven by .aiflow/config.json (committed, no secrets). Edit it interactively with
aiflow change-settings (re-renders .mcp.json, hooks, branching, memory) — switch version control
(git/svn), pick different Ollama models, or turn token saving off entirely with
aiflow change-settings --no-token-saving. Secrets always stay in .env (gitignored, never global).

The files most worth tuning
AGENTS.md— the operating rules any coding agent reads (Claude Code, GitHub Copilot, OpenAI Codex CLI): project overview, architecture hints, code style, task workflow, git rules, the memory/context stack, communication. Fill the[EDIT ME]blocks (§1 overview, §2 architecture) — this is the single biggest quality lever.CLAUDE.mdis just a one-line@AGENTS.mdimport for Claude Code — editAGENTS.md, notCLAUDE.md. See Multi-Agent Support..aiflow/team-prefs.json(the “preferences” file) — shared, versioned team/user preferences: code style preset, language, conventions. Committed so the team inherits them; overridesAGENTS.md §3..claude/memory/—project-aim.md(goal + architecture),dev-environment.md,memory-policy.md(the retrieval routing + learning intensity). Claude Code only — read these files directly if your agent doesn’t support persistent memory. Keep them current..claude/settings.json— permissions (allow/deny), hooks (caveman, formatter, beads-sync), MCP allow-list. Claude Code only..aiflow/branching.json/docs/branching.md— the branching + release model..env— all tokens/keys.
config.json shape
{
"caveman": { "enabled": true, "mode": "full" },
"rtk": { "enabled": true },
"router": { "enabled": false },
"graphify": { "enabled": true },
"taskmaster": { "enabled": true },
"mcp": { "filesystem": true, "context7": true, "cocoindex": true },
"memory": { "enabled": true, "graph": true, "intensity": "aggressive" },
"agents": { "claude": true, "copilot": false, "codex": false },
"claude": { "auth": "apikey" },
"vcs": { "system": "git" },
"remote": { "type": "github", "baseUrl": "https://github.com",
"api": "github-api", "tokenEnv": "GITHUB_TOKEN", "mcp": "github" },
"gitkraken":{ "enabled": false },
"codexsaver":{ "enabled": false, "provider": "deepseek", "apiKeyEnv": "DEEPSEEK_API_KEY" },
"sync": { "askOnClose": true, "pullOnStart": true },
"ollama": { "enabled": false, "url": "http://localhost:11434", "models": [] },
"teamPrefs":{ "enabled": false, "codeStyle": "google" },
"project": { "aim": "…", "architecture": "…" },
"dev": { "os": "windows", "ide": "vscode" },
"git": { "model": "gitflow", "strict": true, "prOnly": true,
"autoRelease": true, "versionStrategy": "semver", "releaseTags": true, "chore": true }
}
Adding your own MCP servers
aiflow generates .mcp.json from the config, but you can add any extra MCP server — your edits to
servers aiflow doesn’t manage are preserved on re-render:
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": ["-y", "@scope/my-mcp-server"],
"env": { "MY_TOKEN": "${MY_TOKEN}" } // secrets via .env, never inline
}
}
}
Then allow it in .claude/settings.json under permissions.allow (e.g. "mcp__my-server") and put
any secret in .env. For community-vetted servers, browse npx claude-code-templates@latest.
Tip: prefer a focused MCP over a broad one — fewer tools = less context and fewer wrong turns.
Tools are global, configuration is per-project
- Tools / binaries — installed once per user (
npm -g,uv tool, brew/winget); shared across projects.aiflow install-depsputs them there; the router config lives in your home dir. - Configuration & secrets — per project:
.env,.aiflow/config.json,AGENTS.md,.mcp.json,.claude/,.githooks/, memory. Switching projects switches config; nothing leaks between them.