
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
Open-source local AI agent framework — Queen, Workers, Quorum. Experimental research tool.
An open research project in autonomous agent collectives.
A single agent thinks. A collective decides. We're building the swarm.
Queen, Workers, Quorum. Goals, skills, self-modification, wallet — local-first on your machine, with optional cloud swarm runtime on quoroom.io.
Local/cloud split:
quoroom.aiquoroom.io
Official channels only:
https://quoroom.ai (local app/download)https://quoroom.io (cloud app/public rooms/swarm instances)https://github.com/quoroom-ai@quoroom_ai_botIf you see impersonation or scam activity, report it to hello@quoroom.io.
See TRADEMARKS.md for full trademark usage terms.
Run a swarm of AI agents that pursue goals autonomously. The Queen strategizes, a swarm of Workers execute, and the Quorum votes on decisions. Agents learn new skills and modify their own behavior. In cloud mode, workers run on the swarm runtime host provisioned for the room on quoroom.io.
Continuous autonomous execution is becoming widespread. It's already happening behind closed doors. We believe it should happen in the open — publicly, transparently — so everyone can learn. Quoroom is an experiment: let's see what AI swarms can actually execute.
The architecture draws from swarm intelligence research: decentralized decision-making, emergent behavior from local interactions, and collective intelligence that exceeds any individual agent. The queen doesn't dictate — the swarm decides.
Quoroom is an open research project exploring autonomous agent collectives. Each collective (a Room) is a self-governing swarm of agents.
quoroom-ai/room is the engine: agent loop, quorum governance, goals, skills, self-modification, wallet, memory, task scheduling, MCP server, HTTP/WebSocket API, dashboard UI, and CLI.
| Repo | Purpose |
|---|---|
| room (this) | Engine + HTTP server + UI |
| cloud | Landing page, public rooms, PostgreSQL, swarm instance infrastructure |
Rooms — Create autonomous agent collectives with a Queen and Workers. Pause, restart, monitor activity.
Activity Controls — Throttle the queen per room: configurable cycle gap (sleep between runs), max turns per cycle, and quiet hours (time window where the queen rests). Plan-aware defaults (Pro/Max/API/None) apply automatically when you create a new room based on your Claude subscription tier.
Quorum Voting — Agents propose and vote on decisions. Majority, supermajority, or unanimous — you choose the threshold. All voters (keeper and workers) have equal weight. Ties are broken by the queen's vote by default.
Goals — Hierarchical goal decomposition with progress tracking. Set a top-level objective and let agents break it down.
Skills — Reusable agent capabilities with activation contexts and versioning. Agents learn and improve over time.
Self-Modification — Agents edit their own skills and files with full audit trail and one-click revert.
Memory — Entities, observations, and relations with semantic vector search (384-dim embeddings). Knowledge persists across sessions.
Wallet — EVM wallet with multi-chain support. USDC and USDT on Base, Ethereum, Arbitrum, Optimism, and Polygon. Encrypted keys (AES-256-GCM). Same address works on all chains — balance is aggregated across all networks.
On-Chain Identity — ERC-8004 agent identity on Base. Rooms register as on-chain agents with discoverable metadata. Reputation-ready.
Swarm Runtime (cloud mode) — Cloud rooms provision a single swarm runtime host. All queen/worker execution runs there; no additional execution routing layer exists.
Task Scheduling — Recurring (cron), one-time, on-demand, or webhook-triggered tasks with session continuity and auto-nudge.
Webhooks — HTTP endpoints to trigger tasks or wake the queen from any external service. GitHub push, Stripe payment, monitoring alert — any system that can POST to a URL can drive your agents. Per-task and per-room tokens, 30 req/min rate limiting, no auth setup required beyond the URL.
Keeper Control Model — Rooms run in a keeper-controlled mode with full dashboard/API control for agent and user tokens. Cloud member tokens are read-only plus limited collaboration endpoints (vote, resolve/reply, mark read).
Public Rooms — Toggle your room public on quoroom.io/rooms. Live room stats and activity appear on the leaderboard. Room registers with cloud and sends heartbeats every 5 minutes. No account needed to browse.
HTTP Server + REST API — Full REST API with dual-token auth (agent + user) and WebSocket real-time events. Cloud member role uses constrained collaboration access. Run quoroom serve to start.
Dashboard — React SPA served directly by your local Quoroom server at http://localhost:3700 (or your configured port). Manage rooms, agents, goals, memory, wallet — all from the browser, with local-first data storage.
Clerk — A fully functional keeper assistant in the dashboard. It can chat across all rooms, remember context and history, act proactively, and execute management actions (create/update rooms, tasks, reminders, messaging) while streaming live commentary about swarm activity.
Cloud Mode — Deploy to the cloud on quoroom.io and control your room remotely. Same dashboard works in both local and cloud mode. Cloud instances auto-detect their environment, support JWT-based auth, and serve the UI over HTTPS with strict CORS. Connect your Claude or Codex subscription from the remote Settings panel.
Inbox — Rooms can message the keeper and other rooms. Cross-room communication with reply threading. Agents escalate decisions, share updates, or request resources from neighboring rooms.
Credentials — Secure credential storage for API keys and secrets. Agents list and retrieve credentials at runtime without exposing raw values in prompts or logs.
Auto-updates — Update behavior depends on deployment mode. In local mode, the dashboard shows update controls (popup + Settings row) and lets you download/apply updates manually. In cloud mode, updates are managed automatically by the runtime with no manual update buttons in the UI.
┌─────────────────────────────────────────────────┐
│ Room │
│ ┌───────┐ ┌─────────┐ ┌──────────────────┐ │
│ │ Queen │ │ Workers │ │ Quorum │ │
│ │(LLM cfg)│ │(LLM cfg)│ │ propose → vote │ │
│ └───┬───┘ └────┬────┘ └──────────────────┘ │
│ │ │ │
│ ┌───┴───────────┴───────────────────────────┐ │
│ │ Agent Loop │ │
│ │ goals · skills · self-mod · memory │ │
│ └───────────────────────────────────────────┘ │
│ │
│ ┌────────┐ ┌──────────────┐ ┌────────────────┐ │
│ │ Wallet │ │ Swarm Runtime│ │ Task Scheduler │ │
│ │(EVM) │ │(local/cloud) │ │cron/once/hook │ │
│ └────────┘ └──────────────┘ └────────────────┘ │
│ │
│ ┌──────────────────────────────────────────┐ │
│ │ Auth: agent token + user token + member │ │
│ │ Access: agent/user full · member scoped │ │
│ └──────────────────────────────────────────┘ │
└────────────────────┬────────────────────────────┘
│
┌────────────┼────────────┐
│ │ │
MCP Server HTTP/REST WebSocket
(stdio) (port 3700) (real-time)
│
POST /api/hooks/
(webhooks — no auth)
task/:token · queen/:token
│
┌────────────┼────────────┐
│ │
┌──────┴──────┐ ┌───────┴───────┐
│ Dashboard │ │ Cloud Sync │
│ localhost │ │ quoroom.io │
└─────────────┘ │ /rooms page │
└───────────────┘
npm install -g quoroom
brew install quoroom-ai/quoroom/quoroom
Download from GitHub Releases. Installers add quoroom to your PATH automatically. No dependencies needed. The installer bundles only Node.js v20 — no third-party software, toolbars, or extensions are included.
Installer launchers:
.pkg: open /Applications/Quoroom Server.app.exe: Start Menu -> Quoroom Server -> Open Quoroom Server| Platform | Installer | Archive |
|---|---|---|
| macOS (Apple Silicon + Intel) | .pkg | .tar.gz |
| Linux x64 | .deb | .tar.gz |
| Windows x64 (signed) | .exe setup | .zip |
macOS
.pkg works on both architectures.pkg is codesigned + Apple-notarizedzsh -lic) so Homebrew/NVM-installed CLIs (claude, codex) are foundWindows
.exe installer (NSIS, SSL.com eSigner)quoroom to system PATH via registryclaude.cmd / codex.cmd are found.cmd wrappers (npm-installed CLIs) are auto-resolved to underlying .js scripts to bypass cmd.exe 8191-char argument limitLinux
.deb package (x64), installs to /usr/local/lib/quoroomquoroom uninstall
Removes Quoroom binaries, all data, and logs. Prompts for confirmation before proceeding.
# Start the HTTP/WebSocket API server + dashboard
quoroom serve
If you installed with the macOS .pkg or Windows .exe installer, you can also use the launcher app/shortcut instead of command line.
On first run, quoroom serve automatically registers the Quoroom MCP server in every AI coding tool you have installed (Claude Code, Claude Desktop, Codex, Cursor, Windsurf). Just restart your AI client once — after that, all mcp__quoroom__* tools are available automatically in every session.
Open http://localhost:3700 (or the port shown in your terminal). The dashboard and API run locally, and your room data stays on your machine by default.
MCP-only mode (no HTTP server):
quoroom mcpstarts just the stdio MCP transport, useful for scripting or testing. For normal use,quoroom serveis all you need.
The Clerk tab is your global assistant for the whole local system (not a single room).
claude), Codex subscription (codex), OpenAI API (openai:gpt-4o-mini), Anthropic API (anthropic:claude-3-5-sonnet-latest), Gemini API (gemini:gemini-2.5-flash)clerk while rooms are runningAPI key resolution for Clerk API models:
openai_api_key, anthropic_api_key, or gemini_api_key)clerk_openai_api_key / clerk_anthropic_api_key / clerk_gemini_api_key)OPENAI_API_KEY / ANTHROPIC_API_KEY / GEMINI_API_KEY)See full guide: docs/CLERK.md
The room engine exposes an MCP server over stdio. All tools use the quoroom_ prefix.
| Tool | Description |
|---|---|
quoroom_create_room | Create a new autonomous agent collective |
quoroom_list_rooms | List rooms by status |
quoroom_room_status | Get room status and summary |
quoroom_room_activity | Get recent room activity |
quoroom_pause_room | Pause a running room |
quoroom_restart_room | Restart a paused room |
quoroom_delete_room | Delete a room |
quoroom_configure_room | Update room configuration |
| Tool | Description |
|---|---|
quoroom_propose | Create a proposal for the quorum to vote on |
quoroom_vote | Cast a vote on a proposal |
quoroom_list_decisions | List quorum decisions |
quoroom_decision_detail | Get details of a specific decision |
| Tool | Description |
|---|---|
quoroom_set_goal | Set a room's primary objective |
quoroom_create_subgoal | Decompose a goal into sub-goals |
quoroom_update_progress | Log a progress observation |
quoroom_delegate_task | Delegate a task to a specific worker |
quoroom_complete_goal | Mark a goal as completed |
quoroom_abandon_goal | Abandon a goal |
quoroom_list_goals | List goals for a room |
| Tool | Description |
|---|---|
quoroom_create_skill | Create a reusable agent skill |
quoroom_edit_skill | Update a skill (increments version) |
quoroom_list_skills | List available skills |
quoroom_activate_skill | Activate a skill |
quoroom_deactivate_skill | Deactivate a skill |
quoroom_delete_skill | Delete a skill |
| Tool | Description |
|---|---|
quoroom_self_mod_edit | Edit a skill or file with audit logging |
quoroom_self_mod_revert | Revert a modification by audit ID |
quoroom_self_mod_history | View modification audit history |
| Tool | Description |
|---|---|
quoroom_create_worker | Create a named agent with system prompt |
quoroom_list_workers | List all workers |
quoroom_update_worker | Update a worker's configuration |
quoroom_delete_worker | Delete a worker |
| Tool | Description |
|---|---|
quoroom_schedule | Create a recurring (cron), one-time, on-demand, or webhook-triggered task |
quoroom_webhook_url | Get or generate the webhook URL for a task or room |
quoroom_list_tasks | List tasks by status |
quoroom_run_task | Execute a task immediately |
quoroom_task_progress | Check running task progress |
quoroom_task_history | View task run history |
quoroom_pause_task | Pause a scheduled task |
quoroom_resume_task | Resume a paused task |
quoroom_delete_task | Delete a task |
quoroom_reset_session | Clear session continuity for a task |
| Tool | Description |
|---|---|
quoroom_remember | Store facts, preferences, people, events |
quoroom_recall | Semantic + full-text search of memories |
quoroom_forget | Delete a memory |
quoroom_memory_list | List all memories |
| Tool | Description |
|---|---|
quoroom_wallet_create | Create an EVM wallet (multi-chain) |
quoroom_wallet_address | Get wallet address |
quoroom_wallet_balance | Check on-chain balance (USDC/USDT, all chains) |
quoroom_wallet_send | Send USDC or USDT on any supported chain |
quoroom_wallet_history | View transaction history |
quoroom_wallet_topup | Get wallet top-up URL |
| Tool | Description |
|---|---|
quoroom_identity_register | Register room as ERC-8004 on-chain agent |
quoroom_identity_get | Get on-chain identity (agentId, registry, URI) |
quoroom_identity_update | Update on-chain registration metadata |
| Tool | Description |
|---|---|
quoroom_send_message | Send a message to the keeper or another worker |
quoroom_inbox_send_room | Send a message to another room |
quoroom_inbox_list | List inbox messages |
quoroom_inbox_reply | Reply to a room message |
| Tool | Description |
|---|---|
quoroom_invite_create | Create an invite link for your room |
quoroom_invite_list | List invite links and usage |
quoroom_invite_network | View rooms in your invite network |
| Tool | Description |
|---|---|
quoroom_credentials_list | List stored credentials |
quoroom_credentials_get | Get a credential value |
| Tool | Description |
|---|---|
quoroom_resources_get | Get local system resources (CPU, memory, disk) |
| Tool | Description |
|---|---|
quoroom_browser | Control a headless browser for multi-step web flows |
| Tool | Description |
|---|---|
quoroom_save_wip | Save in-progress context for later continuation |
| Tool | Description |
|---|---|
quoroom_get_setting | Get a setting value |
quoroom_set_setting | Update a setting |
npm install # Install dependencies
npm run build # Typecheck + bundle MCP server + build UI
npm run build:mcp # Bundle MCP server only (esbuild)
npm run build:ui # Build UI SPA only (Vite)
npm run dev # Local-only dev (links + room)
npm run dev:with-cloud # Local dev + cloud (requires ../cloud)
npm run dev:isolated # Isolated local dev (room :4700 + UI, no cloud)
npm run dev:isolated:with-cloud # Isolated local dev + cloud
npm run dev:cloud # Cloud-only (runs ../cloud on :3715)
npm run dev:ui # UI dev server with hot reload
npm run typecheck # Type-check only (tsc --noEmit)
npm test # Run all tests (vitest, fork pool)
npm run test:watch # Watch mode
npm run test:e2e # End-to-end tests (Playwright)
# Windows
npm run dev:win # Local-only dev (same as npm run dev)
npm run dev:with-cloud:win # Local dev + cloud (requires ../cloud)
npm run dev:isolated:win # Windows equivalent of dev:isolated
npm run dev:isolated:with-cloud:win # Windows isolated + cloud
npm run build:windows:local # Local Windows build (PowerShell)
docker build -t quoroom .
docker run -p 3700:3700 quoroom
Cloud runtimes now prefer a centralized update source and expose diagnostics in status:
QUOROOM_UPDATE_SOURCE_URL — cloud endpoint for latest runtime release metadata (preferred source)QUOROOM_UPDATE_SOURCE_TOKEN — optional bearer token for update-source authQUOROOM_UPDATE_GITHUB_TOKEN — optional fallback GitHub token when direct fallback is neededGET /api/status includes updateDiagnostics:
lastCheckAt, lastSuccessAt, lastErrorAtlastErrorCode, lastErrorMessageupdateSource (cloud or github)nextCheckAt, consecutiveFailures (backoff visibility)Triggered by pushing a git tag (v*) → GitHub Actions multi-platform build:
.pkg (ARM64 + x64 via lipo), Swift tray app compiled, codesigned + Apple-notarized.exe installer, signed with SSL.com eSigner.deb package via fpmroom/
├── src/
│ ├── cli/ # CLI entry point (quoroom command)
│ ├── mcp/ # MCP server (stdio)
│ │ ├── server.ts # Tool registration
│ │ ├── db.ts # Database initialization
│ │ └── tools/ # 19 tool modules
│ ├── server/ # HTTP/WebSocket API server
│ │ ├── index.ts # Server bootstrap (local + cloud mode)
│ │ ├── router.ts # Request router
│ │ ├── auth.ts # Dual-token auth + CORS + cloud JWT
│ │ ├── access.ts # Role-based access control
│ │ ├── webhooks.ts # Webhook receiver (no-auth token endpoints)
│ │ ├── ws.ts # WebSocket real-time events
│ │ └── routes/ # REST API routes (19 modules)
│ ├── ui/ # React SPA dashboard
│ │ ├── App.tsx # Root component
│ │ ├── components/ # UI components (32 modules)
│ │ ├── hooks/ # React hooks
│ │ └── lib/ # API client, auth, storage, WebSocket
│ └── shared/ # Core engine
│ ├── agent-loop.ts # Worker agent loop with rate limiting
│ ├── agent-executor.ts # Claude Code CLI execution
│ ├── room.ts # Room lifecycle
│ ├── quorum.ts # Voting & decisions
│ ├── goals.ts # Goal decomposition
│ ├── skills.ts # Skill management
│ ├── wallet.ts # EVM wallet (multi-chain, USDC/USDT)
│ ├── identity.ts # ERC-8004 on-chain identity
│ ├── task-runner.ts # Task execution engine
│ ├── model-provider.ts # Multi-provider LLM support
│ ├── cloud-sync.ts # Cloud registration + heartbeat
│ ├── db-queries.ts # Database query layer
│ ├── schema.ts # SQLite schema (WAL mode)
│ ├── embeddings.ts # Vector embeddings (all-MiniLM-L6-v2)
│ └── __tests__/ # Test suite (907 tests)
├── e2e/ # Playwright end-to-end tests
├── installers/
│ ├── macos/ # Swift tray app (QuoroomTray.swift)
│ └── windows/ # NSIS installer + PowerShell/VBS scripts
├── scripts/
│ └── build-mcp.js # esbuild bundling
├── Dockerfile # Cloud runtime image
└── docs/ # Media assets + architecture docs
Tech stack: TypeScript (strict), React, Tailwind CSS, better-sqlite3, sqlite-vec, viem, MCP SDK, HuggingFace Transformers, node-cron, zod, esbuild, Vite, Vitest
Use your existing Claude or ChatGPT subscription, or bring an API key.
| Model string | Provider | Execution | Requires |
|---|---|---|---|
claude (default) | Claude Code CLI | Spawns CLI process | Claude Code installed |
codex | OpenAI Codex CLI | Spawns CLI process | npm i -g @openai/codex |
openai:gpt-4o-mini | OpenAI API | HTTP REST | OPENAI_API_KEY |
anthropic:claude-3-5-sonnet-latest | Anthropic API | HTTP REST | ANTHROPIC_API_KEY |
gemini:gemini-2.5-flash | Gemini API | HTTP REST | GEMINI_API_KEY |
CLI models (claude, codex) — Full agentic loop with tool use via the CLI. Session continuity via --resume. On Windows, .cmd wrappers are auto-resolved to underlying .js scripts to bypass the cmd.exe 8191-char argument limit.
API models (openai:*, anthropic:*, gemini:*) — Direct HTTP calls. Support multi-turn tool-calling loops. API keys resolve from: room credentials → Clerk-saved keys → environment variables. anthropic:* also accepts the claude-api: prefix. gemini:* uses Google's OpenAI-compatible endpoint.
Workers inherit the queen's model by default, or can use a separate API model.
MIT License. See LICENSE for details.
FAQs
Open-source local AI agent framework — Queen, Workers, Quorum. Experimental research tool.
The npm package quoroom receives a total of 0 weekly downloads. As such, quoroom popularity was classified as not popular.
We found that quoroom demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.