Give ɳClaw a full web interface served from your own domain. Chat, browse projects, search conversation history, and configure settings from any browser — no native app required.
claw-web depends on nself-claw. Install both. The web UI is a thin SvelteKit shell — all data flows through the claw plugin.
# 1. Set license and install claw + claw-web
nself license set nself_pro_xxxxx
nself plugin install claw claw-web
# 2. Set your domain in .env
CLAW_DOMAIN=claw.example.com
ORIGIN=https://claw.example.com
# 3. Build and start
nself build && nself start
# Open https://claw.example.com in a browserclaw-web is a SvelteKit Node service that proxies all data to the claw plugin over the internal cluster network. It serves the chat interface, project browser, conversation history, data browser, and plugin settings — the same surfaces available in the iOS, Android, and macOS native clients. Auth, memory, tools, and streaming responses all behave identically to the native apps.
The UI is server-rendered on first load for fast time-to-content, then hydrates for real-time streaming. WebSocket connections are upgraded by the Nginx block that nself build generates automatically for your CLAW_DOMAIN.
There is no separate UI codebase. claw-web shares the component library with the native apps. Any capability the desktop or mobile client has, the browser UI has too — including tool calls, memory inspection, and multi-project switching.
| Variable | Required | Default | Description |
|---|---|---|---|
CLAW_DOMAIN | Yes | — | Public domain for the web UI (e.g., claw.example.com) |
ORIGIN | Yes | — | SvelteKit origin — typically https://${CLAW_DOMAIN} |
CLAW_INTERNAL_URL | No | http://plugin-claw:3710 | Internal URL of the claw plugin service |
claw-web reads no other secrets. Auth tokens are never stored in the web layer — all authentication flows through the claw plugin over the internal network.
nself build generates an Nginx server block for CLAW_DOMAIN automatically. It proxies HTTP requests to claw-web on port 3004 with WebSocket upgrade headers — streaming chat responses work out of the box.
# Generated by nself build — do not hand-edit
server {
listen 443 ssl;
server_name claw.example.com;
location / {
proxy_pass http://127.0.0.1:3004;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}| Surface | Path | Description |
|---|---|---|
| Chat | / | Real-time streaming chat with ɳClaw |
| Projects | /projects | Browse and switch between projects |
| History | /history | Search full conversation history |
| Memory | /memory | Browse and manage the ɳClaw memory graph |
| Data browser | /data | Inspect plugin data (budget, news, tasks, etc.) |
| Settings | /settings | Plugin config, identity, connected tools, license info |
claw-web is a pure frontend over the claw plugin. No additional claw configuration is needed — once both plugins are running, the web UI is live at your configured domain. The browser client connects to claw through the same WebSocket API the native apps use.
Shared state — memory, active project, tool availability — is server-side in the claw plugin. Switching between browser and native clients mid-conversation works without loss.
| Feature | claw-web | ChatGPT web / Claude.ai |
|---|---|---|
| Hosted on your domain | Yes | No |
| Data stays on your server | Yes | No |
| Persists memory across sessions | Yes — via nself-claw | Limited / paid tier |
| Parity with native apps | Full — same component library | N/A |
| Cost | $0.99/mo (ɳClaw bundle) | $20–$200/mo |
| Issue | Fix |
|---|---|
502 Bad Gateway on CLAW_DOMAIN | Verify claw-web is running (nself status) and port 3004 is bound to 127.0.0.1 |
| Streaming chat doesn't work | Check Nginx config for WebSocket upgrade headers — they must be present. Regenerate with nself build. |
| Auth loops / 401 errors | Confirm ORIGIN matches the exact URL the browser uses (including https://) |
SSL cert missing for CLAW_DOMAIN | Run nself ssl install to provision a Let's Encrypt cert for the new subdomain |
nself plugin remove claw-webPort: 3004 | Bundle: ɳClaw ($0.99/mo) or ɳSelf+ ($3.99/mo) | Requires: nself-claw | Last Updated: May 2026 | Plugin Version 1.1.1