{"adoption": {"forks": 1705, "observed_at": "2026-08-28T04:11:06.494571+00:00", "stars": 14236}, "canonical_url": "https://ross.abutalabs.com/products/qm", "card": {"archived": false, "artifact_type": "application", "description": "Multiplayer agent harness for work.", "domain": ["large-language-models", "chatbots", "developer-tools", "self-hosted"], "enriched": true, "function": ["agent-framework", "chatbot", "chat-interface", "scheduling", "webhook", "secrets-management", "self-hosted"], "health_score": 100, "homepage": "https://x.com/qm__dev", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["yc-software/qm"], "name": "yc-software/qm", "platform": ["self-hosted"], "pushed_at": "2026-08-27T00:13:51+00:00", "repo": "yc-software/qm", "stars": 14236, "tags": ["multiplayer-agents", "slack-integration", "agent-harness", "scoped-memory", "sandboxed-execution", "internal-apps", "shared-skills", "org-administration", "ai-agents", "automation", "web-server", "docker", "nodejs", "typescript"], "topics": ["ai", "assistant", "harness", "qm"], "urls": [], "use_cases": ["deploy a company-wide AI assistant with per-employee isolated workspaces", "collaborate with an AI agent in Slack channels and group messages", "build and publish internal web apps maintained by an agent", "automate inbox triage and email drafting on a schedule", "have an agent run tests, open PRs, and monitor CI in an existing repository", "search internal notes, documents, databases, and the web from one assistant", "run background agent work with crons, watches, and inbound webhooks"], "what_it_is": "QM is a self-hostable multiplayer agent harness that lets every employee in a company work with AI agents in personal and shared scopes across Slack and the web. It provides per-scope memory, files, keychains, permissions, crons, and durable sandboxes, while supporting swappable agent harnesses and models such as Pi, OpenCode, Codex, and Claude Code.", "when_to_avoid": ["you only need a single-user personal coding assistant", "you want a fully managed SaaS with no self-hosting responsibility", "your team does not use Slack or want a web-based agent workspace", "you need a lightweight CLI agent rather than a full deployment with Postgres and sandboxes"], "when_to_choose": ["you want a shared, org-wide agent platform rather than a single personal assistant", "your team works in Slack and needs agents with the same identity on the web", "you need per-user and per-room scoped memory, permissions, and secrets", "you want to swap between agent harnesses and models without vendor lock-in", "you need sandboxed background automation like crons and webhooks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/qm", "repo": "yc-software/qm", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.494571+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:42.657173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aecc1a6005d83f2d6f8dace79c71a91a5884d8942ba01519ba95a9151e9e1594", "fetched_at": "2026-08-28T04:11:06.494571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yc-software/qm"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 2, "rhythm": 98}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 35, "days_push": 7, "days_rel": 16, "gap_med": 0, "n_releases_24m": 4}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}