Comprehensive update to complete the openclaw → ironclaw CLI rename across the codebase, fix build/runtime issues, and add test coverage for infra modules. CLI binary rename (openclaw → ironclaw): - Update DEFAULT_CLI_NAME and all argv parsing to recognize "ironclaw" binary - Extend package name sets (CORE_PACKAGE_NAMES, ALL_PACKAGE_NAMES) to include both "ironclaw" and "openclaw" for backward compatibility - Update NPM registry URL to fetch from ironclaw package - Update gateway lock detection, port listener classification, and launchd/systemd service scanning to recognize ironclaw-prefixed services and binaries - Update daemon inspect markers and legacy detection for ironclaw - Update voice-call extension core-bridge to resolve ironclaw package root - Fix install instructions in embeddings error messages (npm i -g ironclaw@latest) Web app / Next.js fixes: - Replace fragile `npx next` invocations with direct `node next-bin` resolution to avoid broken pnpm virtual-store symlinks in global installs - Add resolveNextBin() helper that resolves apps/web/node_modules/next directly Infra hardening: - Workspace templates: compute both source and dist fallback paths for template directory resolution (fixes templates not found in bundled builds) - Control UI assets: recognize both "openclaw" and "ironclaw" package names - Update-check, update-runner, update-cli: normalize ironclaw@ tag prefixes New tests: - Add openclaw-root.test.ts, ports-format.test.ts, update-global.test.ts - Add workspace-templates.test.ts and control-ui-assets.test.ts coverage - Add argv.test.ts coverage for ironclaw binary detection Test fixes (28 failures → 0): - Update all test assertions expecting "openclaw" CLI command output to "ironclaw" - Fix version.test.ts package name from "openclaw" to "ironclaw" - Fix camera/canvas temp path patterns in nodes-camera and program.nodes-media tests - Fix pairing message, telegram bot, channels, daemon, onboard, gateway tool, status, and profile test expectations Version: 2026.2.10-1.2 (published to npm as ironclaw@2026.2.10-1.2) Co-authored-by: Cursor <cursoragent@cursor.com>
Ironclaw
AI-powered CRM platform with multi-channel agent gateway, DuckDB workspace, and knowledge management.
Ironclaw is a personal AI assistant and CRM toolkit that runs on your own devices. It connects to your existing messaging channels (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, and more), manages structured data through a DuckDB-powered workspace, and provides a rich web interface for knowledge management and reporting.
Built on OpenClaw with Vercel AI SDK v6 as the default LLM orchestration layer.
Features
- Multi-channel inbox -- WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, Matrix, WebChat, and more.
- DuckDB workspace -- Structured data objects, file management, full-text search, and bulk operations through a local DuckDB-backed store.
- Web UI (Dench) -- Modern chat interface with chain-of-thought reasoning, report cards, media viewer, and a database explorer. Supports light and dark themes.
- Agent gateway -- Local-first WebSocket control plane for sessions, channels, tools, and events. Routes agent execution through lane-based concurrency.
- Vercel AI SDK v6 -- Default LLM engine with support for Anthropic, OpenAI, Google, Groq, Mistral, xAI, OpenRouter, and Azure. Full extended thinking/reasoning support.
- Knowledge management -- File tree, search index, workspace objects with custom fields, and entry-level detail views.
- TanStack data tables -- Sortable, filterable, bulk-selectable tables for workspace objects powered by
@tanstack/react-table. - Companion apps -- macOS menu bar app, iOS/Android nodes with voice, camera, and canvas capabilities.
- Skills platform -- Bundled, managed, and workspace-scoped skills with install gating.
Install
Runtime: Node 22+
From npm
npm install -g ironclaw@latest
ironclaw onboard --install-daemon
From source
git clone https://github.com/kumarabhirup/openclaw-ai-sdk.git
cd openclaw-ai-sdk
pnpm install
pnpm build
pnpm dev onboard --install-daemon
Quick start
# Start the gateway
ironclaw gateway --port 18789 --verbose
# Send a message
ironclaw message send --to +1234567890 --message "Hello from Ironclaw"
# Talk to the agent
ironclaw agent --message "Summarize today's tasks" --thinking high
Web UI
The web application lives in apps/web/ and is built with Next.js. It provides:
- Chat panel with streaming responses, chain-of-thought display, and markdown rendering (via
react-markdown+remark-gfm). - Workspace sidebar with a file manager tree, knowledge tree, and database viewer.
- Object tables with sorting, filtering, row selection, and bulk delete.
- Entry detail modals with field editing and media previews.
- Report cards with chart panels and filter bars.
- Media viewer supporting images, video, audio, and PDFs.
To run the web UI in development:
cd apps/web
pnpm install
pnpm dev
Configuration
Ironclaw stores its config at ~/.openclaw/openclaw.json. Minimal example:
{
agent: {
model: "anthropic/claude-opus-4-6",
},
}
Supported providers
| Provider | Environment Variable | Models |
|---|---|---|
| Anthropic | ANTHROPIC_API_KEY |
Claude 4/3.x, Opus, Sonnet, Haiku |
| OpenAI | OPENAI_API_KEY |
GPT-4o, GPT-4, o1, o3 |
GOOGLE_GENERATIVE_AI_API_KEY |
Gemini 2.x, 1.5 Pro | |
| OpenRouter | OPENROUTER_API_KEY |
100+ models |
| Groq | GROQ_API_KEY |
Llama, Mixtral |
| Mistral | MISTRAL_API_KEY |
Mistral models |
| xAI | XAI_API_KEY |
Grok models |
| Azure | AZURE_OPENAI_API_KEY |
Azure OpenAI models |
Thinking / reasoning
# Set thinking level (maps to AI SDK budgetTokens)
ironclaw agent --message "Complex analysis" --thinking high
# Levels: off, minimal, low, medium, high, xhigh
Channel setup
Each channel is configured in ~/.openclaw/openclaw.json under channels.*:
- WhatsApp -- Link via
ironclaw channels login. Setchannels.whatsapp.allowFrom. - Telegram -- Set
TELEGRAM_BOT_TOKENorchannels.telegram.botToken. - Slack -- Set
SLACK_BOT_TOKEN+SLACK_APP_TOKEN. - Discord -- Set
DISCORD_BOT_TOKENorchannels.discord.token. - Signal -- Requires
signal-cli+channels.signalconfig. - iMessage -- Via BlueBubbles (recommended) or legacy macOS-only integration.
- Microsoft Teams -- Configure a Teams app + Bot Framework.
- WebChat -- Uses the Gateway WebSocket directly, no extra config.
Chat commands
Send these in any connected channel:
| Command | Description |
|---|---|
/status |
Session status (model + tokens) |
/new or /reset |
Reset the session |
/compact |
Compact session context |
/think <level> |
Set thinking level |
/verbose on|off |
Toggle verbose output |
/usage off|tokens|full |
Per-response usage footer |
/restart |
Restart the gateway |
/activation mention|always |
Group activation toggle |
Architecture
WhatsApp / Telegram / Slack / Discord / Signal / iMessage / Teams / WebChat
|
v
+----------------------------+
| Gateway |
| (control plane) |
| ws://127.0.0.1:18789 |
+-------------+--------------+
|
+-- Vercel AI SDK v6 engine
+-- CLI (ironclaw ...)
+-- Web UI (Dench)
+-- macOS app
+-- iOS / Android nodes
Project structure
src/ Core CLI, commands, gateway, agent, media pipeline
apps/web/ Next.js web UI (Dench)
apps/ios/ iOS companion node
apps/android/ Android companion node
apps/macos/ macOS menu bar app
extensions/ Channel plugins (MS Teams, Matrix, Zalo, voice-call)
docs/ Documentation
scripts/ Build, deploy, and utility scripts
skills/ Workspace skills
Development
pnpm install # Install deps
pnpm build # Type-check + build
pnpm check # Lint + format check
pnpm test # Run tests (vitest)
pnpm test:coverage # Tests with coverage
pnpm dev # Dev mode (auto-reload)
Security
- DM pairing is enabled by default -- unknown senders receive a pairing code.
- Approve senders with
ironclaw pairing approve <channel> <code>. - Non-main sessions can be sandboxed in Docker (
agents.defaults.sandbox.mode: "non-main"). - Run
ironclaw doctorto surface risky or misconfigured DM policies.
Upstream
Ironclaw is a fork of OpenClaw. To sync with upstream:
git remote add upstream https://github.com/openclaw/openclaw.git
git fetch upstream
git merge upstream/main