@qverisai/qverisbot
v2026.2.26
Published
QVerisBot - OpenClaw-based professional AI assistant with QVeris toolbox integrations
Readme
QVerisBot — OpenClaw with QVeris Universal Toolbox
QVerisBot is a production-focused distribution built by the QVeris AI team on top of OpenClaw. It keeps OpenClaw's local-first architecture and adds a QVeris-first product layer for professional workflows.
It answers you on the channels you already use (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, WebChat), plus extension channels like X, BlueBubbles, Matrix, Zalo, and Zalo Personal. It can speak and listen on macOS/iOS/Android, and render a live Canvas you control.
Why QVerisBot
- Built on OpenClaw, optimized for real deployment: keeps stable gateway/runtime architecture while improving defaults and onboarding.
- QVeris-first tool experience: integrate with 500+ providers and 10,000+ APIs via a single tool-search + tool-execute workflow.
- China-friendly channel strategy: stronger Feishu and regional ecosystem readiness without sacrificing global channel coverage.
- Faster first-run onboarding: CLI/macOS/web wizard now includes QVeris API setup and X channel credentials in guided flow.
OpenClaw vs QVerisBot (quick comparison)
| Area | OpenClaw (base platform) | QVerisBot (this repo) |
| :------------------- | :------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------- |
| Positioning | Local-first agent gateway + multi-channel runtime | OpenClaw-based distribution focused on professional tool use and faster production onboarding |
| Tool ecosystem | Built-in tools + extension mechanism | QVeris Universal Toolbox integration (search + execute), plus QVeris-first defaults |
| Web search default | Commonly configured with Brave/other providers | During onboarding, defaults web_search to QVeris Smart Search when QVeris is enabled |
| Channel focus | Broad global channels and plugin model | Adds stronger China-facing defaults/integration (especially Feishu), while keeping full OpenClaw channel coverage |
| First-run onboarding | Wizard-driven baseline setup | Enhanced wizard flow: QVeris API key setup + X channel credential setup integrated into onboarding |
Quick Start (5 minutes)
System requirements: Node.js 22.12+ (one-liner auto-installs if missing), Python 3.12+ (for skills)
CLI commands: Use qverisbot as the primary command; openclaw is a compatible alias. For example: qverisbot onboard, qverisbot gateway, qverisbot channels status — all work with openclaw as well.
1. npm install (recommended, fastest)
npm i -g @qverisai/qverisbot
qverisbot onboardAfter install, run qverisbot onboard — the wizard guides you through model, QVeris, X channel, and more.
2. One-liner (macOS / Linux)
curl -fsSL https://qveris.ai/qverisbot/install.sh | bashThe script detects Node.js and installs it if missing, then runs qverisbot onboard.
3. Windows PowerShell
irm https://qveris.ai/qverisbot/install.ps1 | iex4. From source (hackable)
git clone https://github.com/QVerisAI/QVerisBot.git
cd QVerisBot
pnpm install
pnpm ui:build # first run only
pnpm build
pnpm qverisbot onboard --install-daemonSee Source guide.
Verify: Start the gateway and test:
# npm install
qverisbot gateway --port 18789 --verbose
qverisbot agent --message "Hello QVerisBot" --thinking high
# from source
pnpm qverisbot gateway --port 18789 --verbose
pnpm qverisbot agent --message "Hello QVerisBot" --thinking highThe onboarding wizard guides you through: model auth, QVeris API key, web_search (defaults to QVeris Smart Search), X (Twitter) credentials, channels, and skills. For Feishu setup, see Source guide.
QVeris Universal Toolbox — The Core of QVerisBot
Subscriptions (OAuth): Anthropic (Claude Pro/Max) · OpenAI (ChatGPT/Codex)
OpenClaw is a personal AI assistant you run on your own devices. It answers you on the channels you already use (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, WebChat), plus extension channels like BlueBubbles, Matrix, Zalo, and Zalo Personal. It can speak and listen on macOS/iOS/Android, and can render a live Canvas you control. The Gateway is just the control plane — the product is the assistant.
If you want a personal, single-user assistant that feels local, fast, and always-on, this is it.
Website · Docs · Vision · DeepWiki · Getting Started · Updating · Showcase · FAQ · Wizard · Nix · Docker · Discord
Preferred setup: run the onboarding wizard (openclaw onboard) in your terminal.
The wizard guides you step by step through setting up the gateway, workspace, channels, and skills. The CLI wizard is the recommended path and works on macOS, Linux, and Windows (via WSL2; strongly recommended).
Works with npm, pnpm, or bun.
New install? Start here: Getting started
Sponsors
| OpenAI | Blacksmith |
| ----------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| |
|
Subscriptions (OAuth):
- OpenAI (ChatGPT/Codex)
Model note: while any model is supported, I strongly recommend Anthropic Pro/Max (100/200) + Opus 4.6 for long‑context strength and better prompt‑injection resistance. See Onboarding.
Models (selection + auth)
- Models config + CLI: Models
- Auth profile rotation (OAuth vs API keys) + fallbacks: Model failover
Install (recommended)
Runtime: Node ≥22.
What can you build with QVeris?
| Scenario | Tools Used | Workflow | | :-------------------------- | :-------------------------------------------- | :------------------------------------------------------------------------ | | Market Research Analyst | Google Search + Firecrawl + DeepSeek + Notion | Search competitors -> Scrape pricing pages -> Summarize -> Save to Notion | | Crypto Price Monitor | Binance + AlphaVantage + Finnhub | Query real-time BTC/ETH prices, analyze market sentiment | | Image Search Assistant | Brave Search + SerpApi + Shutterstock | Find images, reverse image search, access stock photos |
Get your QVeris API key
- Create account: qveris.ai → Sign Up
- Get API key: Dashboard → API Keys → Create New Key
- Use it: Run
pnpm openclaw onboard— the wizard will prompt for your key and configure QVeris +web_searchautomatically.
[!NOTE] QVeris offers a free tier. For production use, purchase credits at qveris.ai/dashboard.
What Else Makes QVerisBot Special
- OpenClaw + QVeris optimization layer — keeps OpenClaw's core reliability while adding QVeris-first defaults for practical business/research workflows
- Feishu Native Support — WebSocket-based deep integration, ideal for Chinese enterprise users
- Improved onboarding across CLI/macOS/web wizard flows — guided QVeris API key setup, auto-default
web_searchto QVeris Xiaosu Smart Search, and built-in X (Twitter) channel credential onboarding - Multi-channel inbox — WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Feishu, Microsoft Teams, Matrix, Zalo, WebChat
- Voice Wake + Talk Mode — always-on speech for macOS/iOS/Android
- Live Canvas — agent-driven visual workspace
- LLM Proxy Support — HTTP proxy for API calls in network-restricted environments
- One-command bot migration — export a tuned bot's knowledge, memory, and skills to a portable bundle and import it on any machine or OS without copying credentials
QVeris AI · Docs · DeepWiki · Source Guide · Discord
Migrating Your Bot
When you move a tuned bot to a new machine or operating system (for example, from macOS to Linux), a simple directory copy breaks because it carries absolute paths and gateway credentials that only make sense on the source host.
qverisbot migrate solves this by exporting only the portable experience — knowledge, memory, skills, and recent session summaries — while actively stripping secrets and rebuilding system-specific state on the target.
What is exported
| Content | Included | Notes |
| :------------------------------------------------- | :------: | :--------------------------------------------- |
| Agent workspace files (AGENTS.md, MEMORY.md, etc.) | ✅ | Secrets redacted before packing |
| Managed skills (~/.openclaw/agents/*/skills/) | ✅ | Redacted |
| Personal skills (~/.openclaw/skills/) | ✅ | Redacted |
| Recent session summaries (last 200) | ✅ | Previews redacted; included for context/memory |
| API keys, gateway tokens, provider credentials | ❌ | Never exported |
| Session raw transcripts | ❌ | Summaries only |
| Machine-specific config (openclaw.json) | ❌ | Re-generated on target via qverisbot onboard |
Export
# Export to an auto-named bundle in the current directory
qverisbot migrate export
# Export to a specific path
qverisbot migrate export --output ~/my-bot-backup.tar.gz
# Export a specific agent only
qverisbot migrate export --agent my-agent-id
# Export without session summaries
qverisbot migrate export --sessions-scope noneThe resulting .tar.gz bundle is self-contained and safe to share or store in version control (no secrets inside).
Import
# Import from a local bundle
qverisbot migrate import ./my-bot-backup.tar.gz
# Import from a remote URL (HTTPS)
qverisbot migrate import https://your-host.example.com/bot-bundle.tar.gz
# Import without resetting existing sessions
qverisbot migrate import ./my-bot-backup.tar.gz --no-reset-sessions
# Dry-run — show what would be placed without touching the filesystem
qverisbot migrate import ./my-bot-backup.tar.gz --dry-runAfter import, re-run qverisbot onboard (or qverisbot gateway restart) on the target machine to regenerate gateway credentials and service definitions for the new environment.
Doctor — diagnose migration issues
If a bot behaves unexpectedly after moving hosts, run the migration doctor:
qverisbot migrate doctor
# Check a specific bundle file before importing
qverisbot migrate doctor --bundle ./my-bot-backup.tar.gz
# Output machine-readable JSON for scripting
qverisbot migrate doctor --jsonThe doctor reports:
- Foreign OS path poison — workspace or session config containing
/Users/on Linux,/home/on macOS, or Windows paths on a POSIX host. - Gateway token drift — running gateway token differs from the value in config (causes "token mismatch" errors in Web UI and channels).
- Bundle validation — manifest version compatibility and content integrity before an import.
Recommended cross-OS migration flow
# On the source machine
qverisbot migrate export --output bot-bundle.tar.gz
# Transfer the bundle (scp, rsync, cloud storage, etc.)
scp bot-bundle.tar.gz user@new-host:~/
# On the target machine — set up fresh credentials first
qverisbot onboard
# Then import the tuned experience on top
qverisbot migrate import ~/bot-bundle.tar.gz
# Verify everything is clean
qverisbot migrate doctorTroubleshooting
qverisbot: command not found after npm i -g
Your npm global bin directory is likely not in your shell's PATH.
# 1. Find where npm puts global binaries
npm config get prefix
# e.g. /Users/you/.npm-global → bin dir is /Users/you/.npm-global/bin
# 2. Add it to PATH (zsh — macOS default)
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# 3. Verify
qverisbot --versionbash:
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcfish:
echo 'set -gx PATH (npm config get prefix)/bin $PATH' >> ~/.config/fish/config.fish
source ~/.config/fish/config.fishAlternatively, run without modifying PATH:
# Use npx (always works, no global install needed)
npx @qverisai/qverisbot onboard
# Or use the full path directly
$(npm config get prefix)/bin/qverisbot onboardReference
System requirements
| Component | Minimum | Recommended | | :-------- | :------ | :----------------- | | Node.js | 22.12.0 | 22.x LTS | | pnpm | 10.x | 10.23.0+ | | Python | 3.12 | 3.12+ (for skills) |
Default behavior on channels
On Telegram, WhatsApp, Signal, iMessage, Microsoft Teams, Discord, Google Chat, Slack:
- DM pairing (
dmPolicy="pairing"/channels.discord.dmPolicy="pairing"/channels.slack.dmPolicy="pairing"; legacy:channels.discord.dm.policy,channels.slack.dm.policy): unknown senders receive a short pairing code and the bot does not process their message. - Approve with:
openclaw pairing approve <channel> <code>(then the sender is added to a local allowlist store). - Public inbound DMs require an explicit opt-in: set
dmPolicy="open"and include"*"in the channel allowlist (allowFrom/channels.discord.dm.allowFrom/channels.slack.dm.allowFrom).
OpenClaw upstream reference
QVerisBot is built on OpenClaw. For deep architecture, channel internals, platform operations, and complete config surface, use the upstream docs directly:
- Docs index: https://docs.openclaw.ai
- Architecture: https://docs.openclaw.ai/concepts/architecture
- Gateway runbook: https://docs.openclaw.ai/gateway
- Configuration (all keys): https://docs.openclaw.ai/gateway/configuration
- Channels index: https://docs.openclaw.ai/channels
- Security: https://docs.openclaw.ai/gateway/security
- Web / Control UI: https://docs.openclaw.ai/web
- Remote access: https://docs.openclaw.ai/gateway/remote
Popular deep links
- Onboarding wizard: https://docs.openclaw.ai/start/wizard
- Tailscale: https://docs.openclaw.ai/gateway/tailscale
- Nodes: https://docs.openclaw.ai/nodes
- Browser tool: https://docs.openclaw.ai/tools/browser
- Skills: https://docs.openclaw.ai/tools/skills
- Troubleshooting: https://docs.openclaw.ai/channels/troubleshooting
QVerisBot-specific docs
- Source setup + Feishu guide:
docs/qverisbot-from-source.md - Bot migration (cross-OS): see Migrating Your Bot above —
qverisbot migrate export|import|doctor - QVeris AI integrations: https://qveris.ai/integrations
- QVeris dashboard / API keys: https://qveris.ai/dashboard
About QVerisBot
QVerisBot is developed by the QVeris AI team, based on the open-source OpenClaw project (formerly Clawdbot & Moltbot).
- QVeris AI — QVeris Universal Toolbox
- QVerisBot GitHub — Source code
- OpenClaw — Base project
- Documentation — Full documentation
Star History
Everything we built so far
Core platform
- Gateway WS control plane with sessions, presence, config, cron, webhooks, Control UI, and Canvas host.
- CLI surface: gateway, agent, send, wizard, and doctor.
- Pi agent runtime in RPC mode with tool streaming and block streaming.
- Session model:
mainfor direct chats, group isolation, activation modes, queue modes, reply-back. Group rules: Groups. - Media pipeline: images/audio/video, transcription hooks, size caps, temp file lifecycle.
Channels
- Channels: WhatsApp (Baileys), Telegram (grammY), Slack (Bolt), Discord (discord.js), Google Chat (Chat API), Signal (signal-cli), BlueBubbles (iMessage, recommended), iMessage (legacy), Feishu (QVerisBot extension), Microsoft Teams (extension), Matrix (extension), Zalo (extension), Zalo Personal (extension), WebChat.
- Group routing: mention gating, reply tags, per-channel chunking and routing.
Apps + nodes
- macOS app: menu bar control plane, Voice Wake/PTT, Talk Mode overlay, WebChat, debug tools, remote gateway control.
- iOS node: Canvas, Voice Wake, Talk Mode, camera, screen recording, Bonjour pairing.
- Android node: Canvas, Talk Mode, camera, screen recording, optional SMS.
- macOS node mode: system.run/notify + canvas/camera exposure.
Tools + automation
- Browser control: dedicated Chrome/Chromium, snapshots, actions, uploads, profiles.
- Canvas: A2UI push/reset, eval, snapshot.
- Nodes: camera snap/clip, screen record, location.get, notifications.
- Cron + wakeups; webhooks; Gmail Pub/Sub.
- Skills platform: bundled, managed, and workspace skills with install gating + UI.
- QVeris Universal Toolbox: search + execute across 500+ providers and 10,000+ APIs — see qveris.ai/integrations.
Runtime + safety
- Channel routing, retry policy, and streaming/chunking.
- Presence, typing indicators, and usage tracking.
- Models, model failover, and session pruning.
- Security and troubleshooting.
Ops + packaging
- Control UI + WebChat served directly from the Gateway.
- Tailscale Serve/Funnel or SSH tunnels with token/password auth.
- Nix mode for declarative config; Docker-based installs.
- Doctor migrations, logging.
How it works (short)
WhatsApp / Telegram / Slack / Discord / Google Chat / Signal / iMessage / BlueBubbles / Feishu / Microsoft Teams / Matrix / Zalo / WebChat
│
▼
┌───────────────────────────────┐
│ Gateway │
│ (control plane) │
│ ws://127.0.0.1:18789 │
└──────────────┬────────────────┘
│
├─ Pi agent (RPC)
├─ CLI (qverisbot / openclaw …)
├─ WebChat UI
├─ macOS app
└─ iOS / Android nodesChat commands
Send these in WhatsApp/Telegram/Slack/Google Chat/Microsoft Teams/WebChat (group commands are owner-only):
/status— compact session status (model + tokens, cost when available)/newor/reset— reset the session/compact— compact session context (summary)/think <level>— off|minimal|low|medium|high|xhigh/verbose on|off/usage off|tokens|full— per-response usage footer/restart— restart the gateway (owner-only in groups)/activation mention|always— group activation toggle (groups only)
Agent to Agent (sessions_* tools)
sessions_list— discover active sessions (agents) and their metadata.sessions_history— fetch transcript logs for a session.sessions_send— message another session; optional reply‑back ping‑pong + announce step (REPLY_SKIP,ANNOUNCE_SKIP).
Details: Session tools
Skills registry (ClawHub)
ClawHub is a minimal skill registry. With ClawHub enabled, the agent can search for skills automatically and pull in new ones as needed.
Configuration
Minimal ~/.openclaw/openclaw.json (model + defaults):
{
agent: {
model: "anthropic/claude-opus-4-6",
},
}Full configuration reference (all keys + examples).
Security model (important)
- Default: tools run on the host for the main session, so the agent has full access when it's just you.
- Group/channel safety: set
agents.defaults.sandbox.mode: "non-main"to run non‑main sessions (groups/channels) inside per‑session Docker sandboxes; bash then runs in Docker for those sessions. - Sandbox defaults: allowlist
bash,process,read,write,edit,sessions_list,sessions_history,sessions_send,sessions_spawn; denylistbrowser,canvas,nodes,cron,discord,gateway.
Details: Security guide · Docker + sandboxing · Sandbox config
Channel setup
- Link the device:
qverisbot channels login(stores creds in~/.openclaw/credentials). - Allowlist who can talk via
channels.whatsapp.allowFrom. - If
channels.whatsapp.groupsis set, it becomes a group allowlist; include"*"to allow all.
Telegram
- Set
TELEGRAM_BOT_TOKENorchannels.telegram.botToken(env wins). - Optional: set
channels.telegram.groups(withchannels.telegram.groups."*".requireMention); when set, it is a group allowlist (include"*"to allow all).
{
channels: {
telegram: {
botToken: "123456:ABCDEF",
},
},
}Slack
- Set
SLACK_BOT_TOKEN+SLACK_APP_TOKEN(orchannels.slack.botToken+channels.slack.appToken).
Discord
- Set
DISCORD_BOT_TOKENorchannels.discord.token(env wins). - Optional: set
commands.native,commands.text, orcommands.useAccessGroups, pluschannels.discord.allowFrom,channels.discord.guilds, orchannels.discord.mediaMaxMbas needed.
{
channels: {
discord: {
token: "1234abcd",
},
},
}Signal
- Requires
signal-cliand achannels.signalconfig section.
BlueBubbles (iMessage)
- Recommended iMessage integration.
- Configure
channels.bluebubbles.serverUrl+channels.bluebubbles.passwordand a webhook (channels.bluebubbles.webhookPath). - The BlueBubbles server runs on macOS; the Gateway can run on macOS or elsewhere.
iMessage (legacy)
- Legacy macOS-only integration via
imsg(Messages must be signed in).
Microsoft Teams
- Configure a Teams app + Bot Framework, then add a
msteamsconfig section. - Allowlist who can talk via
msteams.allowFrom; group access viamsteams.groupAllowFromormsteams.groupPolicy: "open".
Feishu
- QVerisBot-native deep integration via WebSocket; ideal for Chinese enterprise users.
- See Feishu setup guide.
WebChat
- Uses the Gateway WebSocket; no separate WebChat port/config.
Community
See CONTRIBUTING.md for guidelines, maintainers, and how to submit PRs. AI/vibe-coded PRs welcome!
Special thanks to Mario Zechner for his support and for pi-mono. Special thanks to Adam Doppelt for lobster.bot.
Thanks to all clawtributors:
