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.