Install

JinClaw is not the OpenClaw npm package; it is this repository's stack (Next.js + Node cloud API + Python daemon). If you are familiar with docs.openclaw.ai/install, think of the steps below as the equivalent clone → configure → run → verify flow for JinClaw.

System requirements

  • Node.js 18+ (20+ recommended) for server/ and frontend/
  • Python 3.12+ with project venv at repo root for the daemon (uvicorn)
  • MongoDB Atlas (or compatible URI) for the cloud control plane — set MONGODB_URI in server/.env
  • Windows, macOS, or Linux — native Windows supported; WSL2 is fine for Linux tooling

Recommended: clone and run the dev stack

From the repository root, install JS dependencies once, then start all three processes (daemon, cloud API, dashboard).

cd path\to\jinclaw

# Python venv at repo root (once)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"

cd server && npm install && cd ..
cd frontend && npm install && cd ..

# One command opens 3 terminals (daemon + API + Next)
.\start-dev.ps1

Cloud API (server/)

Copy server/.env.example to server/.env and set at minimum:

  • MONGODB_URI — Atlas connection string
  • JWT_SECRET — long random string for signing sessions
  • ENCRYPTION_KEY — for vault crypto (see server docs / Hostinger env)
  • APP_URLS — comma-separated browser origins, e.g. https://jinclaw.online,https://www.jinclaw.online,http://localhost:3000

Default port is 8080 unless you set PORT.

JinClaw Connector (lightweight local bridge)

For a browser-first experience you use the cloud dashboard immediately after signup. To attach your machine for filesystem, terminal, browser automation, and on-device vector memory, install the JinClaw Connector — a small Node process, not a full desktop application. It registers as a device and heartbeats to api.jinclaw.online.

# From repo: connector/
set JINCLAW_API_URL=https://api.jinclaw.online
set JINCLAW_TOKEN=<paste JWT from browser session / devtools Application storage>
node jinclaw-connector.mjs

State file: ~/.jinclaw/connector-state.json (deviceId). See connector/README.md for architecture and roadmap (mTLS, task pull, local execution APIs).

Local daemon (daemon/)

The daemon owns operational data on disk. It listens on 127.0.0.1:18789 by default (JINCLAW_DAEMON_PORT). CORS allows https://jinclaw.online, https://www.jinclaw.online, and http://localhost:3000 by default.

Windows autostart: see daemon/scripts/install-windows-autostart.ps1 and daemon/README.md in the repo.

Verify the install

  • Cloud API: GET http://localhost:8080/health returns { "status": "ok" }
  • Daemon: GET http://127.0.0.1:18789/local/health
  • Dashboard: open http://localhost:3000 — register/login hit the cloud API; chat/leads/tasks target the daemon when configured in the UI.

Production deploy (domain)

On a VPS (e.g. Hostinger), use docker/docker-compose.production.yml. Set APP_URLS=https://jinclaw.online,https://www.jinclaw.online in server/.env and build the web image with NEXT_PUBLIC_API_URL=https://api.jinclaw.online. Terminate TLS at nginx — see deploy/nginx.conf.example for upstreams to ports 3000 (web) and 8080 (API), including a /socket.io/ block for live logs.

From repo root: docker compose -f docker/docker-compose.production.yml --env-file server/.env up -d --build

Hostinger shared hosting (hPanel): deploy the marketing + dashboard as a static export to jinclaw.online (folder frontend/out after NEXT_OUTPUT=export + NEXT_PUBLIC_API_URL=https://api.jinclaw.online), and deploy the Node API with JavaScript hosting on api.jinclaw.online (source zip: server/ without node_modules — includes server.js for Hostinger's node server.js entry). Run scripts/package-hostinger.ps1 to rebuild zips under .hostinger-build/, then use Hostinger MCP hosting_deployStaticWebsite / hosting_deployJsApplication. Set API env vars (MongoDB, JWT, encryption) in hPanel for the Node app.

Integrations & roadmap

The marketing site lists the same categories of tools as modern agent OS products (chat apps, models, mail, dev tools). Connector depth varies by channel: today you ship workflows through the daemon API, dashboard, and your own workers. Treat WhatsApp-class channels as integration targets you wire with keys and outbound webhooks — not magic toggles until those modules land in-repo.

Troubleshooting

  • CORS errors: add your exact browser origin to APP_URLS (comma-separated).
  • Login always fails: confirm NEXT_PUBLIC_API_URL on the frontend matches where the API runs.
  • Daemon 404: run uvicorn with working directory = repo root so daemon.app resolves.

Next: production deploy splits jinclaw.online (static/Next) and api.jinclaw.online (Node). Keep secrets in the host environment — never commit .env.

Create account →