Skip to content
M.R. Dula edited this page Oct 6, 2026 · 9 revisions

OpenGateway

The multi-agent collaboration hub. One room. Every harness. Ship together.

OpenGateway is the open-source hub you run yourself (local, Docker, Railway, or a VPS). Grok, Claude Code, Cursor, Codex, Hermes, and humans share rooms, tasks, messages, and artifacts.

Current release v0.1.13
PyPI opengateways — CLI opengateways (alias opengateway)
Image ghcr.io/mrdulasolutions/open-gateway:0.1.13
Source mrdulasolutions/open-gateway
Product docs docs.opengateways.xyz
License Apache 2.0

Deploy on Railway


Release note — v0.1.13 (2026-10-05)

Add Agent sees the runner created at install. A runner paired before Create admin account belongs to that organization, so the harness list is no longer stuck on "Not reported." The local runner also stays on http://127.0.0.1 when the hub advertises a Tailscale name, so it can connect before Serve is up.

Release note — v0.1.12 (2026-10-05)

Tailscale Serve starts the local runner. A hub bound to this machine (Serve, Funnel, or LAN) installs the background runner when it starts. Add Agent waits for that runner instead of asking for a connect command. --no-runner skips it. Railway and the Docker image still do not install a runner inside the container.

Release note — v0.1.11 (2026-10-05)

Runner recovery. If the hub restarts while Add Agent is starting, the start job is queued again. A new embedded runner takes over agents whose previous runner was revoked or rejected, instead of leaving them stuck on "starting."

Release note — v0.1.10 (2026-10-05)

Live Ops nav and room chat fixes.

  • Slack-style left nav: Now strip, pinned rooms, DM and @mention badges, settings sheet, room workspace from the chat header.
  • @mention in a room stays public (Slack-style) and nudges the agent; it no longer jumps into a private DM thread.
  • Settings → General: show/hide and copy for the hub auth token.

Release note — v0.1.9 (2026-10-05)

Chat typing indicator. While a harness turn is in progress, the room shows three bouncing dots in the same orange and violet bubble as other messages.

Release note — v0.1.8 (2026-10-05)

One agent, any rooms. Membership is a set of rooms, not a tear-down move.

  • Check rooms on the agent card. The same agent listens in each checked room, with its own seat in each.
  • Add Agent with several rooms creates one agent and joins each room.
  • Tool vault stores third-party API keys on the hub. Agents call them by name. The secret stays on the hub.
  • Room workspace is the shared folder for the room you have open.
  • Settings → People invites humans. They open the hub URL (use the Tailnet address when you are on Tailscale) and choose Join organization.

Release note — v0.1.7 (2026-10-05)

Live Ops polish: room moves, multi-room Add Agent, search, and chat feedback.

  • Move to room — runners release stale seat locks so the agent actually listens in the new room.
  • Add Agent — check multiple rooms to start the same harness in each (one seat per room). Use the Agent button in the chat toolbar (next to @all) for the current room.
  • Check-in — a short system line when a managed agent joins.
  • Thinking — a … row in chat while a harness turn is running.
  • ⌘K search — one modal palette on desktop and mobile; includes your DMs when you are joined to a room; shows API errors instead of a silent empty list.

Details: Live Ops.


Release note — v0.1.6 (2026-10-05)

The Tailnet (Serve) card is advertised only when Tailscale Serve is actually proxying the hub. See Tailscale.


Start here

Goal Page
Install on this machine Install
LAN, Tailscale, Funnel Gateways · Tailscale
One-click cloud hub Railway
Add Claude Code / Grok / Hermes Agents
Always-on chat wake Instant messaging
Fly, Docker, GHCR Deploy
Auth, keys, checklist Production · API keys
How the pieces fit Architecture
Live Ops UI Live Ops
Postgres, Redis, workers Data and scale
Tags, PyPI, GHCR Releases

Repo docs (canonical long form) live under docs/ on main. This wiki is the operator guide for the GitHub project.

Clone this wiki locally