agent-relay 2.1.4 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -236
- package/dist/index.cjs +281 -24
- package/package.json +19 -19
- package/packages/api-types/package.json +1 -1
- package/packages/benchmark/package.json +4 -4
- package/packages/bridge/dist/spawner.d.ts.map +1 -1
- package/packages/bridge/dist/spawner.js +39 -5
- package/packages/bridge/dist/spawner.js.map +1 -1
- package/packages/bridge/package.json +8 -8
- package/packages/bridge/src/spawner.ts +40 -5
- package/packages/cli-tester/package.json +1 -1
- package/packages/config/package.json +2 -2
- package/packages/continuity/package.json +2 -2
- package/packages/daemon/dist/server.d.ts +5 -0
- package/packages/daemon/dist/server.d.ts.map +1 -1
- package/packages/daemon/dist/server.js +31 -0
- package/packages/daemon/dist/server.js.map +1 -1
- package/packages/daemon/package.json +12 -12
- package/packages/daemon/src/server.ts +37 -0
- package/packages/hooks/package.json +4 -4
- package/packages/mcp/dist/cloud.d.ts +7 -114
- package/packages/mcp/dist/cloud.d.ts.map +1 -1
- package/packages/mcp/dist/cloud.js +21 -431
- package/packages/mcp/dist/cloud.js.map +1 -1
- package/packages/mcp/dist/errors.d.ts +4 -22
- package/packages/mcp/dist/errors.d.ts.map +1 -1
- package/packages/mcp/dist/errors.js +4 -43
- package/packages/mcp/dist/errors.js.map +1 -1
- package/packages/mcp/dist/hybrid-client.d.ts.map +1 -1
- package/packages/mcp/dist/hybrid-client.js +7 -1
- package/packages/mcp/dist/hybrid-client.js.map +1 -1
- package/packages/mcp/package.json +4 -3
- package/packages/mcp/src/cloud.ts +29 -511
- package/packages/mcp/src/errors.ts +12 -49
- package/packages/mcp/src/hybrid-client.ts +8 -1
- package/packages/mcp/tests/discover.test.ts +72 -11
- package/packages/memory/package.json +2 -2
- package/packages/policy/package.json +2 -2
- package/packages/protocol/dist/types.d.ts +17 -1
- package/packages/protocol/dist/types.d.ts.map +1 -1
- package/packages/protocol/package.json +1 -1
- package/packages/protocol/src/types.ts +23 -0
- package/packages/resiliency/package.json +1 -1
- package/packages/sdk/dist/browser-client.d.ts +212 -0
- package/packages/sdk/dist/browser-client.d.ts.map +1 -0
- package/packages/sdk/dist/browser-client.js +750 -0
- package/packages/sdk/dist/browser-client.js.map +1 -0
- package/packages/sdk/dist/browser-framing.d.ts +46 -0
- package/packages/sdk/dist/browser-framing.d.ts.map +1 -0
- package/packages/sdk/dist/browser-framing.js +122 -0
- package/packages/sdk/dist/browser-framing.js.map +1 -0
- package/packages/sdk/dist/client.d.ts +129 -2
- package/packages/sdk/dist/client.d.ts.map +1 -1
- package/packages/sdk/dist/client.js +312 -2
- package/packages/sdk/dist/client.js.map +1 -1
- package/packages/sdk/dist/discovery.d.ts +10 -0
- package/packages/sdk/dist/discovery.d.ts.map +1 -0
- package/packages/sdk/dist/discovery.js +22 -0
- package/packages/sdk/dist/discovery.js.map +1 -0
- package/packages/sdk/dist/errors.d.ts +9 -0
- package/packages/sdk/dist/errors.d.ts.map +1 -0
- package/packages/sdk/dist/errors.js +9 -0
- package/packages/sdk/dist/errors.js.map +1 -0
- package/packages/sdk/dist/index.d.ts +18 -2
- package/packages/sdk/dist/index.d.ts.map +1 -1
- package/packages/sdk/dist/index.js +27 -1
- package/packages/sdk/dist/index.js.map +1 -1
- package/packages/sdk/dist/transports/index.d.ts +92 -0
- package/packages/sdk/dist/transports/index.d.ts.map +1 -0
- package/packages/sdk/dist/transports/index.js +129 -0
- package/packages/sdk/dist/transports/index.js.map +1 -0
- package/packages/sdk/dist/transports/socket-transport.d.ts +30 -0
- package/packages/sdk/dist/transports/socket-transport.d.ts.map +1 -0
- package/packages/sdk/dist/transports/socket-transport.js +94 -0
- package/packages/sdk/dist/transports/socket-transport.js.map +1 -0
- package/packages/sdk/dist/transports/types.d.ts +69 -0
- package/packages/sdk/dist/transports/types.d.ts.map +1 -0
- package/packages/sdk/dist/transports/types.js +10 -0
- package/packages/sdk/dist/transports/types.js.map +1 -0
- package/packages/sdk/dist/transports/websocket-transport.d.ts +55 -0
- package/packages/sdk/dist/transports/websocket-transport.d.ts.map +1 -0
- package/packages/sdk/dist/transports/websocket-transport.js +180 -0
- package/packages/sdk/dist/transports/websocket-transport.js.map +1 -0
- package/packages/sdk/package.json +28 -4
- package/packages/sdk/src/browser-client.ts +985 -0
- package/packages/sdk/src/browser-framing.test.ts +115 -0
- package/packages/sdk/src/browser-framing.ts +150 -0
- package/packages/sdk/src/client.test.ts +425 -0
- package/packages/sdk/src/client.ts +397 -3
- package/packages/sdk/src/discovery.ts +38 -0
- package/packages/sdk/src/errors.ts +17 -0
- package/packages/sdk/src/index.ts +82 -1
- package/packages/sdk/src/transports/index.ts +197 -0
- package/packages/sdk/src/transports/socket-transport.ts +115 -0
- package/packages/sdk/src/transports/types.ts +77 -0
- package/packages/sdk/src/transports/websocket-transport.ts +245 -0
- package/packages/sdk/tsconfig.json +1 -1
- package/packages/spawner/package.json +1 -1
- package/packages/state/package.json +1 -1
- package/packages/storage/package.json +2 -2
- package/packages/storage/src/jsonl-adapter.test.ts +8 -3
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/dist/cjs/discovery.js +328 -0
- package/packages/utils/dist/cjs/errors.js +81 -0
- package/packages/utils/dist/discovery.d.ts +123 -0
- package/packages/utils/dist/discovery.d.ts.map +1 -0
- package/packages/utils/dist/discovery.js +439 -0
- package/packages/utils/dist/discovery.js.map +1 -0
- package/packages/utils/dist/errors.d.ts +29 -0
- package/packages/utils/dist/errors.d.ts.map +1 -0
- package/packages/utils/dist/errors.js +50 -0
- package/packages/utils/dist/errors.js.map +1 -0
- package/packages/utils/package.json +15 -2
- package/packages/utils/src/consolidation.test.ts +125 -0
- package/packages/utils/src/discovery.test.ts +196 -0
- package/packages/utils/src/discovery.ts +524 -0
- package/packages/utils/src/errors.test.ts +83 -0
- package/packages/utils/src/errors.ts +56 -0
- package/packages/wrapper/dist/opencode-wrapper.d.ts +6 -2
- package/packages/wrapper/dist/opencode-wrapper.d.ts.map +1 -1
- package/packages/wrapper/dist/opencode-wrapper.js +34 -10
- package/packages/wrapper/dist/opencode-wrapper.js.map +1 -1
- package/packages/wrapper/dist/relay-pty-orchestrator.d.ts +22 -2
- package/packages/wrapper/dist/relay-pty-orchestrator.d.ts.map +1 -1
- package/packages/wrapper/dist/relay-pty-orchestrator.js +174 -4
- package/packages/wrapper/dist/relay-pty-orchestrator.js.map +1 -1
- package/packages/wrapper/package.json +6 -6
- package/packages/wrapper/src/opencode-wrapper.ts +37 -9
- package/packages/wrapper/src/relay-pty-orchestrator.ts +197 -4
- package/relay-snippets/agent-relay-snippet.md +17 -5
package/README.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# agent-relay
|
|
2
2
|
|
|
3
|
-
Real-time messaging between AI agents. Sub-5ms latency, any CLI, any language.
|
|
3
|
+
> Real-time messaging between AI agents. Sub-5ms latency, any CLI, any language.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/agent-relay)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
|
|
8
|
+
---
|
|
4
9
|
|
|
5
10
|
## Install
|
|
6
11
|
|
|
@@ -10,169 +15,37 @@ npm install -g agent-relay
|
|
|
10
15
|
|
|
11
16
|
**Requirements:** Node.js 20+
|
|
12
17
|
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
sudo apt-get update && sudo apt-get install -y build-essential
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
### Platform Support
|
|
19
|
-
|
|
20
|
-
| Platform | Status | Notes |
|
|
21
|
-
|----------|--------|-------|
|
|
22
|
-
| macOS Apple Silicon | **Full support** | Native relay-pty binary |
|
|
23
|
-
| macOS Intel | **Full support** | Native relay-pty binary |
|
|
24
|
-
| Linux x64 | **Full support** | Native relay-pty binary |
|
|
25
|
-
| Linux arm64 | Fallback | Uses tmux (install separately) |
|
|
26
|
-
| Windows | Fallback | Uses tmux via WSL |
|
|
27
|
-
|
|
28
|
-
## Storage Requirements
|
|
29
|
-
- Default adapter: SQLite (persistent, WAL enabled). Path defaults to `~/.agent-relay/relay.db`.
|
|
30
|
-
- Recommended: Node.js 22+ for prebuilt SQLite binaries; Node 20 requires native rebuilds.
|
|
31
|
-
- Configure via env: `AGENT_RELAY_STORAGE_TYPE=sqlite|sqlite-batched|jsonl|memory` and `AGENT_RELAY_STORAGE_PATH=/your/db/path`.
|
|
32
|
-
- Fallback chain: SQLite (better-sqlite3 → node:sqlite) → JSONL (append-only in `~/.agent-relay/messages/YYYY-MM-DD.jsonl`, sessions in `sessions.jsonl`) → Memory (non-persistent).
|
|
33
|
-
- Docs: `docs/architecture/storage.md` (architecture) and `docs/troubleshooting/storage.md` (troubleshooting + doctor output).
|
|
34
|
-
|
|
35
|
-
## Quick Fix (Storage)
|
|
36
|
-
- See adapter status: `agent-relay doctor`.
|
|
37
|
-
- Rebuild native deps after Node upgrades: `npm rebuild better-sqlite3`.
|
|
38
|
-
- Stuck in non-persistent mode: upgrade to Node 22+, rebuild, or force JSONL via `AGENT_RELAY_STORAGE_TYPE=jsonl`, then restart.
|
|
39
|
-
- Permissions: ensure the storage directory is writable or set `AGENT_RELAY_STORAGE_PATH` to a user-writable location.
|
|
40
|
-
- Full guide: `docs/troubleshooting/storage.md`.
|
|
41
|
-
|
|
42
|
-
## Quick Start
|
|
18
|
+
## Getting Started
|
|
43
19
|
|
|
44
20
|
```bash
|
|
45
|
-
|
|
46
|
-
agent-relay claude
|
|
47
|
-
|
|
48
|
-
# Or with other CLI tools
|
|
49
|
-
agent-relay codex
|
|
50
|
-
agent-relay opencode # OpenCode with HTTP API support
|
|
51
|
-
agent-relay gemini
|
|
52
|
-
agent-relay droid
|
|
21
|
+
agent-relay up --dashboard
|
|
53
22
|
```
|
|
54
23
|
|
|
55
|
-
|
|
24
|
+
Navigate to **http://localhost:3888** to:
|
|
25
|
+
- 🤖 Spawn and chat with agents using your locally installed CLI tools
|
|
26
|
+
- 👀 View real-time agent presence and status
|
|
27
|
+
- 💬 Message history and threading
|
|
28
|
+
- 📜 Log streaming from all agents
|
|
56
29
|
|
|
57
|
-
|
|
58
|
-
# Write message to outbox (AGENT_RELAY_OUTBOX is set automatically)
|
|
59
|
-
cat > $AGENT_RELAY_OUTBOX/msg << 'EOF'
|
|
60
|
-
TO: Bob
|
|
61
|
-
|
|
62
|
-
Hey, can you help with this task?
|
|
63
|
-
EOF
|
|
64
|
-
|
|
65
|
-
# Trigger send
|
|
66
|
-
echo "->relay-file:msg"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Synchronous messaging (wait for ACK):
|
|
70
|
-
```
|
|
71
|
-
->relay:Bob [await] Please confirm
|
|
72
|
-
->relay:Bob [await:30s] Please confirm within 30 seconds
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Or broadcast to all:
|
|
76
|
-
```bash
|
|
77
|
-
cat > $AGENT_RELAY_OUTBOX/broadcast << 'EOF'
|
|
78
|
-
TO: *
|
|
79
|
-
|
|
80
|
-
Message to all agents
|
|
81
|
-
EOF
|
|
82
|
-
echo "->relay-file:broadcast"
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
> **Note**: `$AGENT_RELAY_OUTBOX` is automatically set when agents are spawned via agent-relay. Data is stored in `.agent-relay/` within your project directory (auto-added to `.gitignore`).
|
|
30
|
+
---
|
|
86
31
|
|
|
87
32
|
## CLI Reference
|
|
88
33
|
|
|
89
34
|
| Command | Description |
|
|
90
35
|
|---------|-------------|
|
|
91
|
-
| `agent-relay
|
|
92
|
-
| `agent-relay codex` | Start daemon + coordinator with Codex |
|
|
93
|
-
| `agent-relay opencode` | Start daemon + coordinator with OpenCode |
|
|
94
|
-
| `agent-relay gemini` | Start daemon + coordinator with Gemini |
|
|
36
|
+
| `agent-relay <cli>` | Start daemon + coordinator (claude, codex, gemini, etc.) |
|
|
95
37
|
| `agent-relay up` | Start daemon + dashboard |
|
|
96
38
|
| `agent-relay down` | Stop daemon |
|
|
97
39
|
| `agent-relay status` | Check daemon status |
|
|
98
|
-
| `agent-relay create-agent -n Name <cmd>` | Create named agent |
|
|
99
|
-
| `agent-relay read <id>` | Read truncated message |
|
|
40
|
+
| `agent-relay create-agent -n Name <cmd>` | Create a named agent |
|
|
100
41
|
| `agent-relay bridge <projects...>` | Bridge multiple projects |
|
|
42
|
+
| `agent-relay doctor` | Diagnose issues |
|
|
101
43
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
┌─────────────┐ ┌─────────────┐
|
|
106
|
-
│ Agent Alice │ │ Agent Bob │
|
|
107
|
-
│ (relay-pty) │ │ (relay-pty) │
|
|
108
|
-
└──────┬──────┘ └──────┬──────┘
|
|
109
|
-
│ │
|
|
110
|
-
└─────────┬─────────┘
|
|
111
|
-
│
|
|
112
|
-
Unix Domain Socket
|
|
113
|
-
│
|
|
114
|
-
┌────────┴────────┐
|
|
115
|
-
│ relay daemon │
|
|
116
|
-
│ (<5ms P2P) │
|
|
117
|
-
└────────┬────────┘
|
|
118
|
-
│
|
|
119
|
-
┌────────┴────────┐
|
|
120
|
-
│ Dashboard │
|
|
121
|
-
│ (Protocol UI) │
|
|
122
|
-
└─────────────────┘
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**relay-pty** is a Rust binary that wraps your CLI tool, providing:
|
|
126
|
-
- Direct PTY writes for reliable message injection
|
|
127
|
-
- ~550ms injection latency (vs ~1700ms with tmux)
|
|
128
|
-
- File-based message parsing for robustness
|
|
129
|
-
|
|
130
|
-
The **Dashboard** is a reference implementation of the relay protocol, providing real-time visibility into agent communication, message history, and coordinator controls.
|
|
131
|
-
|
|
132
|
-
## Dashboard
|
|
133
|
-
|
|
134
|
-
The dashboard starts automatically with any command (`agent-relay claude`, `agent-relay up`, etc.) at http://localhost:3888
|
|
135
|
-
|
|
136
|
-
Features:
|
|
137
|
-
- Real-time agent presence and status
|
|
138
|
-
- Message history and threading
|
|
139
|
-
- Coordinator panel for multi-agent orchestration
|
|
140
|
-
- Log streaming from all agents
|
|
141
|
-
|
|
142
|
-
## Cloud
|
|
143
|
-
|
|
144
|
-
For maximum scale and team collaboration, use [**agent-relay cloud**](https://agent-relay.com):
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
# Link your machine to cloud
|
|
148
|
-
agent-relay cloud link
|
|
149
|
-
|
|
150
|
-
# Check cloud status
|
|
151
|
-
agent-relay cloud status
|
|
152
|
-
|
|
153
|
-
# List agents across all linked machines
|
|
154
|
-
agent-relay cloud agents
|
|
155
|
-
|
|
156
|
-
# Send message to agent on any machine
|
|
157
|
-
agent-relay cloud send AgentName "Your message"
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
Cloud features:
|
|
161
|
-
- **Persistent workspaces** - Agents survive disconnects
|
|
162
|
-
- **Team collaboration** - Share dashboards, view all agents
|
|
163
|
-
- **Cross-machine messaging** - Send to agents on any linked machine
|
|
164
|
-
- **Centralized monitoring** - See all daemons and agents in one place
|
|
165
|
-
|
|
166
|
-
## Testing
|
|
167
|
-
- Full test suite: `npm test`
|
|
168
|
-
- Storage doctor diagnostics only: `npx vitest run src/cli/commands/doctor.test.ts`
|
|
169
|
-
- CI storage matrix runs Node 18/20/22 on Linux and macOS via `.github/workflows/storage-testing.yml`; match those locally for platform-specific issues.
|
|
170
|
-
|
|
171
|
-
The cloud dashboard is the same protocol implementation, scaled for teams.
|
|
44
|
+
---
|
|
172
45
|
|
|
173
46
|
## Agent Roles
|
|
174
47
|
|
|
175
|
-
|
|
48
|
+
Define roles by adding markdown files to your project:
|
|
176
49
|
|
|
177
50
|
```
|
|
178
51
|
.claude/agents/
|
|
@@ -186,10 +59,23 @@ Names automatically match roles (case-insensitive):
|
|
|
186
59
|
```bash
|
|
187
60
|
agent-relay create-agent -n Lead claude # Uses lead.md
|
|
188
61
|
```
|
|
62
|
+
Agents spawned by that name in the dashboard automatically assume that role.
|
|
63
|
+
|
|
64
|
+
## MCP Server
|
|
65
|
+
|
|
66
|
+
Give AI agents native relay tools via [Model Context Protocol](https://modelcontextprotocol.io):
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npx @agent-relay/mcp install
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Supports Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Zed, OpenCode, Gemini CLI, and Droid.
|
|
73
|
+
|
|
74
|
+
Once configured, agents get access to: `relay_send`, `relay_inbox`, `relay_who`, `relay_spawn`, `relay_release`, and `relay_status`.
|
|
189
75
|
|
|
190
76
|
## Multi-Project Bridge
|
|
191
77
|
|
|
192
|
-
Orchestrate agents across
|
|
78
|
+
Orchestrate agents across repositories:
|
|
193
79
|
|
|
194
80
|
```bash
|
|
195
81
|
# Start daemons in each project
|
|
@@ -200,137 +86,100 @@ cd ~/frontend && agent-relay up
|
|
|
200
86
|
agent-relay bridge ~/auth ~/frontend ~/api
|
|
201
87
|
```
|
|
202
88
|
|
|
203
|
-
Cross-project messaging uses `project:agent` format
|
|
89
|
+
Cross-project messaging uses `project:agent` format:
|
|
204
90
|
```bash
|
|
205
91
|
cat > $AGENT_RELAY_OUTBOX/msg << 'EOF'
|
|
206
92
|
TO: auth:Lead
|
|
207
93
|
|
|
208
94
|
Please review the token refresh logic
|
|
209
95
|
EOF
|
|
210
|
-
echo "->relay-file:msg"
|
|
211
96
|
```
|
|
97
|
+
Then output: `->relay-file:msg`
|
|
212
98
|
|
|
213
|
-
##
|
|
99
|
+
## Cloud
|
|
214
100
|
|
|
215
|
-
|
|
101
|
+
For team collaboration and cross-machine messaging, use [agent-relay cloud](https://agent-relay.com):
|
|
216
102
|
|
|
217
103
|
```bash
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
npx @agent-relay/mcp install --editor claude
|
|
104
|
+
agent-relay cloud link # Link your machine
|
|
105
|
+
agent-relay cloud status # Check cloud status
|
|
106
|
+
agent-relay cloud agents # List agents across machines
|
|
107
|
+
agent-relay cloud send AgentName "Your message"
|
|
223
108
|
```
|
|
224
109
|
|
|
225
|
-
|
|
226
|
-
- Claude Desktop
|
|
227
|
-
- Claude Code
|
|
228
|
-
- Cursor
|
|
229
|
-
- VS Code (with Continue extension)
|
|
230
|
-
- Windsurf
|
|
231
|
-
- Zed
|
|
232
|
-
- OpenCode
|
|
233
|
-
- Gemini CLI
|
|
234
|
-
- Droid (Factory)
|
|
110
|
+
Connect your CLI tool to your own private workspace and unlock agents working 24/7 against your GitHub repository in their own private sandbox.
|
|
235
111
|
|
|
236
|
-
|
|
237
|
-
- `relay_send` - Send messages to agents/channels
|
|
238
|
-
- `relay_inbox` - Check pending messages
|
|
239
|
-
- `relay_who` - List online agents
|
|
240
|
-
- `relay_spawn` - Spawn worker agents
|
|
241
|
-
- `relay_release` - Release workers
|
|
242
|
-
- `relay_status` - Check connection status
|
|
243
|
-
|
|
244
|
-
The MCP server auto-discovers your relay daemon and provides a seamless integration. Start your daemon first (`agent-relay up`), then use your AI editor normally - the relay tools will be available automatically.
|
|
112
|
+
## Teaching Agents
|
|
245
113
|
|
|
246
|
-
|
|
114
|
+
> **Note:** On `agent-relay up` initialization this step happens automatically. If there is already an existing `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md`, it will append the protocol instructions to that file.
|
|
247
115
|
|
|
248
|
-
|
|
116
|
+
Install the messaging protocol snippet for your agents via [prpm](https://prpm.dev):
|
|
249
117
|
|
|
250
118
|
```bash
|
|
251
|
-
|
|
252
|
-
agent-relay opencode
|
|
119
|
+
npx prpm install @agent-relay/agent-relay-snippet
|
|
253
120
|
|
|
254
|
-
#
|
|
255
|
-
npx @agent-relay/
|
|
121
|
+
# for Claude
|
|
122
|
+
npx prpm install @agent-relay/agent-relay-snippet --location CLAUDE.md
|
|
256
123
|
```
|
|
257
124
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
- SSE event streaming for real-time output
|
|
262
|
-
- Auto-fallback to PTY mode if serve unavailable
|
|
263
|
-
|
|
264
|
-
**Configuration** (`~/.config/opencode/opencode.json`):
|
|
265
|
-
```json
|
|
266
|
-
{
|
|
267
|
-
"mcp": {
|
|
268
|
-
"agent-relay": {
|
|
269
|
-
"type": "local",
|
|
270
|
-
"command": ["npx", "@agent-relay/mcp", "serve"]
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
125
|
+
Prefer skills?
|
|
126
|
+
```bash
|
|
127
|
+
npx prpm install @agent-relay/using-agent-relay
|
|
274
128
|
```
|
|
275
129
|
|
|
276
|
-
|
|
277
|
-
- `OPENCODE_PORT` - HTTP API port (default: 4096)
|
|
278
|
-
- `OPENCODE_API_URL` - Full HTTP API URL (overrides port, e.g., `http://localhost:8080`)
|
|
279
|
-
- `OPENCODE_SERVER_PASSWORD` - HTTP API authentication (Basic auth)
|
|
280
|
-
- `OPENCODE_HTTP_MODE=1` - Force HTTP API mode even if serve check fails
|
|
130
|
+
View all packages on our [prpm organization page](https://prpm.dev/orgs?name=Agent%20Relay).
|
|
281
131
|
|
|
282
|
-
|
|
132
|
+
---
|
|
283
133
|
|
|
284
|
-
|
|
134
|
+
## For Agents
|
|
285
135
|
|
|
136
|
+
Paste this into your LLM agent session:
|
|
286
137
|
```bash
|
|
287
|
-
|
|
288
|
-
npx prpm install @agent-relay/agent-relay-snippet
|
|
289
|
-
|
|
290
|
-
# Install snippet for CLAUDE.md
|
|
291
|
-
npx prpm install @agent-relay/agent-relay-snippet --location CLAUDE.md
|
|
138
|
+
curl -s https://raw.githubusercontent.com/AgentWorkforce/relay/main/docs/guide/agent-setup.md
|
|
292
139
|
```
|
|
293
140
|
|
|
294
|
-
|
|
141
|
+
Or read the full [Agent Setup Guide](./docs/guide/agent-setup.md).
|
|
295
142
|
|
|
296
|
-
|
|
143
|
+
## Using the Agent Relay SDK
|
|
297
144
|
|
|
298
|
-
|
|
145
|
+
The easiest way to develop against relay:
|
|
299
146
|
|
|
300
147
|
```bash
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
148
|
+
# Install globally and start daemon
|
|
149
|
+
npm install -g agent-relay
|
|
150
|
+
agent-relay up
|
|
151
|
+
|
|
152
|
+
# In your project
|
|
153
|
+
npm install agent-relay
|
|
305
154
|
```
|
|
306
155
|
|
|
307
|
-
|
|
156
|
+
```typescript
|
|
157
|
+
import { RelayClient } from 'agent-relay';
|
|
308
158
|
|
|
309
|
-
|
|
159
|
+
const client = new RelayClient({ name: 'MyApp' });
|
|
160
|
+
await client.connect();
|
|
310
161
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
- Any orchestration system (your own, Beads, external)
|
|
314
|
-
- Any memory system (Mimir, vector DBs, files)
|
|
162
|
+
// Spawn a worker agent
|
|
163
|
+
await client.spawn({ name: 'Worker', cli: 'claude', task: 'Wait for instructions' });
|
|
315
164
|
|
|
165
|
+
// Send it a message
|
|
166
|
+
await client.send('Worker', 'Hello from my app');
|
|
316
167
|
```
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
└──────────────────────────────────────────┘
|
|
328
|
-
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Philosophy
|
|
172
|
+
|
|
173
|
+
> **Do one thing well:** Real-time agent messaging with sub-5ms latency.
|
|
174
|
+
|
|
175
|
+
agent-relay is a messaging layer, not a framework. It works with any CLI tool, any orchestration system, and any memory layer.
|
|
176
|
+
|
|
177
|
+
---
|
|
329
178
|
|
|
330
179
|
## License
|
|
331
180
|
|
|
332
|
-
Apache-2.0
|
|
181
|
+
Apache-2.0 — Copyright 2025 Agent Workforce Incorporated
|
|
333
182
|
|
|
334
183
|
---
|
|
335
184
|
|
|
336
|
-
**Links:** [Documentation](https://
|
|
185
|
+
**Links:** [Documentation](https://docs.agent-relay.com/) · [Issues](https://github.com/AgentWorkforce/relay/issues) · [Cloud](https://agent-relay.com)
|