QM is a multiplayer agent harness for startups that operates through Slack and a web interface. It gives each employee and room an isolated scope with its own memory, files, keychain view, permissions, scheduled jobs, web apps, and durable sandbox, while supporting collaboration in channels, group messages, and projects. Shared skills can be granted by scope, promoted by administrators, or imported from Git repositories; background work can run through crons, watches, and inbound webhooks, and internal apps can be published to selected users.
A headless TypeScript core runs directly on Node with Fastify and handles identity, policy, scheduling, persistence, and the agent loop. Deployments can select harnesses and models including Pi, OpenCode, Codex, and Claude Code. PostgreSQL stores sessions, memory, queues, and other durable state, while a fixed tool surface includes an execute tool that runs commands in each scope's isolated, persistent sandbox. Slack is an optional in-process Bolt plugin; the web UI, admin panel, and public portal are optional HTTP API plugins built with Vite and Lit. Each deployment keeps organization-specific configuration, tools, skills, sandbox images, and infrastructure in a deployment directory validated and deployed by the qm CLI.
Administrators can set organization-wide configuration, available harnesses and models, and a security posture. Strict mode pauses harness tool calls for human approval, Auto mode screens provenance-labelled external data and tool results with a classifier, and Dangerous mode disables content screening and pauses; a predeclared command policy with approvals and hard denials for operations such as recursive deletion or destructive SQL applies in every posture. Deployments run in the operator's own cloud account and are initialized from the @yc-software/qm package without requiring a source checkout; the project documents its threat model, operator assumptions, and known limitations in SECURITY.md.