Configuration
Maestro uses environment variables for runtime settings and YAML files for agent configuration.
Environment Variables
Section titled “Environment Variables”Create a .env file in the project root:
cp .env.example .envRequired
Section titled “Required”| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Your Anthropic API key |
Optional
Section titled “Optional”| Variable | Default | Description |
|---|---|---|
TELEGRAM_BOT_TOKEN |
— | Telegram bot token from @BotFather |
GITHUB_TOKEN |
— | GitHub token for private repos |
PORT |
3000 |
REST API port |
LOG_LEVEL |
info |
Logging level (debug, info, warn, error) |
DAILY_BUDGET_LIMIT |
— | Maximum API cost per day in USD |
MONTHLY_BUDGET_LIMIT |
— | Maximum API cost per month in USD |
Budget Guardrails
Section titled “Budget Guardrails”Set spending limits to prevent runaway costs:
DAILY_BUDGET_LIMIT=10.00MONTHLY_BUDGET_LIMIT=100.00When limits are reached, Maestro will refuse new requests until the period resets.
Agent Configuration
Section titled “Agent Configuration”Static agents are defined in YAML files under config/:
name: personal-assistantdescription: 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.
tools: - calculator - datetimeAgent Fields
Section titled “Agent Fields”| Field | Required | Description |
|---|---|---|
name |
Yes | Unique identifier for the agent |
description |
Yes | What this agent does (used by orchestrator for routing) |
model.provider |
Yes | LLM provider (anthropic) |
model.name |
Yes | Model name (e.g., claude-sonnet-4-20250514) |
model.temperature |
No | Response randomness (0-1, default: 0.7) |
model.max_tokens |
No | Max response length (default: 4096) |
system_prompt |
Yes | Instructions for the agent |
tools |
No | List of tool names to enable |
Available Tools
Section titled “Available Tools”| Tool | Description |
|---|---|
calculator |
Evaluate math expressions |
datetime |
Get current time/date with timezone |
clone_project |
Clone a git repository |
switch_project |
Switch between projects |
list_projects |
List all cloned projects |
current_project |
Show active project |
claude_code |
Execute coding tasks |
create_agent |
Create dynamic agents |
update_agent |
Modify agent configuration |
list_agents |
List all agents |
delete_agent |
Remove dynamic agents |
GitHub Token Setup
Section titled “GitHub Token Setup”To clone private repositories:
- Go to github.com/settings/tokens
- Generate new token (classic)
- Select the
reposcope - Add to
.env:
GITHUB_TOKEN=ghp_xxxxxThis token works for all repositories you have access to, including organization repos.
Directory Structure
Section titled “Directory Structure”maestro/├── config/ # Agent YAML files├── data/ # SQLite database (auto-created)├── logs/ # Log files (auto-created)├── projects/ # Cloned repositories (auto-created)└── .env # Environment configurationAll data directories are gitignored by default.