Configuration
Configuration options and environment variables
Configuration#
Learn how to configure doyaken for your project and customize its behavior.
Environment Variables#
doyaken uses environment variables for configuration. Create a .env file in your project root:
# AI Provider Keys (at least one required)
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
# Model Configuration
DOYAKEN_MODEL=claude-sonnet-4
# Worker Settings
DOYAKEN_WORKERS=2
AI Provider Keys#
| Variable | Provider | Models |
| ------------------- | --------- | ---------------------------------------- |
| ANTHROPIC_API_KEY | Anthropic | Claude Sonnet, Claude Opus, Claude Haiku |
| OPENAI_API_KEY | OpenAI | GPT-4, GPT-4 Turbo, GPT-3.5 |
Model Selection#
Set the default model with DOYAKEN_MODEL:
# Anthropic models
DOYAKEN_MODEL=claude-sonnet-4
DOYAKEN_MODEL=claude-opus-4
DOYAKEN_MODEL=claude-haiku-3
# OpenAI models
DOYAKEN_MODEL=gpt-4
DOYAKEN_MODEL=gpt-4-turbo
Manifest File#
Create a manifest.yaml in your project root for advanced configuration:
# manifest.yaml
name: my-project
version: 1.0.0
# Default model for this project
model: claude-sonnet-4
# Number of parallel workers
workers: 2
# Custom skills directory
skills_dir: .doyaken/skills
# Hooks configuration
hooks:
pre_commit:
- pnpm lint
- pnpm test
post_implement:
- pnpm build
Manifest Options#
| Option | Type | Description |
| ------------ | ------ | ------------------------ |
| name | string | Project name |
| version | string | Project version |
| model | string | Default AI model |
| workers | number | Default parallel workers |
| skills_dir | string | Custom skills directory |
| hooks | object | Lifecycle hooks |
Skills Configuration#
Skills are specialized commands. Configure custom skills in your manifest:
# manifest.yaml
skills:
deploy:
description: "Deploy to production"
command: "./scripts/deploy.sh"
seed-db:
description: "Seed development database"
command: "pnpm db:seed"
Then use them in doyaken:
doyaken > /deploy
doyaken > /seed-db
Hooks#
Hooks run at specific points in the workflow:
| Hook | Trigger |
| ---------------- | ---------------------- |
| pre_plan | Before creating a plan |
| post_plan | After plan is created |
| pre_implement | Before implementation |
| post_implement | After implementation |
| pre_commit | Before git commit |
| post_commit | After git commit |
Hook Example#
hooks:
pre_commit:
- pnpm lint --fix
- pnpm test
post_implement:
- pnpm build
- pnpm test:e2e
Agent Configuration#
Configure which AI agents to use for different tasks:
# manifest.yaml
agents:
planning: claude-opus-4
implementation: claude-sonnet-4
review: claude-sonnet-4
testing: claude-haiku-3
Available Agents#
| Agent | Purpose | Recommended Model |
| --------- | ------------------ | ----------------- |
| claude | General purpose | Sonnet/Opus |
| cursor | Code completion | - |
| codex | Code generation | GPT-4 |
| gemini | Multi-modal tasks | - |
| copilot | Inline suggestions | - |
Model Costs
Different models have different costs and capabilities. Use faster, cheaper models (Haiku, GPT-3.5) for simple tasks and more capable models (Opus, GPT-4) for complex planning.
Project Structure#
doyaken creates a .doyaken directory in your project:
.doyaken/
├── tasks/ # Task definitions
│ ├── 1.todo/ # Pending tasks
│ ├── 2.doing/ # In-progress tasks
│ └── 3.done/ # Completed tasks
├── skills/ # Custom skills
├── logs/ # Execution logs
└── state/ # Session state
Ignoring Files#
Add .doyaken to your .gitignore if you don't want to track task state:
# .gitignore
.doyaken/logs/
.doyaken/state/
API Key Security
Never commit your .env file to version control. Add it to .gitignore to
prevent accidental exposure of API keys.