relayBrain

mcp
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Relay is a portable memory layer for AI agents. Switch between Claude, Codex, Gemini, and local models without losing project context.

README.md

Relay

One project brain. Any coding agent.

Git tracks your code. Relay tracks your project intelligence — tasks, decisions, failures, and what every agent did last session.

Switch tools without re-explaining the repo.


Node 18+
MIT
No database
No login



Works with

Cursor Claude Code GitHub Copilot
Codex Google Antigravity


The problem

You brief Cursor on Monday. Wednesday you switch to Claude Code — and start from zero. Every agent keeps its own little memory file (CLAUDE.md, .cursorrules, copilot-instructions.md, …), none of them talk to each other, and you become the human clipboard carrying context between tools.

The fix

Relay keeps one shared .relay/ brain that every agent reads and writes — and patches each agent's instruction file to point at it automatically.

- 5 agents · 5 memory files · 0 shared context
+ 5 agents · 1 project brain · always in sync

One install gives you the CLI, stop hooks, agent prompts, the relay-sync skill, .relay/ scaffolding, the Mission Control UI, and an optional MCP server.


Quick start

cd your-project
relay init          # .relay/, hooks, prompts, API key
relay serve         # Mission Control → :6374  ·  API → :3001
relay watch .       # background sync (keep running)

Work in any agent. Stop hooks (or /relay update) refresh the IR markdown. Switch agents → /relay context or just read .relay/relay_context.md.

Install options
Method Command
npm relay init
local dev npm i, then npm link in this repo, then relay init
GitHub npx github:AspiringPianist/OrbitOS init

Requires Node.js 18+. No database. First relay serve installs Mission Control deps automatically.


How it works

  Cursor ──┐
  Claude ──┤   stop hooks + watch     ┌─────────────┐
  Copilot ─┼──► sync ──► memory.json ─►│  .relay/    │──► relay_context.md
  Codex ───┤         compile_brief     │  IR .md     │         │
  Antigravity ┘      (agent updates)   └─────────────┘         ▼
                                                          next agent reads handoff
Layer Who runs it Output
Sync relay watch, stop hook, relay sync memory.json + timeline
Compile same compile_brief.md
IR update you / the session agent project.md, decisions.md, …
Handoff relay context relay_context.md

relay watch = sync + compile only · relay refresh = sync + compile + context


What relay init creates

your-project/
├── .relay/
│   ├── AGENT_BOOTSTRAP.md       ← read every session
│   ├── relay_context.md         ← handoff file
│   ├── compile_brief.md         ← agent reads to update IR
│   ├── project.md · current_task.md · decisions.md · failures.md
│   ├── memory.json              ← unified timeline
│   ├── project.json             ← API key + dashboard URL
│   └── hooks/
├── RELAY.md
├── CLAUDE.md · AGENTS.md · .github/copilot-instructions.md · .cursorrules
├── .cursor/hooks.json + .cursor/skills/relay-sync/
├── .claude/settings.json · .codex/hooks.json · .agents/hooks.json

Registry (all projects): ~/.relay-os/projects.json


Commands

Command Description
relay init [path] Scaffold .relay/, hooks, agent patches, API key
relay install [path] Re-apply hooks after upgrade
relay serve Mission Control (:6374) + API (:3001)
relay watch [path] Background sync + compile
relay sync [path] Harvest transcripts → memory.json
relay compile [path] Write compile_brief.md
relay context [path] Generate relay_context.md
relay refresh [path] sync + compile + context
relay mcp MCP server (stdio) — optional
relay open Print UI + API URLs

Pseudo-commands — patched into agent instructions, not native slash commands:

Say Agent does
/relay update sync → compile → update IR → relay context .
/relay context read .relay/relay_context.md
/relay init run relay init if missing

Terminal shortcut: relay refresh ./relay update


Mission Control

Started by relay serve — runs locally, no login.

URL
Dashboard http://localhost:6374
API http://localhost:3001/api/health

Activity timeline across all agents · live IR markdown · per-project API keys.


MCP (optional)

Give agents direct tool access to .relay/ — list files, read/write IR markdown, sync, fetch handoff.

Tools exposed: relay_list_files · relay_read_file · relay_write_file · relay_get_context · relay_sync

Hooks + pseudo-commands are enough for most workflows. MCP is for agents where you want structured file tools on top.

1 · Get your paths

After relay init, note:

  • Project path — absolute path to your repo
  • API key — printed at init (also in .relay/project.json) — only needed for remote mode
2 · Base config

Always set RELAY_WORKSPACE_PATH to your project root (required — MCP may not inherit the right cwd):

"env": {
  "RELAY_WORKSPACE_PATH": "/absolute/path/to/your-project"
}

Local mode (reads/writes .relay/ on disk — default):

{
  "command": "npx",
  "args": ["-y", "relay-os", "mcp"],
  "env": {
    "RELAY_WORKSPACE_PATH": "/absolute/path/to/your-project"
  }
}

If relay is on your PATH (npm link / global install):

{
  "command": "relay",
  "args": ["mcp"],
  "env": {
    "RELAY_WORKSPACE_PATH": "/absolute/path/to/your-project"
  }
}

Remote mode (via relay serve API — useful when UI/API is already running):

{
  "command": "npx",
  "args": ["-y", "relay-os", "mcp"],
  "env": {
    "RELAY_WORKSPACE_PATH": "/absolute/path/to/your-project",
    "RELAY_API_URL": "http://localhost:3001",
    "RELAY_API_KEY": "relay_your_key_from_init"
  }
}
3 · Register per agent

Cursor.cursor/mcp.json (project) or user MCP settings

{
  "mcpServers": {
    "relay": {
      "command": "npx",
      "args": ["-y", "relay-os", "mcp"],
      "env": {
        "RELAY_WORKSPACE_PATH": "/absolute/path/to/your-project"
      }
    }
  }
}

Restart Cursor or reload MCP. Relay tools appear in Agent mode.

Claude Code.mcp.json (project) or ~/.claude.json

{
  "mcpServers": {
    "relay": {
      "command": "npx",
      "args": ["-y", "relay-os", "mcp"],
      "env": {
        "RELAY_WORKSPACE_PATH": "/absolute/path/to/your-project"
      }
    }
  }
}

Or via CLI: claude mcp add relay -- npx -y relay-os mcp (set env in config after).

GitHub Copilot — VS Code .vscode/mcp.json or Copilot CLI MCP config

VS Code / Copilot (mcp.json):

{
  "servers": {
    "relay": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "relay-os", "mcp"],
      "env": {
        "RELAY_WORKSPACE_PATH": "${workspaceFolder}"
      }
    }
  }
}

Copilot CLI — add to your MCP config file per Copilot MCP docs:

{
  "mcpServers": {
    "relay": {
      "command": "npx",
      "args": ["-y", "relay-os", "mcp"],
      "env": {
        "RELAY_WORKSPACE_PATH": "/absolute/path/to/your-project"
      }
    }
  }
}

Codex CLI~/.codex/config.toml or project config

[mcp_servers.relay]
command = "npx"
args = ["-y", "relay-os", "mcp"]

[mcp_servers.relay.env]
RELAY_WORKSPACE_PATH = "/absolute/path/to/your-project"

Antigravity — MCP settings (same JSON shape as Cursor)

{
  "mcpServers": {
    "relay": {
      "command": "npx",
      "args": ["-y", "relay-os", "mcp"],
      "env": {
        "RELAY_WORKSPACE_PATH": "/absolute/path/to/your-project"
      }
    }
  }
}
4 · Test MCP
# Should print: relay-mcp started (local mode, workspace: ...)
RELAY_WORKSPACE_PATH=/path/to/project relay mcp

🎬 Example: three agents, one portfolio

Day 1 — Cursor builds the hero. Stop hook runs. You type /relay update.

## Now   ← .relay/current_task.md
- Hero done (gradient + CTA)
- Next: projects grid

Day 2 — Claude Code opens the same folder. /relay context → implements the grid without re-briefing.

Day 3 — Copilot CLI fixes form validation, appends to .relay/failures.md.

With relay serve + relay watch . running, Mission Control shows all three agents on one timeline.

🔁 Switch checklist: /relay update → open same folder in new tool → /relay context


Dependencies

Required Node.js 18+, npm
⚙️ Auto-installed express, cors (API) · next, react (Mission Control)
🚫 Not needed MongoDB, Redis, Docker, login/OAuth
🧩 Optional sqlite3 CLI on PATH — richer Copilot sync via VS Code state.vscdb (not an npm package)
🔑 Optional LLM keys OPENAI_API_KEY / ANTHROPIC_API_KEY for smarter relay compile-ir (heuristics work without)

Storage: .relay/ in your project + ~/.relay-os/projects.json — files only, no DB server.

Env vars: RELAY_PORT (3001) · RELAY_UI_PORT (6374) · RELAY_API_KEY (optional API auth) · RELAY_SKIP_UI_INSTALL=1


🪝 Stop hooks

Installed in your project folder by relay init:

Agent Config
Cursor .cursor/hooks.json
Claude Code .claude/settings.json
Codex .codex/hooks.json
Copilot CLI .github/hooks/relay-os.json
Antigravity .agents/hooks.json

Disable: .relay/config.json"autoAgentUpdate": false


📚 Docs

docs/QUICKSTART.md


Git tracks code. Relay tracks what your agents know about the project.

MIT licensed · Built for teams that switch tools mid-flight.

Reviews (0)

No results found