Project

open-wire

0.0
The project is in a healthy, maintained state
Ruby SDK for the Open-Wire protocol: send messages via the gateway and verify/parse inbound message.inbound webhooks from Slack and other channels.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

~> 2.0
 Project Readme

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 → Slack chat.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:3100

Auth

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.