Platform Integrations
Temperament: Grok defaults to frontier when suit_temperament.profile is auto (new installs). Hermes / OpenCode / OpenClaw stay guided (full engine ceremony). Existing consumers without the key stay guided on upgrade. See Suit temperament.
0xRay integrates with four chat platforms plus Cursor project hooks. Consumer npm install 0xray runs install-bridges.cjs automatically — manual commands below are idempotent re-runs of the same steps.
Repertoire is preferred on every floor (vendored 0.2.9, dest = laws). Full 4-chat-bridge wear matrix:
npm run install:bridges # all four chat bridges
npm run verify:suit:all # verify Grok + OpenCode + OpenClaw + Hermes
npm run confirm:suit:all # install + verify + Grok harness + trap-routing e2e
Overview
| Platform | Command | Install location | MCP servers |
|---|---|---|---|
| OpenCode | npx 0xray opencode install | Project opencode.json + .opencode/agents/ | Via project .mcp.json |
| Grok CLI / Build | npx 0xray grok install | project .grok/plugins/0xray (shared HOME does not clobber machine plugin) | 7 servers in plugin MCP config |
| Hermes Agent | npx 0xray hermes install | ~/.hermes/plugins/xray-hermes | Via plugin .mcp.json |
| OpenClaw | npx 0xray openclaw install | .xray/config/openclaw.json + ~/.openclaw/skills/ | Via project .mcp.json |
| Cursor | postinstall (installCursorBridge) | Project .cursor/hooks.json (preToolUse / preCompact / afterFileEdit) | Via project .mcp.json |
Postinstall sequence
scripts/node/postinstall.cjs → installAllBridges():
- Deploy
.xray/(codex.json,features.json,config.json) then overlay their plant - Write project
.mcp.json(7 servers) - Fasten mill plant (
mill+inspect) on OpenCode. The mill suit also wears every catalog skill and every role file. A blip or sound seat fastens that plant only. - Install Grok plugin + PPE hooks (catalog skills on a mill suit; a blip or sound seat does not)
- Install Hermes plugin +
xray-consumer-root.txtmarker - Create OpenClaw config (mill plant)
- Fasten Cursor
.cursor/hooks.json+ relative.cursor/hooks/*.sh; rewrite leftover env-assignment commands - Copy
AGENTS-consumer.md→AGENTS.md, seed.gitignore. Factory hangar shops coexist viashopPlant
Mill target: the consumer project, not npm global prefix or _npx. Isolated HOME skips machine ~/.grok. Shared HOME Grok last-mile is project .grok/plugins/0xray (two seats do not last-wins clobber the machine plugin). npm i -g 0xray dogfood-skips.
Seven MCP servers (all platforms)
{
"mcpServers": {
"xray-governance": { "command": "npx", "args": ["-y", "0xray", "mcp", "governance"] },
"xray-skills": { "command": "npx", "args": ["-y", "0xray", "mcp", "skills"] },
"xray-orchestrator": { "command": "npx", "args": ["-y", "0xray", "mcp", "orchestrator"] },
"xray-enforcer": { "command": "npx", "args": ["-y", "0xray", "mcp", "enforcer"] },
"xray-researcher": { "command": "npx", "args": ["-y", "0xray", "mcp", "researcher"] },
"xray-code-review": { "command": "npx", "args": ["-y", "0xray", "mcp", "code-review"] },
"xray-architect-tools": { "command": "npx", "args": ["-y", "0xray", "mcp", "architect-tools"] }
}
}
Shared constant: XRAY_MCP_SERVERS in scripts/node/bridge-mcp-wiring.cjs (SSOT), consumed by install-bridges.cjs, platform install commands, and Repertoire scripts/suit-bridge-shared.mjs.
OpenCode
- Merges agent YML surfaces from package into
.opencode/agents/ - Registers as native OpenCode plugin via
opencode.json - Invoke agents:
@architect,@enforcer, etc.
npx 0xray opencode install
Grok CLI / Grok Build (Cursor)
- Copies plugin to project
.grok/plugins/0xray(Grok discovers at project+user) - Shared HOME does not write machine
~/.grok/plugins/0xray(last-wins XRAY_ROOT clobber) - Isolated HOME may wear
$HOME/.grok/plugins/0xrayand must not write the passwd machine plugin - The mill suit fastens mill and inspect and wears every catalog skill and every role file. A blip or sound seat fastens that plant only.
- Registers 7 MCP servers in the project plugin config
- Marketplace:
.grok-plugin/plugin.json+ root.mcp.json
npm install 0xray # postinstall handles Grok if consumer project
npx 0xray grok install # explicit re-run / force sync
See Grok Guide.
Hermes Agent
- Plugin at
~/.hermes/plugins/xray-hermes xray-consumer-root.txtmarker resolves consumer project root on hook invocationfind-project-root.mjscopied into plugin on install (bridge resolves consumernode_modules/0xraydynamically)- Honors
XRAY_ROOTenvironment variable
npx 0xray hermes install
Verify: npm run verify:hermes (Repertoire consumer) or node bridge.mjs health --cwd <project> after install.
npx 0xray hermes bridge was removed in 3.1.1. Use hermes install.
OpenClaw
- Creates
.xray/config/openclaw.jsonwith gateway, hooks, and API server defaults - Syncs skills to
~/.openclaw/skills/
npx 0xray openclaw install
Cursor (fifth wear)
- Fastens project
.cursor/hooks.jsonplus relative.cursor/hooks/*.sh(Cloud execs argv[0] without a shell) - Hooks:
preToolUse(Codex gate + Station heat),preCompact(Station merge),afterFileEdit(Station boot),beforeShellExecution/beforeReadFile(same gate) - Rewrites leftover
XRAY_AI_PATH=/ invoke-probe one-liners. Keeps already-relative events. - Not a fifth chat TUI. No new MCP/skill surface (Codex 69)
- Cursor host does not inject the Station file. The preCompact hook can leave one line in the next message. Read
.xray/state/STATION.mdafter compact. The six chats: What each chat can do
Exo adapter notes: src/integrations/cursor/README.md.
Memory routing
Shipped on (memory_routing.enabled: true, vendored @0xray/repertoire@0.2.9). Repertoire is preferred. Explicit opt-out only: "enabled": false, "provider": "repertoire". Station is the compact ticket when it is off. See Memory Routing.
Verify installation
npx 0xray status
npx 0xray health
npx 0xray validate
npm run release:gate # framework repo only — full consumer smoke
Repertoire consumer (@0xray/repertoire):
| Script | Checks |
|---|---|
verify:suit | Grok Build (30 checks + live hooks) |
verify:hermes | Hermes plugin, bridge health, MCP wiring |
verify:opencode | OpenCode plugin + opencode mcp list (auto-install preflight) |
verify:openclaw | OpenClaw config + openclaw mcp list |
verify:suit:all | All four bridges in one matrix |
confirm:suit:all | Install all + Grok harness + trap-routing e2e |