Self-hosted VPS management platform with native Claude Code AI integration.
ClawPanel turns any Ubuntu/Debian VPS into a full-featured control panel with a built-in AI coding assistant. Manage your apps, domains, SSL, and terminals from a single dark-themed web UI — and build new projects interactively through Claude Code right in your browser.
One-line installer (run as root on a fresh Ubuntu/Debian VPS):
curl -fsSL https://raw.githubusercontent.com/otugalord/clawpanel/main/install.sh | bashThe installer is idempotent — you can safely re-run it to update. It installs Node.js 20, PM2, nginx, certbot, clones the repo, builds the frontend, starts ClawPanel under PM2, and configures an nginx reverse proxy on port 80.
After the install finishes, open http://<your-server-ip> in your browser and create the admin account (setup wizard).
- 🤖 Claude Code AI Chat — a full chat interface with a persistent
claudeCLI PTY session per project. Stream responses live to the browser with markdown rendering, live preview iframe, and slash commands (/clear,/restart,/preview). - 📦 App Manager (PM2) — register, start, stop, restart and delete Node.js apps. Auto-detect scripts, free-port scanner, real-time CPU/RAM/uptime stats.
- 🖥️ Live Terminal — full xterm.js terminal tabs with real PTY sessions over WebSocket. Resize-aware, multi-session.
- 🌐 Domain Manager + SSL — add domains, link them to apps (automatic nginx config generation), install Let's Encrypt SSL via certbot with live log streaming.
- 📊 System Dashboard — CPU, RAM, disk, uptime, running processes, and recent Claude Code activity. Stats refresh every 10 seconds over WebSocket.
- 🔑 API Keys — generate and revoke API keys for headless access; use with
X-API-Keyheader. - 🔒 JWT auth — 7-day tokens, rate-limited login, first-run setup wizard.
- OS: Ubuntu 20.04+ or Debian 11+
- RAM: 1 GB minimum (2 GB recommended for the frontend build)
- Disk: 1 GB free
- Network: HTTP (port 80) accessible; port 3000 is used internally by the backend
- Claude Code CLI: installed and authenticated on the server — ClawPanel shells out to
claudeso it must be on thePATH. Install instructions: https://docs.anthropic.com/claude-code
ClawPanel automatically installs: node (20.x via NodeSource), npm, pm2 (global), nginx, certbot, and sqlite3.
- Browse to
http://<your-server-ip>after the installer completes. - The setup wizard asks you to pick a username and password for the admin account.
- You land on the Dashboard showing your server stats.
- Go to Apps → click Nova App.
- Pick a name (e.g.
my-blog) — ClawPanel creates/root/apps/my-blog/and auto-assigns a free port. - Click the Claude icon on the app card. You land in the Claude Code chat with that folder as the working directory.
- Ask Claude to build whatever you want: "Build a Node.js Express hello world server and start it".
- Back on Apps, hit Start — PM2 picks up the script and runs it.
- Point your DNS A record to the server IP.
- Go to Domínios → Adicionar → type the domain.
- Click Ligar and pick the app. ClawPanel generates the nginx config and reloads.
- Click Install SSL to run certbot automatically. Live logs stream into the browser.
Open the Terminal tab for a full bash session in your browser. Multi-tab support — each tab is an independent PTY.
- Change the admin password
- Generate API keys for headless / CI access
- Set your Anthropic API key (picked up automatically by the Claude Code CLI)
- Configure the apps directory (default:
/root/apps)
browser ─┬─ HTTP ──┐
│ ▼
│ nginx :80
│ │
│ ▼
└─ WS ── Express :3000 ──┬─ SQLite (better-sqlite3)
├─ node-pty ─── bash / claude CLI
├─ PM2 API ─── user apps
└─ certbot / nginx shell-outs
Backend: Node.js 20 + Express + WebSocket (ws) + better-sqlite3 + node-pty + pm2 + systeminformation
Frontend: React 18 + Vite + react-router-dom + @xterm/xterm + marked + lucide-react + react-hot-toast
Database: SQLite at /opt/clawpanel/backend/clawpanel.db (auto-created on first run)
# Backend (port 3000)
cd backend
npm install
node server.js
# Frontend (port 5173, proxies /api and /ws to :3000)
cd frontend
npm install
npm run devpm2 logs clawpanel # tail logs
pm2 restart clawpanel # restart
pm2 stop clawpanel # stop
pm2 monit # interactive monitorDatabase lives at backend/clawpanel.db. Environment variables in backend/.env:
PORT=3000
HOST=0.0.0.0
JWT_SECRET=<random-generated>
- Always change the default admin password after setup.
- The JWT secret is generated randomly by the installer — keep
backend/.envprivate. - ClawPanel runs as root by default (needed for nginx/certbot/apps management). Run it behind a firewall and only expose port 80/443.
- The Claude Code PTY is spawned with
--dangerously-skip-permissionsso it can write to project folders without prompting. Only give access to trusted users.
MIT © 2026 otugalord