config.yaml
Rama main · réplica de lectura del repositorio original.
# CianaParrot Configuration
agent:
workspace: "./workspace"
data_dir: "./data"
max_tool_iterations: 42
provider:
name: "anthropic" # anthropic | openai | openrouter | ollama | vllm | groq | google-genai
model: "claude-sonnet-4-6"
api_key: "${ANTHROPIC_API_KEY}"
temperature: 0
max_tokens: 8192
# For OpenRouter/vLLM:
# base_url: "https://openrouter.ai/api/v1"
# For Ollama:
# base_url: "http://localhost:11434"
# Model router — multi-tier LLM support with in-chat model switching.
# When enabled, wraps the agent in a RoutingChatModel that switches between
# tier models via the switch_model tool. Scheduled tasks can specify a
# model_tier to run on a specific tier with full tools/memory.
# Override in config.local.yaml (gitignored) to activate with your models.
# model_router:
# enabled: true
# default_tier: "standard" # Tier used by default (must exist in tiers)
# tiers:
# lite:
# name: "openai"
# model: "gpt-4o-mini"
# api_key: "${OPENAI_API_KEY}"
# standard:
# name: "openai"
# model: "gpt-4o"
# api_key: "${OPENAI_API_KEY}"
# advanced:
# name: "anthropic"
# model: "claude-sonnet-4-6"
# api_key: "${ANTHROPIC_API_KEY}"
# expert:
# name: "anthropic"
# model: "claude-opus-4-6"
# api_key: "${ANTHROPIC_API_KEY}"
channels:
telegram:
enabled: true
token: "${TELEGRAM_BOT_TOKEN}"
trigger: "@Ciana"
allowed_users: [] # Empty = allow all
scheduler:
enabled: true
poll_interval: 60 # Seconds between task checks
data_file: "./data/scheduled_tasks.json"
mcp_servers: {}
# filesystem:
# transport: "stdio"
# command: "npx"
# args: ["-y", "@modelcontextprotocol/server-filesystem", "/data"]
skills:
directory: "skills" # Virtual path relative to workspace
enabled: true
web:
brave_api_key: "${BRAVE_API_KEY}" # Optional, falls back to DuckDuckGo
fetch_timeout: 42
transcription:
enabled: true
provider: "openai"
model: "whisper-1"
api_key: "${OPENAI_API_KEY}"
timeout: 30
gateway:
enabled: true
url: "http://host.docker.internal:9842"
token: "${GATEWAY_TOKEN}"
port: 9842
default_timeout: 30
bridges:
claude-code:
allowed_commands: ["claude"]
allowed_cwd: ["~/Documents", "~/Projects"]
apple-reminders:
allowed_commands: ["remindctl"]
things:
allowed_commands: ["things"]
spotify:
allowed_commands: ["spogo"]
sonos:
allowed_commands: ["sonos"]
imessage:
allowed_commands: ["imsg"]
bear-notes:
allowed_commands: ["grizzly"]
obsidian:
allowed_commands: ["obsidian-cli"]
openhue:
allowed_commands: ["openhue"]
camsnap:
allowed_commands: ["camsnap"]
peekaboo:
allowed_commands: ["peekaboo"]
blucli:
allowed_commands: ["blu"]
whatsapp:
allowed_commands: ["wacli", "wacli-daemon"]
1password:
allowed_commands: ["op"]
claude_code:
enabled: true
bridge_url: "http://host.docker.internal:9842" # Host gateway for Claude Code execution
bridge_token: "${CC_BRIDGE_TOKEN}" # Auth token (must match gateway)
projects_dir: "/app/.claude-projects" # Mounted read-only from host ~/.claude/projects
permission_mode: "bypassPermissions" # Auto-approve (non-interactive -p mode)
timeout: 0 # 0 = no timeout (wait indefinitely)
# claude_path: "claude" # Path to claude binary (local mode only)
logging:
level: "INFO" # DEBUG | INFO | WARNING | ERROR