Built for mobile
Install as a PWA on Android or iOS. Drive Claude Code from a phone with safe-area-aware UX, persistent sessions, and a real keyboard-friendly chat input.
open source · self-hosted · PWA
spannora is a self-hosted web chat for Claude Code. Run it on a Linux VM with one curl command, then drive Claude from any browser or phone — with the full agent toolset, persistent sessions, and HTTPS out of the box.
curl -fsSL https://spannora.dev/install.sh | bash Runs on any Linux VM with port 80/443 open. Auto-provisions HTTPS via Let's Encrypt.
Claude Code is great in your terminal. But terminals don't follow you to your phone, don't survive a laptop closing, and don't let you check on a long-running agent from the couch. spannora puts the same Claude — same tools, same auth, same prompt — behind a browser tab on whatever device is in your hand.
Install as a PWA on Android or iOS. Drive Claude Code from a phone with safe-area-aware UX, persistent sessions, and a real keyboard-friendly chat input.
The standalone hub manages many spannora installs from one screen. Switch between dev, staging, and sandbox machines with one tap. Bearer-token auth across origins.
Bash, Edit, Write, AskUserQuestion — every Claude Code tool works. SSE streaming, mid-stream interrupt, conversation resume, context-fill matching the official status line.
Point your terminal at a fresh Linux VM and run:
curl -fsSL https://spannora.dev/install.sh | bash
The installer detects existing reverse proxies (Caddy, nginx) or installs Caddy fresh, provisions a Let's Encrypt certificate on an sslip.io hostname by default, and starts a systemd service. First boot prints a one-time setup token. Visit https://<your-vm>/setup, paste it, and you're chatting.
spannora ships with bcrypt password auth, HttpOnly cookie sessions, optional long-lived bearer tokens for cross-origin hub access, and a setup token printed once on first boot. All conversations live in SQLite + JSONL on your disk. Nothing leaves your server except calls to the Claude API.
spannora is a self-hosted web UI for Claude Code. You run it on a Linux VM, and it gives you a browser-based chat that drives Claude with the full toolset — Bash, Edit, Write, the lot. It's the same Claude you'd use in the CLI, reachable from any device.
The CLI lives in your terminal. spannora is a thin server that wraps the Claude Agent SDK and exposes it as a web app. Same underlying Claude, same tools, same auth — different UI surface. Run Claude on a remote VM and you can still kick off tasks from your phone or any browser.
Yes. spannora is a PWA — open it in mobile Safari or Chrome, tap "Add to Home Screen," and it installs like a native app. The UI is designed mobile-first: safe-area insets for the iOS notch, dynamic viewport height that handles Android keyboards correctly, and a chat input that stays in reach while Claude streams.
spannora ships with bcrypt password auth, HttpOnly cookie sessions, optional long-lived bearer tokens for cross-origin clients, and a one-time setup token on first boot. The one-line installer provisions HTTPS via Let's Encrypt automatically (Caddy or nginx + certbot). The web UI is treated like a root shell because that's exactly what it is — Claude needs filesystem access on the VM to actually do work. Lock down the auth gate, don't expose it without HTTPS.
spannora itself is free and open source (MIT). You'll pay Anthropic for Claude usage — either through a Claude Code subscription or pay-as-you-go API. spannora uses the same auth as the Claude Code CLI, so if you've already paid for Claude Code, no extra cost.
Yes. Each VM runs its own spannora. The hub at spannora.dev/app/ is a static PWA that connects to many installs simultaneously and lets you switch between them with one tap. Or self-host the hub if you prefer — it's just static files in the same repo.
The server is Linux-only by design — it expects systemd, a real filesystem, and runs as root so Claude's tool calls can do useful work. The frontend (browser + PWA) works on any OS, naturally. Windows isn't supported as a dev platform either; macOS and Linux only.