~/.meepagateway/config.yaml. Specify a custom path with --config:
File format
The config is YAML. Top-level sections:providers
| Field | Type | Required | Description |
|---|---|---|---|
primary | string | yes | Name of the primary provider. Must match a key under providers.providers. |
fallback | list | no | Ordered list of fallback provider names tried when primary is unhealthy. |
health_check_interval | duration | yes | How often to poll provider health (e.g. 30s, 5m). |
providers.providers.<name>):
| Field | Type | Required | Description |
|---|---|---|---|
api_key_env | string | yes | Environment variable holding the API key. |
model | string | yes | Default model for this provider. |
base_url | string | no | Override the provider’s API base URL. Useful for proxies or OpenAI-compatible endpoints. |
max_tokens | integer | no | Maximum tokens per response. |
captain
| Field | Type | Default | Description |
|---|---|---|---|
enabled | bool | true | Enable the Captain Dashboard. |
bind | string | 127.0.0.1 | IP address to bind the dashboard listener. |
port | integer | 63372 | Port for the dashboard. |
exposure | string | local | How the dashboard is exposed. See below. |
password_hash | string | — | Argon2-hashed password. Set via setup wizard, not by hand. |
public_url | string | — | Public URL (for cloudflare_tunnel or reverse_proxy exposure). |
cloudflare_token | string | — | Cloudflare tunnel token (for cloudflare_tunnel exposure). |
| Value | Behavior |
|---|---|
local | Bind 127.0.0.1 — localhost only (default) |
lan | Bind 0.0.0.0 — local network |
tailscale_private | Bind 127.0.0.1, tailscale serve proxies |
cloudflare_tunnel | Bind 127.0.0.1, Cloudflare tunnel routes to captain port |
tailscale_funnel | Bind 0.0.0.0, Tailscale Funnel |
reverse_proxy | Bind 0.0.0.0, user-managed reverse proxy |
cron
| Field | Type | Default | Description |
|---|---|---|---|
enabled | bool | true | Enable the cron subsystem. |
max_concurrent_runs | integer | 3 | Maximum concurrent cron jobs across all agents. |
agents[].cron_jobs. See Cron.
agents
Each item in the agents list defines one agent. All configuration fields are set directly on the agent.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | Unique identifier. Used in API paths and logs. |
name | string | yes | Display name. |
default | bool | no | Mark as the default agent. Exactly one agent must be default. |
provider | string | no | LLM provider to use. Defaults to providers.primary. |
model | string | no | Model override for this agent. |
max_iterations | integer | no | Maximum agent loop iterations per message. Default: 10. |
max_tool_failures | integer | no | Maximum consecutive failures before the agent is nudged. Default: 3. |
~/.meepagateway/agents/{id}/. Files in the workspace (SOUL.md, MEMORY.md, USER.md, memory.db, skills/, .mcp.json) are not configured here.
file_access
Controls which paths the file tools can read or write.
| Field | Type | Default | Description |
|---|---|---|---|
unrestricted | bool | true | Allow access to all paths. When true, other fields are ignored. |
allow_read | list | [] | Paths the agent may read. |
allow_read_write | list | [] | Paths the agent may read and write. |
deny | list | [] | Paths explicitly blocked. Takes precedence over allow lists. |
allow_home_dotfiles | bool | false | Allow reading dotfiles in the home directory. |
allow_network | bool | true | Allow network access from tools. |
image_config
Configuration for the sandbox image used in container mode.
| Field | Type | Default | Description |
|---|---|---|---|
enabled | bool | false | Enable image-based sandboxing. |
base_image | string | — | OCI image to use as the sandbox base. |
packages | list | [] | Extra packages to install in the image. |
env_vars | map | {} | Environment variables to inject into the container. |
inject_credentials_env | bool | true | Inject provider credential env vars. |
inject_secrets_env | bool | true | Inject SOPS-managed secrets as env vars. |
redact_secrets | bool | true | Redact secret values from logs. |
container_mode
Runtime settings for the container execution environment.
| Field | Type | Default | Description |
|---|---|---|---|
enabled | bool | false | Run agent tools inside a container. |
image | string | '' | Override the container image (empty uses image_config.base_image). |
memory_limit | string | 512m | Memory limit for the container. |
timeout_seconds | integer | 300 | Maximum seconds a container run may take. |
network | string | bridge | Docker network mode. |
Connectors
Connectors are flat objects — all fields are directly on the connector, not nested under a type key.webhook: true on any connector to use the centralized webhook system instead of per-connector polling or WebSocket.
Cron jobs
Tool filtering
allow is an allowlist — only listed tools are available. deny removes specific tools. The two are mutually exclusive.
MCP servers
MCP servers are not configured in the main config file. Each agent has a.mcp.json file at ~/.meepagateway/agents/{id}/.mcp.json:
meepagateway agent mcp <id>
Environment variables
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY | API key for the Anthropic provider |
OPENAI_API_KEY | API key for the OpenAI provider |
MEEPA_URL | Default gateway URL for CLI management commands |
MEEPA_API_KEY | API key for CLI authentication |
RUST_LOG | Log level (e.g. info, debug, meepa_gateway=debug) |
api_key_env pointing to an environment variable.
