Resource Evaluation: Switch (Flint AI / SandboxAQ, agent-human chat bridge)
URL: https://github.com/sandbox-quantum/switchType: GitHub repository (Apache 2.0 + Commons Clause), self-hosted server + Electron desktop console + connectors for Claude Code / Codex / OpenCode Evaluation date: 2026-08-27 Evaluator: Claude Code Ultimate Guide Team Guide version: 3.42.0 Method: source analysis of a repository clone, main branch (pushed 2026-08-26), plus gh api repos/sandbox-quantum/switch for repository metadata. No install, no server deployment, no live Matrix room was run against it.
Content summary
Switch is infrastructure connecting AI agents and humans in the same conversation, in the chat apps a team already uses (Slack, Microsoft Teams, Discord, Telegram, Mattermost). It uses Matrix (server Tuwunel) as the internal message bus: every participant, human, agent, or collaboration bridge, is a Matrix client (matrix-nio). A Switch room maps to one external channel via a database row, so the mapping survives a restart.
Three components: core/switch_core/ (FastAPI server, the Agent Bridge agents register against and authenticate to via API key, plus the collaboration bridges); gateway/ (React admin UI for agents, rooms, resources, keys); console/ (an Electron desktop app, forked with upstream attribution, that manages local coding-agent sessions, which rooms an agent belongs to, and auto-starts a Claude Code session when addressed in Slack with none running).
The protocol (docs/official/internals/agent-protocol.md): one SSE stream down per connection, HTTP up for every agent action, four connection models (always_on, session_addressable, auto_session, session_passive) describing how an agent is actually reachable rather than assuming uniform liveness. Authorization is a single chokepoint (authz.py): can(principal, action, resource), an agent-initiated request resolves to its owner's identity and inherits exactly that owner's permissions, public/private visibility per resource.
The Claude Code connector (connectors/claude-code-plugin/hooks/switch_hook.py) hooks into Claude Code's pre/post tool-call lifecycle to mediate actions and report events back to the bridge; equivalent connectors exist for Codex and OpenCode.
The core mechanism, verified in code
core/switch_core/authz.py is a small, pure module (no DB, no I/O), 89 lines: Action = Literal["read", "write", "delete"], one can() function, uniform across References, Documents, Packages, and Rooms. Consolidates what the module's own docstring says was previously scattered as ad-hoc owner == user or public or admin checks across call sites, a real simplification if the claim holds across the codebase (not independently traced call-site by call-site in this pass).
docs/official/internals/collaboration-bridge.md documents the bridge adapter contract directly: start, stop, send_message, update_message, delete_message, send_typing, create_channel, add_agents_to_channel, translate_inbound/translate_outbound. Five adapters ship (Slack Socket Mode, Mattermost WebSocket, Discord Gateway WebSocket, Telegram Bot API polling, Microsoft Teams as a self-hosted HTTP listener, the only one requiring a public address). The bridge itself is a Matrix participant: it joins rooms and only sees what happens after it joins, a real constraint on backfilling history through a newly added bridge, not just a design note.
Distribution is more production-shaped than a single GitHub repo usually is at six weeks old: docs/official/deploy/self-host.md documents a Docker Compose artifact (ghcr.io/sandbox-quantum/standalone-compose) and a Helm chart (oci://ghcr.io/sandbox-quantum/charts/switch), both stamped with the same release version, plus a dedicated RELEASING.md at repo root.
Project health
Measured on main, pushed 2026-08-26, via local git log and gh api repos/sandbox-quantum/switch.
| Metric | Value |
|---|---|
| Created | 2026-07-16 (about 6 weeks old at evaluation date) |
| Total commits | 449 |
Louis Amaudruz (Louis Amaudruz + amaudruz) | 359 commits (80%) |
| Christian McDermott | 36 commits (8%) |
| Third human, Paul Abbazia | 5 commits (1%) |
| Bot/automation accounts | switch-releaser, switch-worker-louis-remote, socket-fix[bot], github-actions[bot], dependabot[bot], cla-assistant[bot], autofix-pr-bot[bot] |
| GitHub stars | 252 |
| Forks | 13 |
| Open issues | 12 |
| Core package version | 0.21.0 (core/pyproject.toml), pre-1.0 |
| License field (GitHub API) | NOASSERTION (Commons Clause modification is not an SPDX-recognized license, GitHub cannot classify it) |
Bus factor close to 1, not exactly 1. One person at 80%, a second at 8%, both real humans with sustained contribution (not a single-commit drive-by), backed by SandboxAQ (a funded quantum-security company, not a solo side project) under the product name Flint AI. 252 stars in 6 weeks is faster traction than most entries on this repo's watch list crossed at their own evaluation point (fp.dev and ICM were watched at far lower counts). Weigh this against: no independent production-adoption story found in this pass, no second organization's fork or contribution visible in the commit list, and the license's NOASSERTION status on GitHub is itself a minor adoption friction (automated license scanners in enterprise pipelines will flag it for manual review).
Where it sits relative to the guide's existing coverage
Three sections were checked as candidate homes before concluding this is a genuine gap, not a placement failure:
guide/core/memory-systems.md §4.7 ("Why the Team Gap Is Structural") documents six barriers to semantic team memory (single-tenant storage, OAuth cost, taxonomy standards, enterprise buyers). Switch has no embedding store and no retrieval layer; it is a real-time bus, not a memory system. authz.py's owner-inheritance model is a relevant data point on the OAuth-cost barrier specifically, but placing Switch itself in this section would misclassify what it is.
guide/ecosystem/third-party-tools.md "Multi-Agent Orchestration" (abtop, Conductor, Agent Orchestrator, lines 1409-1536) and "External Orchestration Frameworks" (Ruflo, Athena Flow, Pipelex + MTHDS) share one axis: multiple instances of the same coding agent, on one machine, coordinated through git worktrees and PR/CI feedback. Switch's axis is different: heterogeneous agents (Claude Code, Codex, LangChain, anything speaking the protocol) reaching humans on five external chat platforms, mediated through a governed identity model. Not a variation of the existing entries, a different category.
guide/ecosystem/ai-ecosystem.md §8.1 "agent-chat" (lines 1655-1666) is tagged "Slack-like" in the guide's own prose, which reads as coverage of the same space until the code is checked: it is a read-only SSE dashboard over Gas Town's beads.db and multiclaude's JSON logs, no live external platform connection, no auth model, explicitly incompatible with standalone Claude Code. Structurally a monitoring tool, not a bridge.
third-party-tools.md "Known Gaps" (lines 1850-1866), the section that already names capability holes the guide has identified but not filled (Sandcastle, fp.dev, and others), has no entry for "cross-platform agent-human chat bridge with governance." That confirms the gap rather than resolving it.
Scoring
| Criterion | Score | Justification |
|---|---|---|
| Technical novelty | 4 | No comparable entry exists anywhere in the guide's current coverage; a formalized agent-liveness protocol (four connection models) and an owner-inheritance authz model are both real design decisions, not marketing claims |
| Production reliability | 2 | Pre-1.0 (0.21.0), 6 weeks old, bus factor close to 1 (80% one author), no independently confirmed production deployment found outside the vendor's own demo videos |
| Documentation quality | 4 | Full published docs site (docs/official/), an explicit agent-protocol spec, a collaboration-bridge adapter contract, self-host instructions with pinned versioned artifacts |
| Adoptability | 2 | Requires operating a Matrix homeserver plus N bridge processes; heavier operational footprint than most tools this guide covers for individual Claude Code users, though Switch Console lowers the bar for a first trial without self-hosting |
| Guide value | 3 | Fills a real, previously unfilled category gap, but as a single-vendor early example with no comparable peer yet, not a category with enough breadth for a dedicated comparison page |
| Overall | 3 | Useful addition, not urgent. Real category gap-filler, but too young and too single-vendor for more than a pointer. |
This overall score is one point above the 2/5 a prior assessment estimated from a summary alone, without access to the clone's git history or gh api metrics. The 252-star, 6-week traction and the Docker Compose/Helm release engineering found in this pass are stronger production-shape signals than "cloned today, zero recul terrain" assumed; the bus-factor and pre-1.0 concerns that assessment raised hold up and are reflected in the Production reliability and Adoptability scores.
Decision
Do not integrate a dedicated guide section. Add one line to third-party-tools.md "Known Gaps" naming the category and citing Switch as the first observed candidate, plus a watch-list entry.
The guide's precedent for a dedicated file (ai-executive-agents.md, agent-harness-landscape.md) is a comparison of many peer projects with a routing table, not a write-up of a single vendor. No peer to Switch (a governed, multi-platform, multi-framework agent-human chat bridge) was found anywhere in this evaluation's research; writing a standalone section now would read as a product page for one company's OSS release, not guide-neutral coverage.
Revisit trigger: a second, independent chat-bridge tool with comparable scope appears (making a comparison table possible), or Switch reaches a tagged 1.0.0 release, or an independently documented production deployment (not from SandboxAQ/Flint AI) surfaces.
Sources
All paths relative to a clone of github.com/sandbox-quantum/switch at main (pushed 2026-08-26): README.md, CLAUDE.md, LICENSE, RELEASING.md, core/switch_core/authz.py, core/switch_core/matrix_admin.py, core/pyproject.toml, connectors/claude-code-plugin/hooks/switch_hook.py, connectors/\{codex-plugin,opencode-plugin\}/, docs/official/internals/\{agent-protocol,collaboration-bridge,matrix-substrate\}.md, docs/official/deploy/self-host.md, console/CLAUDE.md. Repository metadata via gh api repos/sandbox-quantum/switch (2026-08-27). Git history via local git log --format and manual author aggregation (not truncated by any output-compressing proxy).