How yc-software/qm works
QM is a self-hosted multiplayer agent harness: a person starts work in Slack or the web app, the shared core runs a turn through a selectable harness and model, and tools can execute in an isolated scope sandbox. The graph also preserves documented admin, memory, skills, web-app deployment, and background-work capabilities. The README documents the main service boundaries; sampled source and the SOURCE INDEX support several internal links. Some feature implementations were not sampled, so uncertain connections are omitted.
Main entry points: orchestrator.ts Turn orchestrator · server.ts HTTP API · harness-router.ts Harness router · resolution-service.ts Scope policy
Components 21
User surfaces
- Slack plugin
src/slack/turn-handler.ts - Web app
plugins/web-ui/src/main.ts
Agent runtime
- HTTP API
src/api/server.ts - API routes
src/api/routes/route.ts - Turn orchestrator
src/core/orchestrator.ts - Harness router
src/harness/harness-router.ts - Model providers
src/model/pi-models.ts - Scope sandbox
src/sandbox/sandbox.ts
Identity and policy
- Identity and auth
src/auth/capability-token.ts - Scope policy
src/resolution/resolution-service.ts - Admin controls
src/admin/admin-service.ts
Workspace capabilities
- Sessions
src/sessions/session-store.ts - Scoped memory
src/memory/memory-service.ts - Shared skills
src/skills/skill-sync-engine.ts - Web app deployments
src/deploy/deploy-service.ts
Background and operations
- Background work
src/cron/runtime.ts - Scheduled watches
src/loops/runner.ts - Inbound webhooks
src/webhooks/webhook-receiver.ts - Postgres
src/persistence/pg-pool.ts - Org deployment
cli/src/commands/infra.ts
Other components
- People
Connections 24
- People → Slack plugin: messages
- People → Web app: uses
- Slack plugin → HTTP API: calls core
- Web app → HTTP API: uses API
- HTTP API → API routes: dispatches
src/api/server.ts - API routes → Identity and auth: authenticates
src/api/routes/route.ts - HTTP API → Turn orchestrator: serves turns
- Turn orchestrator → Harness router: selects harness
src/core/orchestrator.ts - Harness router → Model providers: selects model
src/harness/harness-router.ts - Turn orchestrator → Scope sandbox: runs tools
src/core/orchestrator.ts - Turn orchestrator → Sessions: records history
src/core/orchestrator.ts - HTTP API → Postgres: persists state
- Turn orchestrator → Scope policy: resolves scope
src/core/orchestrator.ts - Scope policy → Identity and auth: checks posture
src/resolution/resolution-service.ts - Turn orchestrator → Scoped memory: uses memory
- Admin controls → Scope policy: sets controls
- Admin controls → Harness router: chooses harnesses
- Shared skills → Org deployment: imports packs
- People → Web app deployments: publishes apps
- People → Background work: schedules work
- People → Scheduled watches: configures watches
- People → Inbound webhooks: sends events
- Background work → Postgres: stores state
- Org deployment → HTTP API: deploys runtime