repowire
Health Uyari
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 45 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
This tool acts as a peer-to-peer mesh network that enables different AI coding agents (like Claude Code, Gemini, and OpenCode) to communicate with each other across multiple projects in real-time.
Security Assessment
Overall risk: Medium. The code scan of 12 files did not find any dangerous patterns, hardcoded secrets, or requests for overly broad permissions. However, there are inherent risks based on how the tool operates. To function as a communication mesh and integrate with external platforms like Telegram or Slack, it inherently makes active network requests. Additionally, the README suggests an installation method using a `curl | sh` command, which always introduces an execution risk. While the current codebase appears clean, developers should still verify the code themselves if planning to route highly sensitive data through the agent network.
Quality Assessment
The project appears to be actively maintained, with its last push occurring today. It has garnered 45 GitHub stars, indicating a fair level of early community trust and interest from users. The documentation is thorough, providing clear comparisons with similar tools and detailing setup requirements. However, the automated health check flagged that the repository lacks a license file. Despite a badge in the README suggesting one exists, the missing license means there are no clear legal terms for using, modifying, or distributing the software.
Verdict
Use with caution: the code is actively maintained and clean of obvious threats, but you should verify the code yourself before utilizing its external network communication features or relying on it without a formal license.
Peer-to-peer mesh for AI coding agents - connect Claude Code, Codex, Gemini CLI across projects
Repowire
Mesh network for AI coding agents. Enables Claude Code, Codex, Gemini, and OpenCode sessions to communicate.
Why?
AI coding agents work great in isolation, but real projects need agents that talk to each other. An agent in one repo needs answers from another repo. You need to dispatch work to multiple agents from your phone. A dedicated orchestrator needs to coordinate 10+ peers across projects.
Repowire connects your agents into a live mesh. Any agent can query, notify, or broadcast to any other. You manage the mesh from a dashboard, Telegram, or Slack. It's local-first, works across agent runtimes, and scales from 2 peers to 20+.
Read more: the context breakout problem and the idea behind Repowire.
How does repowire compare?| Project | Type | How it works | Best for |
|---|---|---|---|
| Repowire | Sync | Live agent-to-agent queries | Cross-repo collaboration, 5-10 peers |
| Gastown | Async | Work orchestration with persistent mail | Coordinated fleets, 20-30 agents |
| Claude Squad | Isolated | Session management with worktrees | Multiple independent sessions |
| Memory Bank | Async | Structured markdown files | Persistent project knowledge |
Repowire is a phone call (real-time, ephemeral). Gastown is email + project manager (async, persistent). For 5-10 agents, emergence works. For 20-30 grinding through backlogs, you probably need structure.
https://github.com/user-attachments/assets/e356ce7c-9454-4e41-93af-3991c6f391b9
Installation
Requirements: macOS or Linux, Python 3.10+, tmux
# One-liner (detects uv/pipx/pip, runs interactive setup)
curl -sSf https://raw.githubusercontent.com/prassanna-ravishankar/repowire/main/install.sh | sh
# Or install manually
uv tool install repowire # or: pipx install repowire / pip install repowire
Quick Start
# One-time setup: detects your agents, installs hooks + MCP, starts daemon
repowire setup
Then open your agents in separate tmux windows:
# tmux window 1
cd ~/projects/project-a && claude
# tmux window 2
cd ~/projects/project-b && codex
Both sessions auto-register as peers and discover each other. In project-a:
"Ask project-b what API endpoints they expose"
The agent calls ask_peer, project-b receives the question, responds, and the answer comes back. Works across Claude Code, Codex, Gemini CLI, and OpenCode in any mix.
Or use the CLI helper to spawn sessions in tmux:
repowire peer new ~/projects/project-a
repowire peer new ~/projects/project-b
How It Works
All peers connect to a central daemon via WebSocket. The daemon routes addressed messages between peers. No pub/sub, no topics. Messages go from peer A to peer B by name.
Message types:
ask_peer- request/response with correlation ID (blocks until answer, 300s timeout)notify_peer- fire-and-forget (no response expected)broadcast- fan-out to all peers in your circle
Circles are logical subnets (mapped to tmux sessions). Peers can only communicate within their circle unless explicitly bypassed.
Supported Agents
| Agent | Transport | How it connects |
|---|---|---|
| Claude Code | Hooks + MCP | Lifecycle hooks register peer, MCP tools for messaging |
| OpenAI Codex | Hooks + MCP | Same pattern (requires codex_hooks feature flag, auto-enabled) |
| Google Gemini CLI | Hooks + MCP | Uses BeforeAgent/AfterAgent events (mapped to prompt/stop hooks) |
| OpenCode | Plugin + WebSocket | TypeScript plugin with persistent WS connection |
repowire setup auto-detects which agents are installed and configures each one.
All agents use hooks + tmux injection for message delivery:
- SessionStart - registers peer, spawns WebSocket hook, injects peer list
- UserPromptSubmit / BeforeAgent - marks peer BUSY
- Stop / AfterAgent - marks peer ONLINE, extracts response for dashboard
On Claude Code v2.1.80+ with claude.ai login and bun, an experimental channel transport delivers messages directly via MCP, with no tmux injection.
repowire setup --experimental-channels
- Messages arrive as
<channel source="repowire">tags in Claude's context - Claude replies via
replytool instead of transcript scraping - Requires claude.ai login (not available for API/Console key auth)
Patterns
Multi-repo coordinationAgents in different repos ask each other questions in real time. Project-a needs to know project-b's API shape? ask_peer("project-b", "what endpoints do you expose?") gets a live answer from the actual codebase, not stale docs.
Have a different agent review your work. Peer A builds a feature, peer B runs a review pass (code quality, security, simplification). Works especially well with different agent runtimes reviewing each other's output.
OrchestratorA dedicated coordinator peer manages the mesh. It dispatches tasks, tracks progress, runs review cycles, and coordinates releases across multiple project peers. The pattern that makes 10+ agents manageable.
Worktree isolationSpawn peers on git worktrees for parallel, isolated work. Each peer works on a branch, creates a PR, another peer reviews. Clean separation with no merge conflicts during development.
Mobile mesh managementThe Telegram bot lets you dispatch work, check peer status, and coordinate from your phone. Send a message to any peer from anywhere.
Infrastructure-as-peerA dedicated peer for infrastructure (k8s, DNS, cloud config) that other project peers coordinate with directly. Need a namespace created? Ask the infra peer. Need a deploy? Notify it.
Overnight autonomyGive peers tasks and disconnect. They work autonomously, report back via Telegram or dashboard when you return. Long-running tasks (migrations, refactors, test suites) complete while you sleep.
Control Plane
Web Dashboard
Monitor your agent mesh at http://localhost:8377/dashboard, or remotely via repowire.io:
- Peer overview - online/busy/offline status, descriptions, project paths
- Chat view - conversation history per peer with tool call details
- Compose bar - send notifications or queries to any peer from the browser
- Mobile responsive - hamburger menu, touch-friendly compose
For remote access: repowire setup --relay connects your daemon to repowire.io via outbound WebSocket. Access your dashboard from any browser. No port forwarding, no VPN.
Telegram Bot
Control your mesh from your phone. A Telegram bot registers as a peer. Notifications from agents appear in your chat, messages you send get routed to peers.
# Tokens configured via `repowire setup`, or via env vars:
repowire telegram start
/peers- shows online peers with inline buttons- Tap a peer → type your message → sent as notification
- Sticky routing:
/select repowire→ all messages go there until/clear - Agents know
@telegramis you. They cannotify_peer('telegram', ...)to reach your phone
MCP Tools
| Tool | Type | Description |
|---|---|---|
list_peers |
Query | List all peers with status, circle, path, description |
ask_peer |
Blocking | Send a question and wait for the response |
notify_peer |
Fire-and-forget | Send a notification. Peer can notify_peer back when ready |
broadcast |
Fire-and-forget | Message all online peers in your circle |
whoami |
Query | Your own peer identity |
set_description |
Mutation | Update your task description, visible to all peers and the dashboard |
spawn_peer |
Mutation | Spawn a new agent session (requires allowlist config) |
kill_peer |
Mutation | Kill a previously spawned session |
list_peers and whoami return TSV (more token-efficient than JSON). For long-running requests, prefer notify_peer over ask_peer.
CLI Reference
repowire setup # Install hooks, MCP server, daemon service
repowire setup --relay # Same + enable remote dashboard via repowire.io
repowire setup --experimental-channels # Use channel transport (needs claude.ai login + bun)
repowire status # Show what's installed and running
repowire serve # Run daemon in foreground
repowire serve --relay # Run daemon with relay connection
repowire peer new PATH # Spawn new peer in tmux
repowire peer new . --circle dev # Spawn with custom circle
repowire peer list # List peers and their status
repowire peer prune # Remove offline peers
repowire telegram start # Run Telegram bot (config or env vars)
repowire slack start # Run Slack bot (config or env vars)
repowire update # Upgrade package, reinstall hooks, restart daemon
repowire uninstall # Remove all components (--yes to skip prompts)
Configuration
Config file: ~/.repowire/config.yaml
daemon:
host: "127.0.0.1"
port: 8377
auth_token: "optional-secret" # Require auth for WebSocket connections
# Allow agents to spawn new sessions via MCP (both lists must be non-empty)
spawn:
allowed_commands:
- claude
- codex
- gemini
allowed_paths:
- ~/git
- ~/projects
relay:
enabled: true # Connect to hosted relay
url: "wss://repowire.io"
api_key: "rw_..." # Auto-generated on first `repowire serve --relay`
telegram: # Optional, configured via `repowire setup`
bot_token: "..."
chat_id: "..."
slack: # Optional, configured via `repowire setup`
bot_token: "xoxb-..."
app_token: "xapp-..."
channel_id: "C..."
Peers auto-register via WebSocket on session start. No manual config needed.
Remote relay detailsrepowire setup --relay
# ✓ Relay enabled
# Dashboard: https://repowire.io/dashboard
Your daemon opens an outbound WebSocket to repowire.io. The relay bridges messages between daemons on different machines and proxies HTTP requests (dashboard, API) back through a cookie-authenticated tunnel.
Browser → repowire.io → enter key → cookie set → relay tunnels to local daemon
Daemon A ←WSS→ repowire.io ←WSS→ Daemon B (cross-machine mesh)
Self-host the relay: repowire relay start --port 8000
- WebSocket auth - set
daemon.auth_tokenin config to require bearer token for connections - CORS - restricted to localhost origins (plus
repowire.iowhen relay is enabled) - Spawn allowlist -
daemon.spawn.allowed_commandsandallowed_pathsmust both be non-empty for MCP spawn to work - Channel gating - channel transport is opt-in (
--experimental-channels), requires claude.ai login
Uninstall
# Remove hooks, MCP server, channel transport, and daemon service
repowire uninstall
# Remove the package itself
uv tool uninstall repowire
# or: pip uninstall repowire
repowire uninstall removes:
- Claude Code hooks + MCP server + channel transport
- Codex hooks + MCP config from
~/.codex/ - Gemini hooks + MCP config from
~/.gemini/settings.json - OpenCode plugin
- Daemon launchd/systemd service
Not removed automatically (contains your data/config):
~/.repowire/- config, session mappings, events, attachments- Relay API key in
~/.repowire/config.yaml
To fully clean up: rm -rf ~/.repowire
Contributing
See CONTRIBUTING.md.
License
MIT
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi