STATUS // ONLINE
CALLSIGN // BATTLELAB-ACTUAL
BATTLELAB
// Command & Code //

Self-hosted command deck for your AI-coding agents. Sessions survive every deploy, Pulse curates your recent work, and a live map commands it. Install once, open the Connect page, and command from anywhere.


ENGINES // 5 SESSIONS // PERSISTENT STREAM // 4H INSTALL // 1 LINE SYS // 00:00:00Z
BATTLELAB // AGENT-MAINSTATUS // LIVE
~/claude/app on main · scroll up for history why is the auth redirect looping? Picking up where you left off — the redirect loop is the missing next param on /login.
DEFAULT // STREAM-READY (HOME FREE) — no port forwarding, reach it from any browser
curl -fsSL https://battlelab.superstatus.io/install.sh | AGENT_SESSIONS_REMOTE=stream bash THEN // OPEN /CONNECT + ENTER NAME & KEY — E2E ENCRYPTED, 4-HOUR SESSIONS, NO ACCOUNT
SELF-HOST ONLY // NO RELAY — bring your own reverse proxy / TLS
curl -fsSL https://battlelab.superstatus.io/install.sh | sh
01

Features

WHAT THE DECK DOES

Persistent agents

Agents run in detached sessions that outlive tabs, reboots and deploys. Reattach and scroll up through clean, console-style history — for every engine.

Pulse — work at a glance

An AI-curated state of your work — recent sessions ranked by what needs you (), what's in flight, and what's idle, each one click away. Cached to load instantly; pick the depth, from free local curation to an AI synthesis.

Tactical map & projects

A live flowchart of every session, grouped into projects. Open multiple agents on one screen and command the whole operation at a glance.

Touch-ready

A mobile-first terminal with a real compose bar, control keys and image paste. Drive your fleet from a phone.

AI session reviews

An AI reads every running session and writes a one-line summary on each row, flagging the ones that need you () — triage the fleet without scrolling transcripts. Point it at any OpenAI-compatible endpoint, even a local model.

AI auto-sort

New sessions file themselves — an AI matches each one to the right project (confidently, or not at all), so your map stays organised without manual sorting.

02

Pricing

PICK YOUR DEPLOYMENT
Self Host
Your hardware · your rules
$0 FOREVER · BSL 1.1

  • Full deck: all 5 engines, Pulse, map, AI reviews
  • Unlimited sessions, unlimited duration
  • One-line rootless install, atomic upgrades
  • Your data never leaves your machine
▸ Install
No port forwarding
Home Free
Your box · our blind relay
$0 NO ACCOUNT

  • Everything in Self Host — it's the default install
  • Reach your deck from any browser via Connect
  • End-to-end encrypted — the relay sees only ciphertext
  • 4-hour streaming sessions, instant reconnect
  • No signup, no email, nothing stored
Open connect page ▸
Coming soon
Pro
We host the environment
$–/mo MANAGED

  • Your own BattleLab instance, hosted by us
  • Zero hardware, zero setup — sign in and code
  • Isolated environment per tenant
  • Always on, always reachable
Coming soon
03

Home Free — how it works

STREAM THROUGH OUR RELAY

The default install opts you in: your box dials out to our blind relay — no reverse proxy, no open port, no domain. Open the Connect page from any browser, enter the console name and access key the installer printed, and your whole deck streams to you. Free, no account, sessions run up to 4 hours with instant reconnect.

STEP 1 // INSTALL ON YOUR BOX STEP 2 // OPEN CONNECT PAGE STEP 3 // ENTER NAME + KEY
Open connect page ▸

The relay is blind

A dumb bridge that forwards only ciphertext and a console name you choose — never your keystrokes, output or files. Nothing plaintext for us to read, log, or hand over.

End-to-end encrypted

Encrypted end-to-end between your box and your browser — X25519 keyed by your access key, then AES-256-GCM. The keys live at the two ends, never on the relay.

No account, nothing stored

No signup, no email, no profile. Your box dials out; sessions run up to 4 hours; there's nothing stored to delete afterward.

Your access key = full control

Generated on your box, the access key is the pre-shared encryption key — it never reaches us in the clear. It grants full control of the machine, so keep it secret; we'll never ask for it.

Frequently asked

What is BattleLab?

BattleLab (the agent-sessions project) is a self-hosted, mobile-first web app that organizes and runs your AI coding agents — Claude Code, Codex, opencode, Gemini, and Antigravity — in one place, each in its own persistent terminal session.

Which AI coding agents does it support?

Five engines today: Claude Code, Codex, opencode, Gemini, and Antigravity. Each appears in a unified sidebar, grouped by project, with per-engine badges and filtering. Adding an engine is one small provider in the registry.

What is Pulse?

Pulse is an AI-curated overview of your recent work: it reads your sessions and ranks them by what needs you, what's in flight, and what's idle, with one-click jump-back-in. Results are cached so the page loads instantly, and you pick the depth — free local curation (zero LLM calls) or an AI “state of your work” synthesis. It reuses the same OpenAI-compatible endpoint as AI reviews.

Is it free to self-host?

Yes. BattleLab's source is available under the Business Source License 1.1 — free to self-host — and fully self-hosted, so your sessions and data never leave your own machine.

How do I install it?

One line. The default, stream-ready install: curl -fsSL https://battlelab.superstatus.io/install.sh | AGENT_SESSIONS_REMOTE=stream bash — it activates Home Free so you can reach your deck from any browser via the Connect page, no port forwarding. Prefer a pure self-host behind your own reverse proxy? Use curl -fsSL https://battlelab.superstatus.io/install.sh | sh. Both are rootless, user-level installs (no root, no system daemon) with atomic releases, one-step rollback, and an opt-in self-updater.

Do sessions survive reboots and deploys?

Yes. Every session runs under its own detached PTY (dtach), so you can close the tab, reboot, or upgrade the app and reattach to the exact same conversation — with clean, console-style scroll-up history for all five engines.

Does it work on a phone?

Yes — it's mobile-first: a touch-ready terminal with a real compose bar, control keys, and image paste, so you can drive your whole fleet of agents from a phone.

Is it secure to expose?

It's a single-admin tool that launches agents with permission bypass by design — treat it like SSH. Stream through our blind relay (the default) or run it behind your own reverse proxy (TLS + auth); it also has cookie + CSRF + same-origin checks and optional TOTP two-factor auth.

Can BattleLab read my streamed sessions?

No. Streaming is end-to-end encrypted between your box and your browser (X25519 keyed by your access key, then AES-256-GCM). Our relay only forwards ciphertext tagged with a console name you choose — it never sees plaintext, holds no keys, and there's no account or stored history. Sessions run up to 4 hours.

What does Pro include and when does it launch?

Pro is the managed tier — we host an isolated BattleLab environment for you, no hardware or setup needed. It's coming soon; there's nothing to buy yet. Self Host and Home Free are free today.

How do I uninstall it?

One line: curl -fsSL https://battlelab.superstatus.io/uninstall.sh | sh. It asks to confirm, then stops the service, removes the install (the ~/.local/share/agent-sessions tree, its systemd units, config, and scrollback cache) — and leaves your agents' own session history (Claude / Codex / opencode / Gemini / Antigravity) completely untouched.

UNCLASSIFIED // INTERNAL USE // SELF-HOSTED // BATTLELAB
Created with by superstatus.io · GitHub · Buy me a coffee · Legal