Documentation

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.