Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.clideck.dev/llms.txt

Use this file to discover all available pages before exploring further.

CliDeck 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). CliDeck 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). CliDeck receives these signals locally and uses them to show you:
What CliDeck ShowsHow It Knows
Working / idle statusTelemetry events (Claude, Codex, Gemini) or I/O heuristics (Shell, custom agents)
Last message previewReads terminal output buffer (output markers per agent)
Session ID for resumeCaptured from telemetry logs or plugin events
NotificationsDetects working-to-idle transitions
CliDeck never reads what you type or what the agent writes back through telemetry. It sees event timing — not content.

Supported Agents

AgentTelemetry MethodAuto-SetupResume
Claude CodeHooks + OTLPOne-clickclaude --resume
CodexOTLP (config file)One-clickcodex resume
Gemini CLIOTLP (config file)One-clickgemini --resume
OpenCodePlugin bridgeOne-clickopencode --session

Telemetry Methods

OTLP (OpenTelemetry) — Claude Code, Codex, and Gemini CLI emit OpenTelemetry logs over HTTP. CliDeck runs a local OTLP receiver at POST /v1/logs on port 4000. When you launch an agent from CliDeck, it sets the right environment variables so the agent sends its logs to CliDeck. Plugin bridge — OpenCode uses a JavaScript plugin that sends events to CliDeck over HTTP. This provides the same status and preview information as OTLP, just through a different mechanism.

Working / Idle Detection

For Claude Code, Codex, and Gemini CLI, status is fully telemetry-driven. CliDeck reads the timing of telemetry events to know exactly when the agent starts processing and when it finishes — no guessing from terminal output.
AgentHow status works
Claude Codeapi_request event → idle (confirmed after 1 second of output silence). Other events → working.
Codexcodex.sse_event → idle. Other events → working.
Gemini CLIapi_response (main role) → idle. api_request / model_routing → working.
OpenCodeExplicit busy/idle status events through its plugin bridge.
Shell / custom agentsI/O heuristics — byte rates and burst timing. Working means output is flowing; idle means 2+ seconds of silence.
Telemetry-driven status is faster and more reliable than I/O heuristics. It reflects what the agent is actually doing, not just whether text is appearing on screen.

Adding More Agents

You can add any CLI tool as a session type. See Custom Agents for how to configure your own.