Self-hosted · MIT · runs on a single box

Run Claude Code
from any browser.

TerminalClaw is a tiny dashboard that turns Anthropic's own agent into a per-project browser terminal — with viewable memory, persistent sessions and multiple agents at once. On your Claude Pro/Max plan. No API metering, no gateway.

Open a project, type claude, and you're talking to a grounded agent — from your laptop or your phone.

🔒 terminalclaw.yourbox.com
minotaur
notes-app
immich
frigate
kobo-sync
⌨ Terminal🧠 Memory📄 Architecture
minotaur ~ $ claude
↳ loaded CLAUDE.md · 4 memory files @-imported · resuming last session
 
Caddy + 19 Docker services mapped. What are we doing?
 
> redeploy the dashboard to all the pis

Why it exists

You already pay for Claude. Stop paying twice.

If you've run an OpenClaw-style setup — a third-party harness wrapped around a gateway that holds your API key and meters every token — you know the tax. TerminalClaw drops the middle layer and runs Anthropic's official agent directly, on the plan you already have.

🪤 The gateway pattern

  • A third-party harness you have to trust with your keys and your data
  • A separate gateway service to run, secure and keep alive
  • Pay-per-token API billing on top of your subscription
  • Memory and context buried somewhere you can't see or edit
  • One opaque session — hard to script, hard to parallelize

🦀 TerminalClaw

  • Runs Claude Code, Anthropic's own CLI — no third-party harness in the path
  • No gateway: just Claude running on your box. The only overhead is the model itself
  • Uses your Claude Pro/Max subscription — no per-use API credits
  • Memory is a folder of Markdown you can read and edit from the browser
  • One grounded agent per project — run several at once

What you get

A control panel for your agents.

One page over every project on one machine. Each project's terminal is a project-scoped Claude Code agent — not just a shell in a folder.

🧠

Viewable, editable memory

A Memory tab shows the force-read brief and Claude Code's own per-project recall as Markdown — add or edit a memory right from the browser.

🗂️

Project scaffolding

Each project boots from an auto-built CLAUDE.md with its memory @-imported, so the agent starts already knowing the codebase. No cold starts.

🤖

Multiple agents at once

Every project is its own persistent session. A pulsing green light shows which ones have Claude running — drive several in parallel.

💾

Sessions that survive

Backed by tmux: reload the page, reboot the box, come back tomorrow — a bare claude auto-resumes right where you left off.

📱

Works on your phone

A mobile tap-bar sends the keys soft keyboards can't, plus a 🎤 dictation box and clipboard paste — answer an agent prompt from anywhere.

🔒

No inbound ports

Two independent cookie-auth layers and a dial-out Cloudflare Tunnel — nothing is exposed on the box. Your sessions and data stay home.

🪶

Tiny by design

A stdlib Python server + a vanilla-JS page + ttyd. No build step, no framework, no database. You can read the whole thing.

🟢

Live status at a glance

Each card shows green/red/grey dots for its Docker containers and systemd services, refreshed every 20s — your homelab and your agents in one view.

One-command updates

tclaw update pulls latest and restarts — without killing your live agent sessions. git push from your laptop, update each box.

How it works

Three small pieces, one page.

Open a project

The dashboard loads that project's terminal in an iframe and attaches to its persistent tmux session — same session every time.

Type claude

A shell wrapper rebuilds the project's CLAUDE.md from its tabs and memory, so the official Claude Code agent starts fully grounded.

Drive it anywhere

From the browser on any device. Memory, docs and live service status sit one tab away — and it all persists across reloads and reboots.

🐍 stdlib Python server
🧩 vanilla JS — no framework
🖥️ ttyd + tmux
🌐 Caddy + Cloudflare Tunnel
🧠 powered by Claude Code

Self-host it in an afternoon.

Drop three files in /opt/terminalclaw, point projects.json at your projects, install the systemd units. The repo ships sanitized Caddy / Cloudflare / systemd templates — your real config never leaves the box.

MIT licensed · runs on a Raspberry Pi, a mini-PC, or a VPS