Skip to content

mwardio/clyde

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clyde

Clyde

Your own Claude Code, in the browser.
A self-hosted command center for Claude Code — Anthropic's terminal AI agent — on your machine, from your phone, tablet, or anywhere else.

MIT license Docker Claude subscription auth No API key

Launching a new session and watching it work

Clyde wraps the Claude Agent SDK in a fast, dependency-light web app. It authenticates with your existing Claude subscription (the same OAuth login your terminal uses) — no API key, no per-token billing, ever.

Claude's own apps can remote-control a session after you've started it in a terminal. Clyde goes further on two fronts: start brand-new local sessions, remotely — any directory, any model, any permission mode, no SSH and no terminal in the loop — and put Claude on a schedule, with recurring tasks that run unattended and report back. Neither is possible from the official apps.

What it does

  • Launch new sessions from anywhere — pick a directory, model, effort, and permission mode from the browser and go. Your machine is fully driveable from a phone that has never seen a terminal.
  • Tasks: agents on a schedule — cron, interval, daily, or on-demand runs that work unattended and notify you when done. Full transcripts kept. Optionally carry context between runs, so Tuesday's check remembers Monday's.
  • A dashboard for a fleet of sessions — live status cards for every conversation: what directory it's in, what tool it's running right now, what it last said, and whether it's waiting on you. Stop, resume, and jump in from anywhere.
  • Sessions in any directory, simultaneously — each with its own model, effort level, and permission mode, all switchable mid-conversation.
  • Continue your terminal sessions — anything you started with claude in a shell shows up in a browsable list; one tap resumes the full conversation in the browser.
  • Sessions that don't die — a supervisor respawns the engine and resumes the conversation in place if it ever exits. Close the laptop mid-task; the work keeps going.
  • Permission prompts, remotely — when a session wants to run something in ask mode, you get Allow once / Always allow / Deny in the browser (and a notification if you're elsewhere).
  • Everything Claude Code can do — type / for the full command palette: skills, /compact, /code-review, custom commands. Streaming responses, thinking blocks, red/green diffs on file edits.
  • Images in — paste a screenshot, drag a file, or shoot straight from the phone camera.
  • Usage at a glance — live plan-window utilization with reset countdowns, plus per-model token history parsed from local transcripts (zero extra API calls).
  • At home on every screen — responsive from phone to ultrawide; installable as a PWA over HTTPS.
Clyde on a phone: sign in, open a session, watch it work

Run it

You need Docker, a Claude subscription (Pro or Max), and a machine where the Claude Code CLI has been logged in once (claude login) — Clyde reuses those credentials from ~/.claude.

git clone https://github.com/mwardio/clyde.git && cd clyde
cp .env.example .env          # set CLYDE_HOME, WEB_PASSWORD (see below)
docker compose up -d --build

Open http://<host>:8355. That's the whole install.

Clyde mounts your home directory and uses host networking so sessions see exactly what your terminal sees. That's the point — but read docker-compose.yml once before launching so nothing surprises you.

Behind a reverse proxy

HTTPS unlocks notifications and PWA install. With Caddy it's three lines:

clyde.example.com {
    reverse_proxy <host>:8355
}

Configuration

All configuration lives in .env:

Variable Default Purpose
CLYDE_HOME (required) Home directory of the user who ran claude login
WEB_PASSWORD (required) Login password
CLYDE_UID / CLYDE_GID 1000 / 1000 uid/gid to run as (id to check yours)
PORT 8355 HTTP port

Session registry and task definitions persist in ./data/.

How it works

A small Node server (Express + WebSocket, no build step) drives long-lived Agent SDK sessions and streams every event to the browser. Sessions are real Claude Code sessions — they persist to ~/.claude/projects alongside your terminal history and are interchangeable with it. The server strips ANTHROPIC_API_KEY from its environment on principle: subscription auth is the only path.

A word on security

Clyde is a remote control for an AI with shell access to your machine. Keep it on your LAN or VPN, set a strong password, use HTTPS, and think twice before mounting docker.sock. Bypass-permissions mode means exactly what it says.

Login is protected by per-IP lockout (10 failed attempts, 15-minute cooldown), sessions use signed HttpOnly cookies that survive restarts, and the usual hardening headers are set. There is deliberately no path to API-key billing.

Known limitations

  • Single user, single password — put it behind your own auth proxy if you need accounts or 2FA.
  • The chat renderer covers the common cases (code blocks, inline code, bold, lists); it is not a full markdown engine.
  • Changing effort mid-session is best-effort; stop/resume applies it cleanly.
  • Notifications and PWA install require HTTPS (a reverse proxy — see above).
  • Built for Linux hosts; tested on amd64.

License

MIT

About

Self-hosted web command center for Claude Code — multi-session dashboard, scheduled agents, and full mobile control, running on your Claude subscription

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors