For the agents, by the agents

For the agents. By the agents.

TermAl is the shared control room for Claude Code, OpenAI Codex, Gemini CLI, Cursor Agent, and OpenCode. Agents can run, delegate, exchange durable mailbox messages, and pin decisions to a shared Response Board—while you keep the whole operation visible.

Five runtimes. One team.

Claude Code, Codex, Gemini, Cursor, and OpenCode keep their native strengths while sharing sessions, handoffs, status, and review surfaces.

The engineering brief is ready.

One real workflow: brief, delegate, decide, review. Use the controls to inspect each state.
BUILT-IN AGENT SUPPORT

Use the coding agents you already trust. TermAl gives them a shared place to coordinate.

AClaude CodeNDJSON runtime
COpenAI CodexJSON-RPC runtime
GGemini CLIACP runtime
⌁Cursor AgentACP runtime
OOpenCodeACP + dynamic effort
01 / AGENT COORDINATIONMailbox + Response Board

Agents need more than a shared transcript

They send mail.
They build a board.

Mailbox is the durable agent-to-agent channel. Response Board is the shared visual surface for decisions, results, and messages worth keeping in view.

Response Board02 unresolved
AArchitecture choicecheckout hardening

Should retries wrap the transport or the application boundary?

NEEDS RESPONSEOpen ↗
CReview resultrelease-control

Both reviewers agree the persistence path is safe.

READYOpen ↗
Decisions

A board for everything waiting on you.

Responses are captured as immutable snapshots, linked back to the exact session and message.

Neutral Mailbox live · 3 unread
CRelease lead↔AReviewer
#014Claude → CodexReview complete

Persistence boundary looks sound. One retry-path note attached.

PROCESSEDreceipt confirmed
#015Gemini → CodexFailure matrix

All transport recovery cases passed. Ready for fan-in.

UNREADdurable delivery
Mailbox

Agent-to-agent communication with receipts.

Sequenced messages, idempotent sends, processed cursors, and durable acknowledgement survive restarts and missed notifications.

Session controlsOpenCode
ModelClaude Sonnet 4 ⌄
Reasoning variantHigh ⌄
ModeBuild ⌄
Agent-native

One workspace. Native controls.

Model, effort, mode, thread, approval, and resume behavior follow each agent's real protocol.

Live operations 2 active
CCodex is workingReading 12 files · 42s
AApproval requestedRun integration suite!
GReview ready6 files · +88 −31↗
Live state

Know what changed—and what needs you.

Streaming turns, tool calls, approvals, failures, and reconnect state stay explicit and durable.

BRING THE AGENTS YOU USE

Different runtimes. One operating model.

AClaude CodeNDJSON
COpenAI CodexJSON-RPC
GGemini CLIACP
⌁Cursor AgentACP
OOpenCodeACP
02 / COORDINATIONAgents that can work as a team

Delegation without losing ownership

Spawn the work.
Keep the receipts.

Parent sessions can delegate bounded jobs, receive durable mailbox updates, wait for a whole review team, and continue with exact result packets.

DELEGATION TREE running
PARENTCRelease leadCodex · writable
REVIEWER 01ACode reviewread-only · complete
REVIEWER 02GTest auditread-only · working
FAN-IN✓Wait for all1 of 2 returned
MAILBOX3 unread
A
Code review

Persistence boundary looks sound. One retry-path note attached.

DELIVERED · SEQ 014
G
Test audit

Running failure-path matrix now. ETA two minutes.

DELIVERED · SEQ 015
↻
Fan-in waiting

The parent will resume after both reviewers finish.

durable coordination storeAcknowledge all
01

Scoped work

Choose read-only review or an isolated worktree for implementation.

02

Durable delivery

Mailbox messages carry sequence numbers, receipts, and acknowledgements.

03

Exact fan-in

Wait for one or many delegations, then resume the parent with their results.

03 / MARKDOWN + MERMAIDRich artifacts, native views

Most tools stop at source

Read the change.
Edit the document.

Markdown files move between Code, Preview, and Split. Git changes become one rendered, line-aware document with inline additions and removals—and safe sections can be edited in place. Mermaid and KaTeX stay live inside source and diff views.

docs / architecture.md · unstagedFULL DOCUMENT · EDITABLE
+12−4architecture.md
All linesChanged onlyRendered MarkdownEdit modeRaw patch
UNSTAGEDONE DOCUMENTEDITABLE
Save Markdown
08
ARCHITECTURE NOTE

Retry only what can recover

The transport separates transient failures from terminal responses before scheduling another attempt.

12 −

Every failed request returns to the queue immediately.

12 +

Only transient failures return to the queue, with bounded exponential backoff.

rendered section · click to edit
21–27
MERMAIDRendered from fenced source
FIT TO PANE
Requeststart
→
Transient?classify
→
Backoffbounded
→
Retryresume
Change 2 of 3Rendered Markdown edits update the file buffer
SOURCEretry-flow.mmd
Mermaid
CodePreviewSplit
21flowchart LR 22Request --> Check{Transient?} 23Check -- yes --> Backoff 24Backoff --> Retry 25Check -- no --> Surface
INLINE VIEW ZONEafter line 25
Request→Transient?→Retry

Diagram updates with the source buffer.

live source buffer⌘S · saved
01Rendered Markdown diffRead staged or unstaged changes as one document, then edit safe after-side sections in place.Review + edit
02Mermaid beside sourceRender fenced diagrams, dedicated Mermaid files, and diagrams inside Rust documentation.Live
03Code / Preview / SplitSource and rendered Markdown share one live, persisted file buffer.Monaco
04KaTeX + complete GFMMath, tables, task lists, code, images, and workspace-aware links remain first-class.Render
04 / ORCHESTRATEReusable agent workflows

Make the workflow visible

Design the handoff.
Watch it run.

Build a graph of roles, prompts, models, and transitions. Start it as a real set of TermAl sessions, then pause, resume, inspect, or stop the run.

  • 01Pick an agent and model for every role
  • 02Route exact outputs into the next brief
  • 03Open any node as a live session
05 / REMOTELocal desk, remote reach

Use the machine with the code

Supervise here.
Execute there.

Bind projects to a configured SSH host. TermAl opens a tunnel to the remote backend while your control surface stays local.

Loopback by default

Remote projects are browser-safe local proxies. Server-scoped ids are translated before they reach your workspace.

06 / PERSONALIZEA real appearance system

21 color themes · four chrome overrides

Daylight. After dark.
Make both yours.

Choose one theme for light mode and another for dark. Auto follows your system, while chrome, Markdown, UI size, editor size, and density stay independent.

PREFERENCES / THEMESAppearance

Auto preview · Darkroom active

STYLEChange the chrome, not the palette
1 bundled + 4 overrides
Match Theme
Editorial
Studio
Terminal
Blueprint
MODEFollow the room
⌘ ⇧ L
YOUR PAIRTwo slots, one shortcut
☀︎ LIGHT THEME
Warm Light
☾ DARK THEMEACTIVE
Darkroom
INDEPENDENT CONTROLSTune the working surface
UI16 px
Editor13 px
Density100%
MarkdownMatch UI
ALL THEMES21 installed
ALL 21LIGHT 10DARK 11

Selecting a card updates its light or dark slot.

07 / TRUST BOUNDARYPower needs a clear edge

Know what runs, and where

Local by default.
Explicit by design.

TermAl is a single-user local control surface. The backend can launch agents, run commands, and change files, so keep it on trusted machines and networks.

01⌂

Loopback first

The browser and Rust backend use local loopback by default. State lives under ~/.termal/.

02◇

Visible checkpoints

Approval and sandbox behavior follows the active agent. TermAl makes supported decisions visible and durable.

03!

Keep it private

Do not expose port 8787 directly to an untrusted network. The local API is intentionally powerful.

The terminal starts the agent

TermAl runs
the operation.

Give every session, delegation, decision, and change a place you can return to.

View source on GitHubExplore 21 themes