gossip-bus

Emit and query coordination events across intra-host SQLite and inter-host LAN peer transports.

Updated Mar 22, 2026
One-click install
npx skills add https://github.com/diazMelgarejo/orama-system --skill gossip-bus-diazmelgarejo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gossip-bus
Source: https://github.com/diazMelgarejo/orama-system/tree/main/bin/orama-system/skills/gossip-bus
Command: npx skills add https://github.com/diazMelgarejo/orama-system --skill gossip-bus-diazmelgarejo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Coordinating multiple agents that run in different git worktrees, processes, or even different machines (Mac and Windows on a LAN) requires a shared event channel, and building ad-hoc messaging for each case leads to duplicated infrastructure and missed events. ## Core Features & Use Cases - Intra-host event bus: Emit, tail, and full-text search agent claims, heartbeats, and coordination events through a shared SQLite FTS5 store that all worktrees of a repo access automatically. - Inter-host LAN peer channel: Send events between Mac and Windows machines over WebSocket with SSE fallback and a file-drop inbox/outbox mechanism when both live wires are down. - Use Case: An agent on your Mac finishes a research hypothesis and needs to hand it to a Windows peer; the skill routes the hand-off through the LAN channel, falling back to a plain file drop in the peer's inbox if the WebSocket is unavailable. ## Quick Start Ask the agent to emit a coordination event on the gossip bus and check recent events from peer agents before starting a multi-agent task.

Frequently Asked Questions about gossip-bus

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I emit events between agents on the same machine?

Use the GossipBus class from orchestrator/gossip_bus.py: initialize the database, then call emit with an event type and payload. All worktrees of the same repo share one SQLite bus automatically, so no extra configuration or environment variables are needed.

How do I send messages between a Mac and Windows machine on a LAN?

Use the lan_peer_channel module, which sends envelopes over WebSocket with automatic SSE fallback after two consecutive failures. If both live wires are down, lan_peer_assign.py drops plain files into the peer's inbox directory for later pickup.

Does the gossip bus work when the WebSocket connection is down?

Yes. The channel state machine demotes from WebSocket to SSE after two failures, and if both streaming transports are unavailable, file-drop delivery to the peer's inbox still works at the cost of latency. Callers never need to check which wire is active.

How are LAN peer IP addresses discovered without hardcoding?

Both inter-host transports read the peer IP from ~/.openclaw/state/last_discovery.json, which is kept fresh by a network-watch launchd job. Hardcoding IPs or scanning the network is explicitly prohibited.

When should I not build new agent coordination infrastructure?

Never build new same-machine coordination tooling when GossipBus already covers it, since it is local-only by design and shared across worktrees. Only use the inter-host LAN channel when the peer is genuinely a different machine.