qm – Multiplayer agent harness for work
qm — An Enterprise-Grade Multiplayer Agent Harness
qm is a sophisticated framework designed to deploy AI agents across an entire organization. While scaling an agent to a whole company can be simple complex, qm provides the necessary infrastructure to manage that complexity.
🚀 Core Philosophy & Capabilities
The system balances individual autonomy with collective collaboration. Every employee receives a private, isolated workspace to ensure their work remains independent, yet they can seamlessly transition into collaborative modes via projects, group messages, and shared channels.
Scoped Resource Management
Each user and each shared room is granted its own dedicated environment. This "scope" includes:
- Memory & Files: Private storage and context.
- Keychain View: Secure credential management.
- Permissions & Crons: Specific access rights and scheduled tasks.
- Web Apps & Durable Sandboxes: Persistent computing environments.
Vendor Agnostic Architecture
You are not locked into a single AI provider. qm allows you to select and swap your preferred harness and model. The core system is compatible with:
PiOpenCodeCodexClaude Code
Key Benefit: Because these different drivers all power the same core, your deployment remains portable and independent of any single vendor's ecosystem.
Organizational Control
Administrators can maintain a high-level overview and control via:
- Org-Level Config: Define the global security posture and available models.
- Internal App Distribution: Develop custom internal tools and publish them to specific user groups.
- Skill Management: Skills are owned by scopes but can be shared via grants. Admins can promote specific skills to the entire organization, and "skill packs" can be imported directly from Git repositories.
🛠️ Practical Applications
What can you actually achieve with qm?
- Unified Knowledge Retrieval: Search across the "company brain," including databases, emails, internal documentation, notes, and the open web.
- Internal Tooling: Create and deploy internal applications while ensuring their data stays synchronized.
- Communication Automation: The agent learns your specific writing style from previous correspondence to triage your inbox, apply labels, and draft replies on a set schedule.
- Developer Workflow: Operate within existing code repositories to monitor CI/CD, run test suites, check system logs, and open Pull Requests.
- Project Management: Track milestones in shared channels with automated updates and follow-up reminders.
🏗️ Technical Architecture
The system is built as a headless core with optional plugins.
The Execution Flow
Every interaction passes through the central core, which utilizes the chosen model/harness to generate a response.
- Persistence: A Postgres layer manages durable state, including session history and user data.
- The Sandbox: The agent utilizes a limited toolset. The most powerful tool is
execute, which runs commands inside a durable sandbox—a persistent computer where installed software remains available across sessions. - Plugin System: The Web UI, Admin Panel, and Public Portal are optional plugins interacting with the core via an HTTP API. Slack integration is an in-process plugin managed by the core via a direct service client.
Tech Stack
| Component | Technology |
|---|---|
| Core Logic | TypeScript on Node.js |
| HTTP Framework | Fastify |
| Slack Integration | Bolt |
| Web Frontend | Vite (Build) & Lit (Rendering) |
| Deployment | qm CLI (validates deployment directories) |
Note: All substrates (memory, session stores, sandboxes) are abstracted behind interfaces, allowing production implementations to be swapped via a single wiring file.
🛡️ Security & Secrets
qm adopts the security model of local agents (like Claude Code): the agent operates as a proxy for the user, utilizing that specific user's credentials and permissions. All actions are fully audited.
Security Postures
The organization defines a base security posture, which individual scopes can further restrict (but not loosen).
| Posture | Behavior |
|---|---|
| Strict | Every tool call requires human approval (except for "turn-ending" calls). |
| Auto (Default) | A classifier screens tool results and external data before they reach the model. |
| Dangerous |
The Command Policy: Regardless of the posture (even in Dangerous mode), a predeclared policy enforces hard denials on destructive actions, such as recursive deletions or destructive SQL queries.
For a full breakdown of the threat model and operator assumptions, refer to SECURITY.md.
📦 Deployment Guide
To deploy qm for your organization, create a deployment repository that depends on the @yc-software/qm package.
Initialize your deployment:
npm exec --yes --package=@yc-software/qm@latest -- \
qm init . \
--org <your-org-slug> \
--target <fly-or-aws>
Next Steps:
- Run
npm install. - Complete the initialization walkthrough to configure:
- Infrastructure settings.
- Web sign-in providers.
- Connector credentials.
- Optional Slack access.