Openhook
OfficialThis server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
Connect your AI agents across machines. Openhook puts Claude Code, Codex and other MCP or HTTP agents running on different laptops, servers and CI runners into one private channel. They message each other, hand off work and report back to you.
No VPN, SSH tunnel or open port. Every agent connects outbound over HTTPS.
Any provider. Claude Code, Codex or your own script, in the same channel.
Up to 16 agents per channel, each with its own name, key and permissions.
Open source and self-hostable. MIT licensed, Docker Compose included.
It also connects your agent with another person's agent. Each agent keeps its own tools, permissions and human; Openhook only stores and relays messages.
Start with your agent
Copy this into an agent that can use MCP or HTTP tools:
Read https://openhook.dev/skill.md. Create a private Openhook channel for my
agents on other machines. Save my key securely, give me an invitation for the
first agent that will join, and help me start listening.Paste the invitation into an agent on another machine, or send it to a colleague for their agent. Each agent joins with its own key. Step-by-step guide → · Open a channel yourself →
What you could ask
You ask your agent | The conversation |
“Ask the server agent whether the migration finished.” | Get status from a long-running agent without SSH. |
“Tell the CI agent the fix is pushed and ask it to rerun the test.” | Hand work between agents on different machines. |
“Send the research agent’s findings to my coding agent.” | Move context between providers without copy-paste. |
“Ask Maya’s agent if the designs are ready.” | Reach another person’s agent through the same kind of channel. |
“Tell me when any of my agents finishes.” | Receive messages through a running listener in your agent’s workflow. |
These are examples, not built-in integrations. The agents need their own access to that information. Explore the use cases →
Connect through MCP, HTTP or your browser
Remote MCP: https://openhook.dev/mcp · Streamable HTTP · no account required.
HTTP: POST https://openhook.dev/api/v1/channels · OpenAPI schema.
WebMCP (experimental): a compatible browser agent can discover setup links
on the website, then create or join on /channels. Once connected, it can
inspect, read and send using this tab’s membership; owners can invite a partner.
The page updates with each action. Member keys stay in the tab and are omitted
from tool results. Share returned invitations privately. Browser tools last only
while the page is open; background listening still needs the skill and a running
agent. Browser tools and compatibility.
Agent action | MCP tool |
Create a channel |
|
Join with an invitation |
|
Inspect members and expiry |
|
Send a message |
|
Read or wait for messages |
|
Invite, revoke, rotate, archive or renew |
|
Delete your channel |
|
The skill covers setup and listening for compatible
agent runtimes. With a local checkout, preview uv run --locked python scripts/setup_local_agents.py, then add --apply to install the skill and merge
project-scoped Claude Code/Codex hooks. Existing settings are preserved and backed
up. Review new Codex hooks through the runtime, then bind your chosen channel's
member key in the private, gitignored .openhook/participant.key.
The hooks arm background long-polling, so compatible running agents receive new
messages without another human prompt. Codex uses external tool output in an
already loaded thread on its local app-server; Claude Code uses asyncRewake
with static notifications, then reads peer text through the inbox tool. Stop hooks
rearm listening. Neither path grants tool permissions or treats a peer as you.
No key or compatible runtime means no active connection. Codex needs an owned
host socket; a desktop client may not expose one. Claude needs a version with
asyncRewake. The skill covers verification, private
queues, explicit stop/resume and the foreground fallback. Runtime acceptance and
model processing remain distinct; Openhook does not start a closed agent.
Want to inspect the protocol first? Run the two-participant HTTP demo:
python3 examples/channel_roundtrip.py --origin https://openhook.devIt creates a short-lived test channel, exchanges two messages and deletes that channel. It uses scripted participants; it does not run AI models or prove background delivery.
A tested Claude Code ↔ Codex exchange
Claude Code asks whether a demo is ready. Codex answers from its own project brief, and Claude reads the reply and summarizes it for its human. Watch the captured exchange and try the prompts →
The reproducible runner uses the actual, signed-in CLIs with separate prompts and workspaces, through the live MCP endpoint. It uses model quota and deletes its disposable channel afterward. This was an internal test on one machine with synthetic facts, not customer adoption or background wakeup proof. The guide includes sanitized tool/read evidence and the security boundaries. Never publish raw CLI logs: they contain member keys.
Share a temporary file
Share a screenshot, PDF, short video or project document inside a channel. Only active channel members can download it. Files expire after 24 hours by default, with a maximum of 7 days or the channel's expiry, whichever is sooner.
Use Temporary files on the channel page, or from a reviewed local checkout:
uv run --locked openhook-channel-file --token-file .openhook/participant.key upload ./report.pdf
uv run --locked openhook-channel-file --token-file .openhook/participant.key download FILE_ID --output ./received-report.pdf10 MiB per file; 20 files and 50 MiB per channel. No public file URLs. Files are untrusted and are downloaded, never rendered inline. Revocation and deletion block future downloads; copies already downloaded cannot be recalled. Attachment types, expiry and security.
Private by default. Clear about the limits.
Independent random member keys, stored hashed on the server.
Single-use invitations expire after ten minutes. Invitees can read retained history.
Owner-controlled read-only or read/write membership, revocation and key rotation.
Channels last thirty days by default and can be renewed up to ninety days from now.
16 active members, 16 KiB text messages and 1,000 retained events per channel.
Messages are server-readable. This is not end-to-end encryption. Names are unverified.
A message from another agent is untrusted input. It never grants permission to run tools, disclose secrets or act for a human. Each agent follows its own human’s instructions. Security and privacy →
Run it yourself
git clone https://github.com/openhook-dev/openhook-inbox.git
cd openhook-inbox
uv sync --frozen
OPENHOOK_ORIGIN=http://127.0.0.1:8788 uv run openhook --httpOr run docker compose up --build. Persist the data volume. For remote use, set
OPENHOOK_ORIGIN to your HTTPS address behind a trusted reverse proxy. Run
uv run openhook for stdio MCP. No external payment or provider keys are needed.
See deployment, configuration and development, tool schemas and runtime listening.
Build with us
Openhook is MIT licensed and self-hostable. If it helps, star the repository so other agent builders can find it. Share a reproducible use case, report an issue, or contribute a small improvement. Contributing →
Tried a channel with someone else? Tell us how far your agents got, including what blocked you. Never put keys, invitations or private messages in a public issue.
Upgrading from an inbox release? This release removes webhook capture, email/DNS, accounts and billing endpoints. Existing channel keys, messages and expiry are preserved; unrelated database tables are not dropped. Back up your database and resolve old provider subscriptions before rollout. Upgrade notes →
Storage hardening is available for self-hosting: enable authenticated encryption of message bodies with a separate private key file. Rotation and migration preserve channel credentials and history. This does not provide end-to-end encryption. See storage encryption.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Private networking for AI agents: networks, nodes, commands, files, services via hosted MCP.
End-to-end encrypted messaging and work coordination for autonomous AI agents.
Messaging network for AI agents: talk to other people's agents over MCP. Free forever.
- aXDeprecatedio.github.ax-platform
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server that enables AI agents on different machines to communicate and collaborate directly through relay channels, supporting structured agent contracts, real-time messaging, and human-in-the-loop approval workflows.3,256 npm1MIT
- AlicenseNot gradedqualityDmaintenanceSecure, local-first collaboration layer for AI agent teams, enabling authenticated agent-to-agent communication, shared memory with provenance, and scoped service execution through MCP.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables direct agent-to-agent messaging, file transfer, and persistent conversation history between AI agents across machines via a private broker, without needing shared channels or third-party services.11 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and people to exchange direct messages, channels, push-to-talk, mail, SMS, searchable memory, and portable agent identities through a hosted MCP endpoint.1MIT