Skip to content

Configuration

All configuration lives in ~/.aimux/config.yaml. Every setting is optional. Defaults are shown below.

providers:
claude:
enabled: true
codex:
enabled: true
gemini:
enabled: true
# Six orthogonal axes
runtime: "local" # WHERE: local | container
execution: "local" # WHERE tools run: local | hybrid
shell: "/bin/zsh" # WHICH: shell binary
session_manager: "tmux" # SESSION: tmux | direct
# terminal emulator: auto-detected (not configurable)
refresh_interval: "2s"
resume:
skip_permissions: false
sessions:
auto_title: false
title_model: "flash"
notifications:
enabled: true
on_waiting: true
on_error: true
on_idle: false
on_done: true
sound: false
bell: true
desktop: true
export:
endpoint: "localhost:5001"
insecure: true
mlflow:
experiment_id: "1"
otel:
enabled: false
port: 4318
quick_launch:
directories:
- "~/projects/my-app"
- "~/projects/my-lib"
tasks:
backend: "auto"
default_list: ""
prompt_template: "Work on the following task: {title}\n\nDetails: {notes}\n\nAdditional instructions: {user_prompt}\n\nWhen done, summarize what you did."
auto_archive_after: "1h"
badges:
- path: "package.json"
json_path: "$.version"
label: "v"
color: "#22C55E"
- path: "Cargo.toml"
json_path: ""
label: "rust"
color: "#F5921B"
runtimes:
devbox:
type: container
engine: podman
image: "ghcr.io/my-org/agent-sandbox:latest"
kubernetes:
enabled: false
redis_url: ""
team_id: ""
namespace: "agents"
kubeconfig: ""
otel_endpoint: ""

Enable or disable agent providers. Unknown providers default to enabled.

FieldTypeDefaultDescription
enabledbooltrueWhether to discover agents from this provider
binarystringauto-detectOverride the binary path for this provider

aimux has six orthogonal configuration axes:

ValueStatusDescription
localSupportedDefault. Agent runs as a process on your machine
containerSupportedAgent runs inside a Podman/Docker container
ValueStatusDescription
/bin/zshSupportedDefault if $SHELL is zsh
/bin/bashSupported
/bin/fishSupported
ValueStatusDescription
localSupportedDefault. Tools execute on the same machine as the agent
hybridPlannedAgent runs locally, tool calls forwarded to remote host (K8s pod or SSH)

Session Manager (HOW terminal sessions are managed)

Section titled “Session Manager (HOW terminal sessions are managed)”
ValueStatusDescription
tmuxSupportedDefault. Sessions persist after detach
directSupportedAgent runs in foreground, dies when terminal closes

Terminal Emulator (auto-detected, not configurable)

Section titled “Terminal Emulator (auto-detected, not configurable)”
EmulatorDetectionUsed for
iTerm2$TERM_PROGRAM == "iTerm.app"Jump-to-session via split pane
OthersFallbacktmux pane
FieldTypeDefaultDescription
refresh_intervalstring"2s"How often to scan for agents
runtimestring"local"WHERE: "local" or "container"
shellstring$SHELLWHICH shell for agent sessions. Falls back to $SHELL, then /bin/sh
executionstring"local"WHERE tools run: "local" or "hybrid"
session_managerstring"tmux"HOW terminal sessions are managed
FieldTypeDefaultDescription
skip_permissionsboolfalseAlways pass --dangerously-skip-permissions on resume
FieldTypeDefaultDescription
auto_titleboolfalseGenerate titles via LLM on session discovery
title_modelstring"flash"LLM for title generation: "flash", "haiku", "sonnet", "opus"
api_keystringenv varAPI key for title generation (overrides GOOGLE_API_KEY / ANTHROPIC_API_KEY)

macOS notification settings. All default to sensible values.

FieldTypeDefaultDescription
enabledbooltrueMaster switch for all notifications
on_waitingbooltrueNotify when agent needs permission
on_errorbooltrueNotify when agent crashes
on_idleboolfalseNotify when agent finishes a turn
on_donebooltrueNotify when agent finishes
soundboolfalsePlay macOS notification sound
bellbooltrueTerminal bell on attention events
desktopbooltruemacOS Notification Center alerts

OTEL/HTTP export settings for sending traces to MLflow, Jaeger, or any OTLP-compatible backend.

FieldTypeDefaultDescription
endpointstringOTLP/HTTP endpoint (e.g., "localhost:5001")
insecurebooltrueUse HTTP instead of HTTPS
headersmapExtra HTTP headers for the export endpoint
mlflow.experiment_idstringMLflow experiment ID for trace grouping

Embedded OTLP/HTTP receiver for collecting live telemetry from agents.

FieldTypeDefaultDescription
enabledboolfalseEnable the OTEL receiver
portint4318Port to listen on

Pre-configured directories for the agent launcher.

FieldTypeDefaultDescription
directorieslist[]Directories shown at the top of the launcher’s directory picker

Google Tasks integration for task-driven agent launches.

FieldTypeDefaultDescription
backendstring"auto"Task backend: "auto", "mcp", or "api"
mcp_endpointstringMCP server endpoint URL for tasks
default_liststringDefault task list ID
prompt_templatestringsee aboveTemplate for agent prompts. Placeholders: {title}, {notes}, {user_prompt}

Automatically archive idle sessions after a duration of inactivity.

FieldTypeDefaultDescription
auto_archive_afterstring"" (disabled)Idle duration before auto-archiving (e.g., "1h", "30m")

Project file badge rules. Badges extract values from project files and display them alongside session names.

badges:
- path: "package.json"
json_path: "$.version"
label: "v"
color: "#22C55E"
FieldTypeDefaultDescription
pathstringFile path relative to the project root
json_pathstringJSONPath expression to extract the badge value
labelstringPrefix label shown before the extracted value
colorstringHex color for the badge (e.g., "#22C55E")

Named runtime environments for launching agents in containers or sandboxed modes.

runtimes:
devbox:
type: container
engine: podman
image: "ghcr.io/my-org/agent-sandbox:latest"
FieldTypeDefaultDescription
typestringRuntime type: "local", "container", or "openshell"
enginestringContainer engine: "podman" or "docker" (container type only)
imagestringContainer image to use (container type only)
sandboxboolfalseEnable sandbox policy (openshell type only)

You can place a .aimux/config.yaml inside any project directory. Project-local settings override the global ~/.aimux/config.yaml for sessions running in that directory. This is useful for per-project badge rules, runtime overrides, or notification preferences.

See Kubernetes Quickstart for full setup guide.

FieldTypeDefaultDescription
enabledboolfalseEnable K8s agent discovery
redis_urlstringRedis connection string (required when enabled)
team_idstringRedis key prefix for team isolation
namespacestring"agents"K8s namespace for agent deployments
kubeconfigstringautoPath to kubeconfig (omit for in-cluster)
otel_endpointstringOTEL collector URL for remote agent traces

The web dashboard exposes a REST API on http://127.0.0.1:<port>. All endpoints return JSON.

MethodPathDescription
GET/api/agentsList active agents. Query params: filter, sort
POST/api/agents/launchLaunch a new agent session
POST/api/agents/{id}/killKill an agent by session ID or PID
POST/api/agents/{id}/archiveArchive an agent session
GET/api/agents/{id}/traceGet trace for an agent
GET/api/agents/{id}/diffGet file diffs for an agent session
MethodPathDescription
GET/api/historyList session history with metadata
GET/api/searchSearch session content
DELETE/api/sessions/{id}Delete a session
POST/api/sessions/{id}/annotateAdd an annotation to a session turn
GET/api/sessions/{id}/annotationsGet annotations for a session
POST/api/sessions/metaUpdate session metadata (tags, notes)
GET/api/sessions/metaGet session metadata
GET/api/sessions/diffsGet file diffs from a session file
POST/api/sessions/generate-titlesGenerate LLM titles for sessions
POST/api/sessions/{id}/export/jsonlExport session as JSONL
POST/api/sessions/{id}/export/otelExport session traces via OTEL
MethodPathDescription
GET/api/traceFast trace lookup
POST/api/trace/subscribe/{sessionId}Subscribe to live trace updates
POST/api/trace/unsubscribe/{sessionId}Unsubscribe from trace updates
MethodPathDescription
GET/api/costsCost breakdown by project
GET/api/healthBasic health check
GET/api/health/providersProvider health: enabled status and binary availability
MethodPathDescription
GET/api/teamsList team configurations from ~/.claude/teams/
MethodPathDescription
GET/api/pluginsList loaded plugins
GET/api/plugins/{name}/dataGet plugin data
POST/api/insightRun a plugin insight
MethodPathDescription
GET/api/tasks/listsList Google Tasks lists
GET/api/tasksList tasks
POST/api/tasks/{id}/completeMark a task as complete
POST/api/tasks/{id}/reopenReopen a completed task
MethodPathDescription
GET/api/directories/browseBrowse filesystem directories
GET/api/directories/recentList recently used directories
GET/api/quick-launchGet quick launch directory list
MethodPathDescription
GET/POST/api/terminal/{session}WebSocket terminal connection
GET/POST/api/terminal-resume/{id}Resume a terminal session
MethodPathDescription
GET/api/eventsServer-Sent Events stream for live updates