A control plane
for
running your code.

One dashboard to spawn, watch, and message between parallel AI coding agents — Claude Code, Codex, Gemini, Hermes, or any CLI — running in tmux on your own machine. Single Rust binary. Browseable from your phone.

Install $curl -fsSL agentum.dev/install.sh | sh
Binary size
≈ 14 MB
Cold start
< 80 ms
Backend
Rust · axum · tokio
License
MIT · self-hosted
https://127.0.0.1:8822 — agentum dashboard
⌘K palette
~/Developer/agentum / main / claude-code · opus-4.7
model · claude-opus-4-7 tmux · pane 0 live
Claude Code v2.1.128
Opus 4.7 (1M context) with xhigh effort · Claude Max
~/Developer/projects/agentum
 
> refactor the auth middleware to expire tokens after 30 days,
add a migration, and write a clippy-clean test for it.
 
I'll refactor the auth middleware. Let me start by reading the current implementation.
 
Read(crates/agentum-server/src/auth.rs)
⎿ Read 412 lines
Glob(crates/agentum-store/migrations/*.sql)
⎿ Found 6 files
 
Edit(crates/agentum-server/src/auth.rs)
- pub fn verify(token: &str) -> Result<UserId> {
+ pub fn verify(token: &str, now: DateTime<Utc>) -> Result<UserId> {
+ if session.expires_at < now { return Err(Expired); }
Write(migrations/0006_auth_session_expiry.sql)
⎿ Wrote 18 lines
Bash(cargo clippy --all-targets -- -D warnings)
⎿ Finished `dev` profile in 2.41s · 0 warnings
Bash(cargo test --all)
⎿ test auth::expired_token_rejected ... ok
test auth::valid_token_accepted ... ok
 
⚡ agentum watchdog · ctx 47% → /compact @ 14:22:01 · restored 84%
 
Done — 3 files changed, 1 migration added, 14 tests pass.
Shall I push to feat/session-expiry?
Try "how do I log an error?"
? for shortcuts
Why I built this

I was running five AI agents on my Mac. Then I closed the lid to go to the supermarket and they all died. So I moved them to an old PC with Arch Linux, piped everything through tmux and WireGuard, and wrote shell scripts to spawn agents remotely. It worked — but now I was babysitting twenty tmux panes instead of writing code. agentum started as a weekend hack to get my life back. One Rust binary that turns tmux into a real control plane, plus a self-hosted dashboard I can check from my phone. No subscriptions, no cloud lock-in — just my agents, still running when I get home.

Mateo — creator of agentum
01Why agentum

Built for people
who run agents in parallel.

Problem You run 5–6 AI coding agents in parallel — Claude Code, Codex, Gemini, Hermes — and the minute you leave your desk, you lose all visibility.

Friction So you move them to a VPS, wrap them in tmux, and now you're babysitting tmux instead of code: switching panes, checking what crashed, manually compacting context before it overflows. Five sessions in, it's a second job.

agentum A single Rust binary that turns tmux into a proper control plane — every agent visible, every pane one click away, from any device.

  • Browser dashboard + TUI.Every agent live, side-by-side. Drop into any pane in one click.
  • Embedded lazygit panel.See diffs, stage hunks, commit — without leaving the session.
  • Watchdog.Auto-detects crashes. Auto-compacts context before it overflows.
  • PWA on your phone.Close the lid. Keep watching every agent from anywhere.
02From shell to dashboard

Three commands
and you're running.

Every step is a single cargo install-friendly binary. No daemon to chase, no compose file, no Docker.

01 Install

One binary. Cargo or curl.

Pre-built tarballs for darwin-arm64, darwin-x86_64, linux-x86_64, and linux-aarch64 — verified against SHA256SUMS.

02 Spawn

Spin up an agent in any directory.

agentum new creates a tmux pane, attaches the right adapter (claude / codex / gemini / hermes / passthrough), and starts the watchdog.

03 Serve

Open the dashboard from a phone.

HTTPS on :8822 with a self-signed cert; trust-on-first-use over plain HTTP :8823 so your phone can pin it once.

~/Developer · zsh
copy·tmux pane 0
# 1 — install (Cargo)
$ cargo install --git https://github.com/mateocerquetella/agentum agentum
    Compiling agentum v0.5.1 (✓ 7 crates)
    Installed binary: ~/.cargo/bin/agentum

# 2 — spawn an agent
$ agentum new alpha --tool claude --dir ~/Developer/my-project --up
  ✓ tmux session created       (alpha)
  ✓ adapter attached           (claude · sonnet)
  ✓ watchdog reconciler armed  (5s tick)
  ✓ pane streaming             (ws://127.0.0.1:8822/api/sessions/alpha/stream)

# 3 — open the dashboard
$ agentum serve
  → HTTPS     https://127.0.0.1:8822
  → cert TOFU  http://127.0.0.1:8823/api/cert
  → fingerprint SHA256:1a:f6:9c:42:3e:8b:55:71:…:c3
  → bearer     stored at $XDG_DATA_HOME/agentum/auth_token

Ship from a single
tmux server.

One binary. Five agents. Zero clouds.