Termix supports four CLI coding agents out of the box, plus any custom CLI tool you want to add.
How It Works
Each agent runs in its own real terminal (PTY). Termix doesn’t modify the agent, inject middleware, or intercept your commands. The agent thinks it’s running in a normal terminal.
The intelligence comes from telemetry — lightweight signals the agent already emits (or can be configured to emit). Termix receives these signals locally and uses them to show you:
| What Termix Shows | How It Knows |
|---|
| Working / idle status | I/O rate heuristics + telemetry events |
| Last message preview | Reads terminal output buffer (output markers per agent) |
| Session ID for resume | Captured from telemetry logs or plugin events |
| Notifications | Detects working-to-idle transitions |
Termix never reads what you type to the agent or what the agent writes back to you through telemetry. Status detection uses I/O byte rates and burst timing — not content analysis.
Supported Agents
| Agent | Telemetry Method | Auto-Setup | Resume |
|---|
| Claude Code | OTLP (built-in) | Automatic | claude --resume |
| Codex | OTLP (config file) | One-click | codex resume |
| Gemini CLI | OTLP (config file) | One-click | gemini --resume |
| OpenCode | Plugin bridge | Manual (one-time) | opencode --session |
Telemetry Methods
OTLP (OpenTelemetry) — Claude Code, Codex, and Gemini CLI emit OpenTelemetry logs over HTTP. Termix runs a local OTLP receiver at POST /v1/logs on port 4000. When you launch an agent from Termix, it sets the right environment variables so the agent sends its logs to Termix.
Plugin bridge — OpenCode uses a JavaScript plugin that sends events to Termix over HTTP. This provides the same status and preview information as OTLP, just through a different mechanism.
Working / Idle Detection
Termix uses I/O heuristics to determine if an agent is working or idle:
- Output rate — How many bytes the agent is writing per second
- Burst tracking — How long the current burst of output has been going (resets after 2 seconds of silence)
- Input rate — Whether the user is actively typing
This is intentionally separate from telemetry. Telemetry captures session IDs and confirms connectivity. The stats-based heuristics are the source of truth for working/idle — they’re faster and more reliable than waiting for telemetry events.
The exception is OpenCode, which sends explicit busy/idle status events through its plugin bridge.
Adding More Agents
You can add any CLI tool as a session type. See Custom Agents for how to configure your own.