ALPHA v0.1.0 · MIT licensed · testers welcome

Your agents,together.

Monitter is an open-source workspace for running, watching, and coordinating AI coding agents. Bring the CLI harnesses you already use, keep every conversation in view, and run agents on this machine or another one over SSH.

git clone https://github.com/soyrex/monitter.git
DEMOlocal sample workspace
CXDraft pickers & keyboardlocal
Turn · 22 tools: git status --short --branch
Codex8:03 pm
Main is clean. Three UI changes are still in separate worktrees. The font work needs the remote host's font list, so I'll hand that part to Mona.
→ DELEGATED TO MONA"Expose host font families to remote clients" · holt-mini
Turn · 4 tools: npm run check
CLResource metrics testslocal
You8:06 pm
Run the resource-modal test on main and check the peer's files are untouched.
Turn · 12 tools: git merge --ff-only 161336a
Claude Code8:07 pm
Fast-forwarded main to 161336a. The resource-modal test passes and the DraftPicker files are still uncommitted.
MAccept fonts from the hostssh · holt-mini
← LINKED TASK FROM CODEXResults return to "Draft pickers & keyboard"
Mona8:08 pm
Font selectors now load host font families through a native list_system_fonts command. Manual entry stays as the fallback.
Thinking12s
Interactive preview · sample data onlyOpen tabs · drag between panes · drop at an edge to split · columns auto-balance

Uses the harnesses
you already have.

Monitter drives each CLI through its native sessions and sign-in. It never swaps in its own model API. Native adapters cover four harnesses, and the Agent Client Protocol connects the rest.

CX
CodexNative
CL
Claude CodeNative
OC
OpenCodeNative
HE
HermesNative
GE
GeminiACP
+
Any ACP agentLocal or SSH
Cross-agent collaboration

Agents that hand work to each other.

Supported agents can discover peers, exchange messages, and delegate linked tasks. The receiving agent runs on its own harness and host, and its result lands back in the conversation that asked.

Origin · localCodexUX & Frontend
Peer · ssh holt-miniMonaACP harness
  • Subagents stay visible. Active and recent subagents get their own panel with a timeline and approvals.
  • Each agent keeps its own authority. A delegated task uses the receiving harness's permissions, never the sender's.
A Codex conversation coordinating four subagents, with a Subagents panel listing two active and thirteen recent tasks
Real screenshot · Codex coordinating subagents, 2 active and 13 recent
A workspace for more than one agent

Everything in view. Nothing hidden in a terminal tab.

Panes and project workspaces

Keep conversations side by side, balance or expand the pane that needs you, and group chats by project. One project can span several agents and machines.

Full keyboard control

The searchable Controls palette reaches layouts, new chats, terminals, agent creation, and settings without the mouse.

⌘PControls ⌘KJump to chat, agent, project ↑↓↵Navigate

Provider usage rings

Reported allowances and reset windows for Codex, Claude, MiniMax, and OpenCode Go. Stale or missing readings are marked as such.

20
Codexresets 5d 4h
2
Claudeweek 2%
14
MiniMaxstale
5
OpenCode Goweek 5%

Readable activity

Tool calls, reasoning summaries, approvals, and errors fold into each turn. Scroll back to read while new output waits for you.

Turn · 22 tools: git status
Thinking · 2 tools finished
Approval · write src/lib

Phones as controllers

Pair Android or iOS to read, reply, and stop work. Execution stays on the desktop.

Share a chat

Invite guests by approval. They join by name, and the eye shows everyone watching.

JSRKAL
3 observers

Git and terminals

Check the branch and changes, see tracked processes, and open a terminal in the chat's working folder.

main · 22 ahead of origin/main
Runtime collector

A garbage disposal for idle CLI processes.

Persistent agents shouldn't mean a growing pile of idle processes. After five minutes of inactivity, Monitter retires eligible local harnesses and keeps the conversation and native session. Your next message resumes it.

  • Conservative by design. Active work, queued messages, pending approvals, and uncertain background jobs keep a runtime alive.
  • Only its own processes. The collector targets processes Monitter started. SSH runtimes are retained.
  • CPU and RAM in the sidebar. See Monitter and each harness it owns, with history and per-process detail on macOS.
Owned runtimes · example20:14:05
Codex app-serverDraft pickers & keyboard
active
Working
Claude stream-jsonResource metrics tests
idle 3:20
Idle
ACP · OpenCodeACP catalog cleanup
idle 7:00 · kept
Approval
Codex app-serverSSH merge review
session kept
Retired
ACP · Monassh holt-mini
remote
Retained
Remote hosts

Your agents can live on another machine.

Configure a host, a working folder, and a harness executable, then work with that agent from the same workspace. Monitter uses your system SSH config, keys, and host-key checks, and the harness keeps the remote machine's own session and credentials.

~/.ssh/config
Host holt-mini
  HostName 10.0.4.12
  User dev
  IdentityFile ~/.ssh/id_ed25519

# Monitter → Settings → Agents → New host
host      holt-mini
folder    ~/code/monitter
harness   opencode acp
status    ● connected · native session resumed
Platform status

Built on a Mac. Open to everywhere else.

macOS is the main development platform. Windows and Linux builds have not been tried yet, so if you run either, a build report is one of the most useful contributions you can make.

PlatformStatusNotes
macOSRunningMain desktop platform. Native resource monitoring is macOS-only today.
iOSRunningPaired controller. Agents run on the desktop.
AndroidRunningPaired controller. Agents run on the desktop.
WindowsUntestedBuild and compatibility reports welcome.
LinuxUntestedBuild and compatibility reports welcome.
Build and try it

Run it from source.

You'll need Node, Rust, and the Tauri build dependencies for your OS. On macOS that includes the Xcode command-line tools. Agents need at least one harness installed and signed in.

Tauri 2RustSvelte 5TypeScriptMIT
zsh · monitter
git clone https://github.com/soyrex/monitter.git
cd monitter
npm ci
npm run tauri dev