The Problem
Organizations needing multi-agent AI collaboration currently face fragmented solutions—either rigid proprietary platforms with limited customization or disjointed open-source components that lack integrated gateway management, workspace configuration, and team orchestration out of the box. Existing tools often require stitching together separate systems for agent configuration, file editing, and gateway connectivity, creating operational overhead for teams wanting to deploy coordinated AI workforces.
What This Does
ChatClaw is a Next.js 16 application (src/) providing a complete multi-agent chat platform with integrated gateway management. The core architecture flows through src/lib/: gateway-ws.ts handles SSE streaming connections to OpenClaw or compatible gateways, gateway-rpc.ts manages RPC calls, and gateway-fetch.ts provides HTTP wrapper functionality. State management lives in src/lib/store.tsx while database operations use either IndexedDB (default browser storage via src/lib/db-indexeddb.ts) or Drizzle ORM with better-sqlite3 for server-side SQLite (src/lib/db-drizzle.ts). Agent configuration files (SOUL.md, IDENTITY.md, AGENTS.md, etc.) are edited through workspace file editors, and the AvatarPicker component (src/components/avatar-picker.tsx) offers shared Random/Emoji/Upload modes across company, agent, team, and user profiles. Authentication is optional via next-auth v5 (src/hooks/use-auth-session.ts) and disabled by default for local use.
How To Use It
Setup: Clone the repository and install dependencies with pnpm install (package.json uses pnpm). The repository includes a Dockerfile and docker-compose.yml for containerized deployment.
Configuration: Copy .env.example to .env and set required variables. Key settings include DBBACKEND (indexeddb or drizzle), AUTHENABLED and AUTHSECRET for cloud deployment, MULTICOMPANY flag, and CHATCLAWDATADIR for drizzle mode. Gateway configuration is edited via the UI's config editor or directly modifying openclaw.json.
Running it: Start development with pnpm dev (per README quick start), which runs the Next.js app at http://localhost:3000 and auto-detects your local OpenClaw gateway. For production, use docker compose up -d or build manually with docker build -t chatclaw . and docker run -p 3000:3000 -v chatclaw-data:/data chatclaw.
Real-World Use
A distributed team wanting to deploy specialized AI agents for customer support can use ChatClaw to create a company connected to their local OpenClaw gateway. Agents are configured through the workspace file editors—SOUL.md defines system instructions, TOOLS.md lists available functions, and HEARTBEAT.md tracks status. The team creates a group chat where agents reply sequentially, each seeing full conversation context. File uploads (images, documents) integrate through the paperclip button, with markdown rendering showing syntax-highlighted code blocks. The admin can test gateway connections before saving, switch between multiple conversations per agent, and manage team membership through the UI dialogs. The optional next-auth v5 setup enables cloud multi-tenant deployment when required.
Code Health & Issues
Tests/CI: One test file found; GitHub Actions workflow exists for Docker builds (\.github/workflows/docker-build.yaml) but full test coverage appears limited. Secrets/Config: .env.example is committed to the repo with placeholder values—no .env or actual secrets present, which is appropriate, but teams should ensure real secrets are excluded from version control. Database: IndexedDB is the default backend; the Drizzle/SQLite path requires CHATCLAWDATADIR setup and may have migration considerations for production use. Entry points: Several API routes exist (src/app/api/*) but the full request lifecycle and error handling across all endpoints hasn't been thoroughly audited. License: MIT license file present.
The Bottom Line
ChatClaw delivers a surprisingly complete multi-agent chat platform with genuine integration points for gateway configuration, agent workspace management, and team orchestration—all within a Next.js + Tailwind stack that feels intentional rather than assembled. The IndexedDB default lowers the barrier for local/development use, while the Drizzle option provides a path for cloud deployment. It's well-suited for teams wanting to deploy coordinated AI workforces without building the UI and configuration layer from scratch, though organizations requiring extensive customization beyond the provided agent config files may find the shadcn/ui component set limiting. Teams comfortable with TypeScript/Next.js ecosystems and OpenClaw-compatible gateways will find the most value here.