Multiplayer agent harness for work.

★ 15,671⑂ 1,947
TypeScriptCreated 2026-07-29x.com/qm__dev
15,671
stars
+51+55
1,947
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

A multiplayer agent harness for work. In Slack and on the web.
Run it in your own cloud, with your own models and keys.






Deploy · How it works · Security model · Customize · Contribute · Documentation



 Overview

Most agents are designed like personal assistants. You can make one work for a whole
company, but it quickly gets complex. QM is designed for startups. Employees each get
their own isolated workspace, and can also collaborate with the agent in channels, group messages, and projects.

Each person and each room has its own scoped memory, files, keychain view, permissions,
crons, web apps, and durable sandbox.

It's built with open source in mind. Pick your own model and switch between models; Pi
runs models from many providers, so a deployment isn't tied to any single vendor.

 Setup

Tell your coding agent of choice Let's deploy https://github.com/yc-software/qm. From here, it should follow the deployment guide in this repo.

For less setup, you can also use a hosted version of QM: Agent 37, E2B, or DigitalOcean.

If you're an infra provider interested in offering a hosted version of QM, feel free to reach out.

If you're at a bigger company and are interested in a hosted version of QM, let us know here.

 Features

- Personal and shared scopes. People customize the agent to be _theirs_, and still
  work with it collaboratively in Slack channels and projects.
- Slack and web. The same identity and configuration carries between Slack and the
  web app.
- Admin control. Set org-level configuration, security and sharing postures. Choose which
  models are available.
- Web apps. Spin up custom internal apps and publish them to the right people.
- Shared skills. Skills are scope-owned and shareable by grant, with admin-gated
  promotion to the whole org and skill packs imported from git repositories.
- Background work. Crons, watches, and inbound webhooks work while you're away.

 What you can do with it

- Search internal notes, email, documents, databases, and the web together
- Build internal apps, publish them to the right people, and keep their data current
- Learn your writing voice from past sends, then triage your inbox on a schedule —
  labels and reply drafts included
- Work in an existing repository: run tests, open PRs, monitor CI, check system logs
- Track a project in a shared channel and post updates and follow-ups

 Architecture

mermaid
flowchart LR
  DB[("Postgressessions · memory · queue")]

  subgraph CORE["Headless core"]
    API["API · identity · policy · scheduler"]
    LOOP["Agent loop(Pi)"]
    API  LOOP
  end

  SBX["Per-scope sandboxfiles · tools · logged-in services"]

  DB  API
  LOOP  SBX


Core requires Postgres: set DATABASE_URL. Tests need one too: DATABASE_URL= npm test creates a
throwaway database per test file and per test app. To exercise a branch against a real model and real Postgres, run
npm run dev-instance:web for the web UI and settings or npm run dev-instance:slack for Slack.
Use npm run dev-i

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON