Referencia completa de config.toml. Todas las secciones y sus valores por defecto.
[provider]
Key
Type
Default
Description
kind
string
"google_genai"
Tipo de proveedor: google_genai, openai_compatible o anthropic
api_key
string
—
Clave API del proveedor (requerida)
gateway_token
string
null
Token opcional de Cloudflare AI Gateway usado como cf-aig-authorization
base_url
string
—
URL base de la API (requerida para openai_compatible, no se usa para proveedores nativos)
[provider.models]
Key
Type
Default
Description
primary
string
(provider default)
Modelo por defecto para consultas generales
fast
string
(same as primary)
Modelo para consultas simples/rapidas
smart
string
(same as primary)
Modelo para tareas de razonamiento complejo
Valores por Defecto de Modelos
Valores por defecto segun el proveedor: google_genai → primary=gemini-3-flash-preview, fast=gemini-2.5-flash-lite, smart=gemini-3-pro-preview. openai_compatible → todos los niveles por defecto a openai/gpt-5-mini. anthropic → todos los niveles por defecto a claude-sonnet-4-5. Cuando los tres niveles se resuelven al mismo modelo, el enrutamiento automatico se desactiva. Ver Enrutamiento de Modelos.
[telegram]
Key
Type
Default
Description
bot_token
string
—
Token del bot de Telegram de @BotFather (requerido)
allowed_user_ids
array
[]
IDs numericos de usuarios de Telegram permitidos para chatear. Vacio = sin restriccion.
[slack]
Requiere el feature flag slack en tiempo de compilacion. Ver Slack para la guia completa de configuracion.
Key
Type
Default
Description
enabled
bool
false
Habilitar el canal de Slack
app_token
string
—
Token de nivel de aplicacion de Slack para Socket Mode (xapp-...)
bot_token
string
—
Token de bot de Slack para Web API (xoxb-...)
allowed_user_ids
array
[]
IDs de usuarios de Slack permitidos para interactuar. Vacio = sin restriccion.
use_threads
bool
true
Responder en hilos por defecto
[discord]
Requiere el feature flag discord en tiempo de compilacion. Ver Discord para la guia completa de configuracion.
Key
Type
Default
Description
bot_token
string
—
Token del bot de Discord del Portal de Desarrolladores
allowed_user_ids
array
[]
IDs de usuarios de Discord permitidos para interactuar. Vacio = sin restriccion.
guild_id
integer
null
ID opcional de guild/servidor para restringir el bot a un solo servidor
[state]
Key
Type
Default
Description
db_path
string
"aidaemon.db"
Ruta al archivo de base de datos SQLite
working_memory_cap
integer
50
Maximo de mensajes por sesion mantenidos en memoria
consolidation_interval_hours
integer
6
Horas entre ejecuciones de consolidacion de memoria
max_facts
integer
100
Numero maximo de hechos inyectados en el prompt del sistema
daily_token_budget
integer
null
Maximo de tokens totales (entrada+salida) por dia. Null = ilimitado. Se reinicia a medianoche UTC.
encryption_key
string
null
Clave de cifrado SQLCipher (requiere la caracteristica encryption). AES-256 en reposo.
[terminal]
Key
Type
Default
Description
allowed_prefixes
array
(see below)
Prefijos de comandos aprobados automaticamente sin confirmacion del usuario
initial_timeout_secs
integer
30
Tiempo de espera en segundos para la ejecucion inicial del comando
max_output_chars
integer
4000
Truncar la salida del comando mas alla de esta longitud
permission_mode
string
"default"
Modo de permisos de riesgo: default, cautious o yolo. Ver Riesgo de Comandos.
Los comandos que contienen ;|&&||$() o backticks siempre requieren aprobacion, incluso si el prefijo esta en la lista blanca.
[daemon]
Key
Type
Default
Description
health_port
integer
8080
Puerto para el endpoint HTTP de verificacion de salud
health_bind
string
"127.0.0.1"
Direccion de enlace. Usa "0.0.0.0" para acceso externo.
[triggers.email]
Key
Type
Default
Description
host
string
—
Nombre del host del servidor IMAP (ej., imap.gmail.com)
port
integer
—
Puerto IMAP (tipicamente 993 para TLS)
username
string
—
Nombre de usuario de la cuenta de email
password
string
—
Contrasena de la cuenta de email o contrasena especifica de aplicacion
folder
string
"INBOX"
Carpeta IMAP a monitorear
[mcp.<name>]
Key
Type
Default
Description
command
string
—
Ruta o nombre del ejecutable para el servidor MCP
args
array
[]
Argumentos de linea de comandos
[browser]
Key
Type
Default
Description
enabled
bool
false
Habilitar herramienta de automatizacion del navegador
headless
bool
true
Ejecutar Chrome sin ventana visible
screenshot_width
integer
1280
Ancho del viewport del navegador en pixeles
screenshot_height
integer
720
Altura del viewport del navegador en pixeles
user_data_dir
string
~/.aidaemon/chrome-profile
Directorio de perfil de Chrome para sesiones persistentes
profile
string
Default
Nombre del perfil de Chrome dentro de user_data_dir
remote_debugging_port
integer
null
Conectarse a Chrome existente en este puerto (avanzado)
[skills]
Key
Type
Default
Description
dir
string
"skills"
Directorio que contiene archivos markdown de skills
enabled
bool
true
Habilitar el sistema de skills
registries
array
[]
URLs de manifiestos JSON de registros de skills para explorar/instalar skills
[subagents]
Key
Type
Default
Description
enabled
bool
true
Permitir al agente crear sub-agentes
max_depth
integer
3
Nivel maximo de anidamiento para recursion de sub-agentes
max_iterations
integer
10
Maximo de pasos del bucle agentico por invocacion de sub-agente
max_response_chars
integer
8000
Truncar respuestas de sub-agentes mas alla de esta longitud
timeout_secs
integer
300
Tiempo de espera de ejecucion de sub-agentes en segundos
[cli_agents]
Key
Type
Default
Description
enabled
bool
false
Habilitar herramienta de delegacion a agentes CLI
timeout_secs
integer
600
Tiempo de espera global para ejecucion de agentes CLI
max_output_chars
integer
16000
Longitud maxima global de salida de agentes CLI
[cli_agents.tools.<name>]
Key
Type
Default
Description
command
string
—
Comando a ejecutar
args
array
[]
Argumentos por defecto pasados al comando
description
string
—
Descripcion de la herramienta mostrada al LLM
timeout_secs
integer
null
Sobrescribir tiempo de espera global para esta herramienta
max_output_chars
integer
null
Sobrescribir salida maxima global para esta herramienta
[search]
Key
Type
Default
Description
backend
string
"duckduckgo"
Backend de busqueda: duckduckgo (sin clave necesaria) o brave
api_key
string
""
Clave API para busqueda Brave (soporta "keychain")
[scheduler]
Key
Type
Default
Description
enabled
bool
true
Habilitar el sistema de tareas programadas
tick_interval_secs
integer
30
Con que frecuencia el programador verifica tareas pendientes
[[scheduler.tasks]]
Tareas programadas predefinidas cargadas desde la configuracion al inicio:
Key
Type
Default
Description
name
string
—
Etiqueta legible de la tarea
schedule
string
—
Lenguaje natural o expresion cron (ver Programador)
prompt
string
—
Lo que el agente debe hacer cuando se dispara la tarea
oneshot
bool
false
Disparar una vez y luego auto-eliminar
trusted
bool
false
Ejecutar con autonomia total (sin aprobacion de terminal necesaria)
[files]
Key
Type
Default
Description
enabled
bool
true
Habilitar herramientas de transferencia de archivos (enviar/recibir)
inbox_dir
string
"~/.aidaemon/files/inbox"
Directorio para archivos recibidos desde Telegram
outbox_dirs
array
["~"]
Directorios desde los cuales el agente puede enviar archivos
max_file_size_mb
integer
10
Tamano maximo de archivo para transferencias en MB
retention_hours
integer
24
Horas de retencion de archivos recibidos antes de la limpieza
Gestion de Secretos
Los valores sensibles de configuracion soportan dos metodos de resolucion ademas de texto plano, mas un modo opcional solo-entorno:
Llavero del SO
Establece cualquier campo secreto a "keychain" para resolverlo desde el llavero del SO (macOS Keychain, Linux secret-service):
toml
[provider]
api_key = "keychain" # Resolved from keychain entry "api_key"
[telegram]
bot_token = "keychain" # Resolved from keychain entry "bot_token"
Almacena los valores con el comando CLI keychain antes de la primera ejecucion:
bash
# Store a secret (prompts interactively)
aidaemon keychain set api_key
aidaemon keychain set bot_token
# Verify a stored secret (shows masked value)
aidaemon keychain get api_key
# Remove a secret
aidaemon keychain delete api_key
Seguridad
El comando set solicita el valor de forma interactiva con confirmacion, manteniendo los secretos fuera del historial de tu shell.
Variables de Entorno
Usa la sintaxis ${VAR_NAME} en cualquier lugar de los valores de configuracion:
Si prefieres no usar el llavero del SO, configura estas variables de entorno en tiempo de ejecucion:
bash
# Desactiva el almacenamiento en llavero del SO y usa secretos respaldados por archivo env
export AIDAEMON_NO_KEYCHAIN=1
# Opcional: elegir una ruta especifica para el archivo env (por defecto: ./.env)
export AIDAEMON_ENV_FILE=/ruta/absoluta/al/.env
En este modo, aidaemon lee secretos desde el archivo env seleccionado (o desde variables de entorno del proceso si no existe archivo env) y persiste las actualizaciones de secretos en ese archivo env — incluyendo la rotacion de tokens OAuth access/refresh.
Seguridad en modo solo-entorno
Manten el archivo env privado (chmod 600) y fuera del control de versiones.
Campos Compatibles con Keychain
Campos que soportan "keychain": provider.api_key, provider.gateway_token, telegram.bot_token, slack.app_token, slack.bot_token, discord.bot_token, triggers.email.password, state.encryption_key, search.api_key y campos de perfil http_auth.*.