QM — Y Combinator's open-source multiplayer agent harness
Y Combinator's QM gives every employee an isolated agent sandbox, memory, and keychain — plus shared Slack channels. Swap Pi, Codex, or Claude Code. MIT.
Most agents are built like personal assistants; stretching one across a whole company gets messy fast. QM inverts that — it's designed for startups. Every employee gets an isolated workspace and works independently, while still collaborating with the same agent in Slack channels, group DMs, and projects. Each person and each room carries its own scoped memory, files, keychain view, permissions, crons, web apps, and durable sandbox.
It is deliberately vendor-neutral: Pi, OpenCode, Codex, and Claude Code all drive the same core, so a deployment isn't tied to one model provider. The core is headless TypeScript on Node with Fastify and Postgres. The agent has a small fixed tool surface, and one of those tools — `execute` — runs commands inside the scope's own sandbox, its durable computer where installed tools stay installed. Web UI, admin panel, and public portal are optional plugins over the core's HTTP API; Slack is an optional in-process plugin.
Security follows the local-coding-agent model: the agent acts as the person it works for, with their credentials and permissions, and everything is audited. An org picks one posture — Strict (every tool call pauses for approval), Auto (default; a classifier screens provenance-labelled external data and tool results), or Dangerous (no screening, no pauses) — and narrower scopes can only tighten it. The predeclared command policy for things like recursive deletes and destructive SQL applies in every posture, Dangerous included.
Who it's for: startup teams that want one shared agent without cross-contaminating everyone's context, and technical leads who want self-hosting without model-vendor lock-in. `qm init` scaffolds an org-owned deployment repo that runs in your own Fly or AWS account. A quirk worth noting: contributions are accepted as human-written prose proposals in `adrs/`, not code — the maintainers do the implementation.

FAQ
What is QM?
Y Combinator's open-source multiplayer agent harness, running in Slack and on the web. It's built for startups: each employee gets an isolated workspace, and the same agent also works collaboratively in channels, group messages, and projects — with per-person and per-room scoped memory, files, keychain view, permissions, crons, and durable sandbox.
Which models and harnesses does QM support?
Pi, OpenCode, Codex, and Claude Code all drive the same core and can be switched between, so a deployment isn't tied to any single vendor. Admins set which harnesses and models are available at the org level.
Is QM free? What license?
Yes — QM is open source under the MIT License except where otherwise noted, so commercial use is allowed. It's self-hosted: each deployment runs in the operator's own cloud account, so you pay for your own model calls and infrastructure.
How do I deploy QM for my org?
No source checkout needed. Create an org-owned deployment repo that depends on @yc-software/qm: `npm exec --yes --package=@yc-software/qm@latest -- qm init . --org <slug> --target <fly-or-aws>`, then npm install. Initialization materializes a deployment skill that walks through infrastructure, web sign-in, connector credentials, optional Slack access, deploy, and live verification.
How is QM different from a personal agent like Claude Code?
They're not competitors — Claude Code can serve as one of QM's harnesses. The difference is altitude: a personal agent serves one person on one machine, while QM adds the org layer — personal and shared scopes, one identity and config across Slack and web, admin-set security posture, skills shared by grant with admin-gated org-wide promotion, and background work via crons, watches, and inbound webhooks.