by rohitg00
Claude Code on your Tailscale tailnet, powered by the iii engine.
# Add to your Claude Code skills
git clone https://github.com/rohitg00/tailclaudeLast scanned: 5/30/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@protobufjs/utf8: protobufjs has overlong UTF-8 decoding",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "protobufjs: Arbitrary code execution in protobufjs",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "ws: ws: Uninitialized memory disclosure",
"severity": "medium"
}
],
"status": "FAILED",
"scannedAt": "2026-05-30T15:58:09.850Z",
"npmAuditRan": true,
"pipAuditRan": true
}tailclaude is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by rohitg00. Claude Code on your Tailscale tailnet, powered by the iii engine. It has 161 GitHub stars.
tailclaude failed SkillsLLM's automated security scan, which flagged one or more high-severity issues. Review the Security Report section carefully before using it.
Clone the repository with "git clone https://github.com/rohitg00/tailclaude" and add it to your Claude Code skills directory (see the Installation section above).
tailclaude is primarily written in TypeScript. It is open-source under rohitg00 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh tailclaude against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
Claude Code from any browser. No SSH. No terminal. Just a URL.
TailClaude publishes a full Claude Code web interface to every device on your Tailscale tailnet — or the public internet via Tailscale Funnel. Powered by the iii engine.
Scan a QR code from your phone, open the link, and start coding with Claude — streaming responses, full session history, model switching, real-time cost & usage dashboards, system metrics, request traces, live activity feed, and every Claude Code control in a touch-optimized UI styled with Anthropic's brand guidelines.
Every "doom coding" setup — SSH, mosh, tmux, Termius, Moshi — still puts you in a terminal. You're still typing on a tiny keyboard, memorizing shortcuts, and managing connections.
TailClaude removes the terminal entirely.
| Terminal (SSH/mosh + tmux) | TailClaude | |
|---|---|---|
| Client | Terminal app + SSH/mosh + tmux | Any browser |
| Phone setup | Install app, configure keys/auth | Scan QR code |
| Network switch | mosh helps, SSH drops | Browser reconnects automatically |
| Interface | Terminal emulator | Web chat UI with Markdown rendering |
| Streaming | Raw terminal output | Real-time SSE, token-by-token |
| Session history | tmux attach (terminal only) |
Browse ALL sessions (terminal + web) |
| Model switching | Edit CLI flags, restart | Dropdown: Opus, Sonnet, Haiku |
| Permission modes | CLI flags | One-click: default, plan, acceptEdits, bypassPermissions |
| Cost tracking | None | Live tokens + per-message cost ($0.01 · 4.5K in / 892 out) |
| Stop mid-response | Ctrl+C in terminal | Stop button with instant feedback |
| Mobile UX | Tiny terminal, keyboard shortcuts | Touch-optimized, responsive, dark theme |
| Setup time | ~15 minutes | npm install && iii -c iii-config.yaml |
Tailscale handles the secure connection. TailClaude handles everything else.
+-----------------------------------------------------------------+
| Browser (any device — phone, tablet, laptop) |
| https://your-machine.tail-abc.ts.net |
+---------------------------------+-------------------------------+
| HTTPS (auto-cert via Tailscale)
v
+-----------------------------------------------------------------+
| tailscale serve/funnel :443 -> http://127.0.0.1:3110 |
+---------------------------------+-------------------------------+
|
v
+-----------------------------------------------------------------+
| Node.js Proxy (port 3110) |
| |
| GET / -> Chat UI (Anthropic brand, tabs) |
| GET /health -> Engine state + worker metrics |
| POST /chat -> OTel-traced SSE streaming chat |
| POST /chat/stop -> Kill active process + lifecycle |
| GET /chat/active -> Active streaming request IDs |
| GET /chat/replay/:id -> Replay buffered chat events |
| GET /sessions -> State-indexed sessions (sub-ms) |
| GET /sessions/:id -> Full conversation history |
| GET /activity -> SSE live activity feed |
| GET /usage -> 7-day cost & token usage stats |
| GET /metrics -> System metrics timeline + alerts |
| GET /traces -> Request traces (cost/tokens/model) |
| GET /qr -> QR code SVG |
| GET /settings -> MCP servers list |
| * -> Proxy to iii engine (port 3111) |
+---------------------------------+-------------------------------+
|
v
+-----------------------------------------------------------------+
| iii engine (port 3111) |
| |
| State -> session_index, usage_daily, traces, metrics, |
| alert_cooldowns, alerts, backfill_state, config |
| Streams -> chat event replay buffer (LRU, 100 groups max) |
| PubSub -> chat::started/completed/stopped, session::indexed, |
| cleanup::completed, alert::* |
| Cron -> */1 metrics snapshot, */5 session re-index + |
| backfill, */30 cleanup, */6h data retention |
| OTel -> distributed tracing on every chat request |
| Logger -> structured logging with trace correlation |
| Event: engine::started -> auto-publish to Tailscale + QR |
| Signal: SIGINT/SIGTERM -> unpublish Tailscale + clean exit |
+---------------------------------+-------------------------------+
|
v
+-----------------------------------------------------------------+
| claude -p --output-format stream-json --verbose |
| (Claude Code CLI — works with Pro/Max plans) |
+-----------------------------------------------------------------+
POST /chat spawns claude -p --output-format stream-json --verbose, wraps the request in an OTel span (model, cost, tokens, duration), writes events to the iii chat stream for replay, and emits lifecycle events via PubSub~/.claude/projects/) to extract real token counts, model names, and cache usage — then calculates accurate costs using Claude API pricingtailscale serve and prints a terminal QR code3 commands. Under 60 seconds.
git clone https://github.com/rohitg00/tailclaude.git
cd tailclaude
npm install
iii -c iii-config.yaml
That's it. Open the URL printed in your terminal (or scan the QR code from your phone).
If Tailscale is running, TailClaude auto-publishes to your tailnet with HTTPS. No config needed.
Run worker separately (if iii engine is already running):
npm run dev
Proxy only (quick testing, no iii engine):
npx tsx -e 'import{startProxy}from"./src/proxy.ts";startProxy()'
curl http://localhost:3110/health # Proxy health + Tailscale URL + sessions
open http://localhost:3110 # Open the chat UI
curl http://localhost:3110/sessions # List all sessions with metadata
curl http://localhost:3110/usage # 7-day cost & usage stats
curl http://localhost:3110/metrics # System metrics timeline + alerts
curl http://localhost:3110/traces # Request traces with cost/tokens/model
curl http://localhost:3110/qr # QR code SVG
4,521 in / 892 out)$0.0123 · 4,521 in / 892 out)GET /activity —