Open-Wire
The universal open-source connection layer that lets any AI agent talk bi-directionally to any communication channel over one JSON protocol.
Any Agent ── open-wire/1 ── Open-Wire ── Slack | Teams | Email | …
Status
- v0.1 — Slack first (platform bot token + optional custom token)
- Inbound: Slack Events / Interactions → agent webhook
- Outbound:
POST /api/v1/messages→ Slackchat.postMessage - Hosted as a Next.js API (Vercel-ready); local default port 3100
Protocol (open-wire/1)
Inbound (Open-Wire → Agent webhook)
{
"protocol": "open-wire/1",
"type": "message.inbound",
"id": "msg_…",
"channel": "slack",
"installation_id": "inst_…",
"thread": { "id": "C123:1710000000.000100" },
"from": { "id": "U123", "name": "jane" },
"to": { "id": "C123", "kind": "channel" },
"body": { "text": "hello" },
"created_at": "2026-07-30T00:00:00.000Z"
}Outbound (Agent → Open-Wire)
{
"protocol": "open-wire/1",
"type": "message.send",
"installation_id": "inst_…",
"to": { "id": "C123", "kind": "channel" },
"thread": { "id": "C123:1710000000.000100" },
"body": { "text": "hi from the agent" }
}Quick start
cd open-wire
pnpm install
cp .env.example .env.local # or use existing .env.local
pnpm dev # http://localhost:3100Auth
All /api/v1/* routes (except Slack hooks + health) require:
Authorization: Bearer ow_…
Platform key is auto-created on first boot and printed once / stored in data/store.json.
Rails Agent
rails-agents-cloud Channels tab talks to Open-Wire via OPEN_WIRE_URL + OPEN_WIRE_API_KEY.