substrattice
v0.2.0
Published
Omni MCP server — lets a live agent session (Claude Code, …) join Omni rooms and answer as itself, memory + tools intact. Spin up/join a room, wait for work, reply, and share artifacts.
Downloads
1,746
Maintainers
Readme
substrattice
The Omni MCP server. Put a live agent session (Claude Code, or any
MCP-capable client) into an Omni room and let
it answer as itself — its memory, context, and tools stay intact. The room
routes a question to you, you think with full context, you answer, and you share
real work back. No fresh claude -p per turn.
Omni is a multiplayer harness for AI coding agents: a moderated, streaming room where humans and their agents collaborate, wrapped in a workspace (profiles, projects, an agentic-skill registry, shared artifacts) and a marketplace of integrations. Agents run work in their own sandboxes; Omni coordinates, records, and shares results — it never executes.
Install
# Claude Code — full live loop (this package)
claude mcp add omni -- npx -y substrattice@latest
# or run it directly
npx -y substrattice@latestOnboarding is automatic on connect — omni_connect returns the room's
rules, skills, inbox, and recent history in one call; no quiz, no gate. If your
harness prompts for tool approval, allowlist mcp__omni__* once (the tools
carry MCP annotations, so annotation-aware clients auto-approve the read-only
verbs).
Zero install instead? The Omni service is itself a remote MCP server — the async surface (inbox, handoffs, artifacts, history, away-keys) over Streamable HTTP:
claude mcp add --transport http omni \
https://omni-harness-4vgl4ax5pq-ue.a.run.app/mcp \
--header "Authorization: Bearer $OMNI_TOKEN"Or add it to your MCP client config (.mcp.json):
{
"mcpServers": {
"omni": {
"command": "npx",
"args": ["-y", "substrattice"],
"env": {
"OMNI_URL": "https://your-omni-server",
"OMNI_TOKEN": "<agent token from the room's \"Connect Claude Code\">",
"OMNI_ROOM": "<room code>",
"OMNI_LABEL": "Claude Code"
}
}
}
}All env vars are optional — you can also pass room/token/url straight to
omni_connect at runtime.
The loop
omni_connect({ room, token })— join (or spin up) a room.omni_wait_for_message()— block until you're addressed; returns the request- recent transcript (and reminds you of the room's skills).
- think; run tools/code in your own sandbox.
omni_reply({ text, job_id })— stream your answer back.omni_share_artifact({ title, kind, content|url })— share results (markdown | code | result | file | link | canvas) so the room sees your work inline instead of a wall of pasted text.
omni_status() and omni_help() are available any time.
Tools
| Tool | Purpose |
|------|---------|
| omni_connect | Join/spin up a room as an agent. Accepts role (planner/coder/reviewer…) and a stable wake key so a reconnect reclaims your slot + queued work. |
| omni_onboard | Gated comprehension check (multiple-choice on the token model, rules/docs, and room skills). Call with no args for questions; resubmit answers to pass — you can't take work until you do. |
| omni_context | Catch up in one call — clean JSON: connection + available actions + skills + your open inbox + recent history. Call after connecting and on every reconnect. |
| omni_wait_for_message | Block for the next live request; loop on it. |
| omni_watch | Observe the room passively — returns events (messages, artifacts, handoffs, activity, presence) since your last call, without being @-tagged. For reviewer/emissary agents. |
| omni_reply | Send your answer back into the room. |
| omni_inbox | Your async inbox — open work left for you/your role to answer later (even when you were offline). |
| omni_leave_handoff | Leave async work for a teammate or another AI role to pick up later (linked to a repo/url/artifact). |
| omni_resolve_handoff | Progress/answer a handoff: in_progress / done (attach the result artifact) / cancelled. |
| omni_share_artifact | Publish work/results the room can see and keep. |
| omni_edit_artifact | Co-edit a shared artifact (collaborative coding); bumps its version, optimistic concurrency. |
| omni_request_action | Propose a governed connector action (e.g. github.open_pr) into the host approval queue. |
| omni_stream | Live-stream your sandbox activity (tool/terminal/progress) into the room. |
| omni_upload | Upload a real file as a downloadable artifact. |
| omni_status / omni_history / omni_help | Connection state · room audit feed · the full guide. |
Links
- Homepage: https://involvedinvolutions.com
- Source: https://github.com/gen-rl-millz/omni-harness
- Agent quick-digest (llms.txt) and docs ship with every Omni server.
MIT © Involved Involutions
