Skip to content

Configuration Reference

Create a .env file in the project root:

VariableRequiredDescription
ANTHROPIC_API_KEYYesAnthropic API key for Claude
GITHUB_TOKENNoGitHub token for private repositories
VariableRequiredDescription
TELEGRAM_BOT_TOKENFor TelegramBot token from @BotFather
PORTNoREST API port (default: 3000)
VariableDefaultDescription
DAILY_BUDGET_LIMITunlimitedMax daily API cost in USD
MONTHLY_BUDGET_LIMITunlimitedMax monthly API cost in USD
VariableDefaultDescription
LOG_LEVELinfoLogging level: debug, info, warn, error

Agents are configured via YAML files in config/.

# Required fields
name: string # Unique identifier
description: string # Used for routing decisions
# Model configuration
model:
provider: anthropic # LLM provider
name: string # Model ID (e.g., claude-sonnet-4-20250514)
temperature: number # 0-1, default 0.7
max_tokens: number # Max response tokens, default 4096
# Agent behavior
system_prompt: string # Instructions for the agent
# Capabilities
tools: # List of enabled tool names
- calculator
- datetime
name: personal-assistant
description: General-purpose assistant for everyday tasks
model:
provider: anthropic
name: claude-sonnet-4-20250514
temperature: 0.7
max_tokens: 4096
system_prompt: |
You are a helpful personal assistant. Be concise and helpful.
Use tools when they would help answer the user's question.
Be friendly but professional.
tools:
- calculator
- datetime
name: coder
description: Programming and code execution via Claude Code
model:
provider: anthropic
name: claude-sonnet-4-20250514
temperature: 0.3
max_tokens: 8192
system_prompt: |
You are a coding assistant. Help users with programming tasks.
Use the claude_code tool to read files, write code, and run commands.
Always explain what you're doing before executing code.
tools:
- claude_code
- current_project
- list_projects
- switch_project
- clone_project
name: orchestrator
description: Routes requests to specialized agents
model:
provider: anthropic
name: claude-sonnet-4-20250514
temperature: 0.3
max_tokens: 1024
system_prompt: |
You are an orchestrator. Analyze user requests and route them
to the most appropriate specialized agent.
Available agents will be provided in the context.
Respond with the agent name that should handle the request.
tools:
- list_agents

Model IDDescription
claude-sonnet-4-20250514Fast, capable
claude-opus-4-20250514Most capable
claude-haiku-3-20240307Fastest, cheapest
ValueUse Case
0.0-0.3Factual, consistent responses
0.4-0.6Balanced creativity
0.7-1.0Creative, varied responses

ToolDescription
calculatorMath expression evaluation
datetimeCurrent time with timezone
clone_projectClone git repository
switch_projectChange active project
list_projectsList cloned projects
current_projectShow active project
claude_codeExecute coding tasks
create_agentCreate dynamic agent
update_agentModify agent config
list_agentsList all agents
get_agentGet agent details
delete_agentRemove dynamic agent

Only enable tools an agent needs:

# General assistant
tools:
- calculator
- datetime
# Coder
tools:
- claude_code
- current_project
- switch_project
# Agent manager
tools:
- create_agent
- update_agent
- list_agents
- delete_agent

maestro/
├── config/ # Agent YAML files
│ ├── orchestrator.yaml
│ ├── personal-assistant.yaml
│ └── coder-agent.yaml
├── data/ # SQLite database (auto-created)
│ └── maestro.db
├── logs/ # Log files (auto-created)
├── projects/ # Cloned repositories (auto-created)
├── .env # Environment configuration
└── docker-compose.yml

All data directories (data/, logs/, projects/) are gitignored.