Skip to content

rcostica/clawdify

Repository files navigation

๐Ÿ’ Clawdify

Mission Control for OpenClaw โ€” a project-based web interface for managing your AI agent.

What is this?

Clawdify gives your OpenClaw agent a proper workspace: project-based chats with persistent memory, kanban boards, a file browser, and multi-device access. Think of it as the UI layer your agent deserves.

Features

  • Project organization โ€” separate workspaces with their own conversations, files, tasks, and context memory
  • Chat โ€” talk to your agent with full project awareness (CONTEXT.md, file manifest, sub-project inheritance)
  • Kanban โ€” drag-and-drop task management, sub-tasks, sort ordering
  • File browser โ€” browse, edit, create files in the OpenClaw workspace. Hidden files toggle, inline rename
  • Docs tab โ€” rendered markdown viewer for project documentation
  • Voice messages โ€” record and send audio, transcribed via local Whisper STT
  • PWA โ€” installs as a native app on mobile and desktop
  • Multi-device sync โ€” SSE-based real-time sync across all connected devices
  • Instance naming โ€” custom name per install (useful when running multiple Clawdify instances)
  • Any model โ€” works with any model provider supported by OpenClaw (Anthropic, OpenAI, Google, local models via Ollama, etc.)

Prerequisites

Requirement Why
OpenClaw The AI agent runtime. Clawdify is its frontend. Must be running on the same machine.
Node.js 18+ Build and run Clawdify. v22+ recommended.
Tailscale (recommended) Secure remote access from phone/laptop without exposing ports. Required for PWA install (needs HTTPS).

Setup

Fresh OpenClaw โ€” No Existing Projects

You just installed OpenClaw and want a project workspace.

# 1. Clone and install
git clone https://github.com/rcostica/clawdify.git ~/clawdify
cd ~/clawdify && npm install

# 2. Run setup wizard (auto-detects gateway token, workspace path, enables chat endpoint)
npm run setup

# 3. Restart gateway to apply the config change
openclaw gateway restart

# 4. Build and start
npm run build
npm start

Open http://localhost:3000. A General project is created automatically โ€” click it and start chatting.

Existing OpenClaw โ€” Already Has Projects & Files

Your agent has been running via Telegram, Slack, or CLI. There are workspace files and project folders.

# 1โ€“4: Same as above
git clone https://github.com/rcostica/clawdify.git ~/clawdify
cd ~/clawdify && npm install
npm run setup
openclaw gateway restart
npm run build
npm start

Then in the browser:

  1. Go to Settings โ†’ Discover Projects โ†’ Scan Workspace
  2. Clawdify finds all folders in your OpenClaw workspace
  3. Check which folders should become projects
  4. Drag folders onto other folders to set up parent/child hierarchy
  5. Click Create Projects โ€” done

๐Ÿ’ก Sub-project tip: If your agent created project1/seo/, project1/content/, and project1/ads/ as separate folders, drag seo/content/ads onto project1 to import them as sub-projects.

Docker

git clone https://github.com/rcostica/clawdify.git
cd clawdify
cp .env.example .env
# Edit .env with your gateway token
docker compose up -d

Set OPENCLAW_GATEWAY_URL=http://host.docker.internal:18789 to reach the host's gateway.

Manual Setup (if you want full control)
git clone https://github.com/rcostica/clawdify.git ~/clawdify
cd ~/clawdify && npm install

Create .env:

OPENCLAW_GATEWAY_URL=http://localhost:18789
OPENCLAW_GATEWAY_TOKEN=your-token-here          # find in ~/.openclaw/openclaw.json โ†’ gateway.auth.token
OPENCLAW_WORKSPACE_PATH=/home/you/.openclaw/workspace
CLAWDIFY_SESSION_SECRET=$(openssl rand -hex 32)
CLAWDIFY_PIN=1234                               # optional
PORT=3000

Enable the chat endpoint in ~/.openclaw/openclaw.json (add to the gateway object):

{
  "gateway": {
    "http": {
      "endpoints": {
        "chatCompletions": {
          "enabled": true
        }
      }
    }
  }
}
openclaw gateway restart
npm run build && npm start

What the Setup Wizard Does

npm run setup is a zero-dependency Node.js script that:

  1. Detects your gateway token from ~/.openclaw/openclaw.json
  2. Detects your workspace path and sessions path
  3. Enables the chatCompletions endpoint in the gateway config (disabled by default in OpenClaw)
  4. Generates a session secret
  5. Asks for PIN and port (only 3 prompts)
  6. Writes a complete .env file
  7. Optionally creates a systemd user service

After setup, you must run openclaw gateway restart to apply the config change.


Remote Access with Tailscale

Clawdify binds to localhost:3000 by default. Tailscale extends access to your other devices securely:

  1. Install Tailscale on the server and your phone/laptop
  2. Both devices join the same Tailscale network
  3. Access Clawdify at http://your-server:3000 from any device

HTTPS (required for PWA install)

PWA installation requires HTTPS. Tailscale Serve provides free auto-renewing certificates:

sudo tailscale serve --bg --https 8443 http://localhost:3000

Clawdify is now at: https://your-machine.tailnet-name.ts.net:8443

Installing as a Mobile App

With HTTPS set up:

  • Android: Chrome โ†’ Menu (โ‹ฎ) โ†’ "Install app" (not "Add to Home Screen")
  • iOS: Safari โ†’ Share โ†’ "Add to Home Screen"

โš ๏ธ On Android, "Add to Home Screen" creates a browser bookmark. "Install app" creates a real PWA (fullscreen, no address bar). You need HTTPS for the PWA option.


Running as a Service

The setup wizard can create this for you, or do it manually:

# ~/.config/systemd/user/clawdify.service
[Unit]
Description=Clawdify
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/you/clawdify
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=3
Environment=NODE_ENV=production

[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now clawdify.service

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Any Device  โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚  Tailscale   โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚  Your Machine   โ”‚
โ”‚  (Phone,     โ”‚HTTPSโ”‚  (encrypted  โ”‚     โ”‚                 โ”‚
โ”‚   Laptop)    โ”‚     โ”‚   tunnel)    โ”‚     โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚  โ”‚ Clawdify  โ”‚  โ”‚
                                          โ”‚  โ”‚ :3000     โ”‚  โ”‚
                                          โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
                                          โ”‚        โ”‚ HTTP    โ”‚
                                          โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”  โ”‚
                                          โ”‚  โ”‚ OpenClaw  โ”‚  โ”‚
                                          โ”‚  โ”‚ Gateway   โ”‚  โ”‚
                                          โ”‚  โ”‚ :18789    โ”‚  โ”‚
                                          โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
                                          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • Clawdify = Next.js app on the same machine as OpenClaw
  • Gateway token stays server-side (.env) โ€” never sent to the browser
  • Tailscale handles encryption and access control
  • SQLite stores projects, tasks, messages, and settings locally

Troubleshooting

Chat returns "405 Method Not Allowed"

The gateway's chatCompletions endpoint is disabled (this is the default in OpenClaw).

Fix: Run npm run setup again (it auto-enables it), then openclaw gateway restart. Or manually edit ~/.openclaw/openclaw.json โ€” set gateway.http.endpoints.chatCompletions.enabled to true.

Check Settings in Clawdify โ€” it shows the endpoint status with a green/red indicator.

API errors (500) on first load

Database tables auto-create on startup. Restart Clawdify. If it persists, delete the DB and restart:

rm ~/.clawdify/clawdify.db
# restart clawdify

Gateway shows "Connected" but chat fails

Test the gateway directly:

curl -X POST http://localhost:18789/v1/chat/completions \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":"openclaw:main","messages":[{"role":"user","content":"hi"}]}'

If this returns 405 โ†’ endpoint disabled (see above). If it hangs โ†’ gateway may not have an active agent session yet.

Can't access from phone

  • Both devices must be on the same network (or Tailscale)
  • Check the PIN is correct
  • Clear browser cache if you recently updated

Environment Variables

Variable Required Default Description
OPENCLAW_GATEWAY_URL Yes http://localhost:18789 Gateway URL
OPENCLAW_GATEWAY_TOKEN Yes โ€” Gateway auth token
OPENCLAW_WORKSPACE_PATH Yes* โ€” OpenClaw workspace directory
CLAWDIFY_SESSION_SECRET Yes โ€” Session encryption key (32+ chars)
CLAWDIFY_PIN No โ€” Login PIN (empty = no auth)
CLAWDIFY_DB_PATH No ~/.clawdify/clawdify.db SQLite database path
OPENCLAW_SESSIONS_PATH No โ€” Session transcripts (for activity feed)
PORT No 3000 Server port

* Auto-detected by setup wizard. Required for file browser and project discovery.


Tech Stack

License

MIT

About

Clawdify unlocks productivity through a professional dashboard on top of OpenClaw

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors