{"id":"9d2650fc-99c6-4821-92db-5c3384ce6748","slug":"bunsdev-omniwire-mcp","kind":"mcp","name":"omniwire-mcp","summary":"Unified mesh control layer — 30-tool MCP server for managing SSH nodes, file transfers, and config sync across distributed infrastructure","owner":"BunsDev","repoUrl":"https://github.com/BunsDev/omniwire-mcp","license":"GPL-3.0","licenseTier":"strong-copyleft","trust":"community","stars":3,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-03-21T19:02:49.000Z","addedAt":"2026-10-21T17:04:56.249Z","logoUrl":"https://avatars.githubusercontent.com/u/68980965?u=e58dc2791ab098a62f4f574a95bf0c7578e94e3b&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra","files-documents"],"tags":[],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T22:33:41.980Z","sample":false,"url":"https://conduits.dev/tools/bunsdev-omniwire-mcp","language":"TypeScript","transports":["stdio"],"install":{"npm":"omniwire"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<p align=\"center\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"assets/banner-dark.svg\" />\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"assets/banner-light.svg\" />\n    <img alt=\"OmniWire — The infrastructure layer for AI agent swarms\" src=\"assets/banner-dark.svg\" width=\"900\" />\n  </picture>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/omniwire\"><img src=\"https://img.shields.io/npm/v/omniwire?style=for-the-badge&logo=npm&color=CB3837&labelColor=0D1117\" alt=\"npm\" /></a>\n  <img src=\"https://img.shields.io/badge/MCP_Tools-81-59C2FF?style=for-the-badge&labelColor=0D1117\" alt=\"tools\" />\n  <img src=\"https://img.shields.io/badge/A2A-Protocol-00C853?style=for-the-badge&labelColor=0D1117\" alt=\"A2A\" />\n  <img src=\"https://img.shields.io/badge/Latency-~80ms-FF6D00?style=for-the-badge&labelColor=0D1117\" alt=\"latency\" />\n  <img src=\"https://img.shields.io/badge/CyberBase-Sync-CC93E6?style=for-the-badge&labelColor=0D1117\" alt=\"cyberbase\" />\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/GPL--3.0-license-8B949E?style=for-the-badge&labelColor=0D1117\" alt=\"license\" /></a>\n</p>\n\n<div align=\"center\">\n\n**The infrastructure layer for AI agent swarms.**\n\n81 MCP tools · A2A protocol · OmniMesh VPN · nftables firewall · CDP browser · cookie sync · CyberBase persistence\n\n</div>\n\n---\n\n## Quick Start\n\n```bash\nnpm install -g omniwire\n```\n\nAdd to your AI agent (Claude Code, Cursor, OpenCode, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"omniwire\": { \"command\": \"omniwire\", \"args\": [\"--stdio\"] }\n  }\n}\n```\n\n---\n\n## Why OmniWire?\n\n| Problem | OmniWire Solution |\n|---------|-------------------|\n| Managing multiple servers manually | One tool call controls any node |\n| Agents can't coordinate with each other | A2A messaging, events, semaphores |\n| Multi-step deploys need many round-trips | Pipelines chain steps in 1 call |\n| Flaky commands break agent loops | Built-in retry + assert + watch |\n| Long tasks block the agent | `background: true` on any tool |\n| Results lost between tool calls | Session store with `{{key}}` interpolation |\n| Different transfer methods for diff sizes | Auto-selects SFTP / netcat+LZ4 / aria2c |\n| SSH connections drop | Multi-path failover + circuit breaker |\n\n---\n\n## Use Cases\n\n<table>\n<tr>\n<td width=\"50%\">\n\n### DevOps & Infrastructure\n```bash\n# Deploy to all nodes in one call\nomniwire_deploy(src=\"contabo:/app/v2.tar.gz\", dst=\"/opt/app/\")\n\n# Rolling service restart\nomniwire_batch([\n  {node: \"node1\", command: \"systemctl restart app\"},\n  {node: \"node2\", command: \"systemctl restart app\"}\n], parallel=false)\n\n# Monitor disk across fleet\nomniwire_disk_usage()\n```\n\n</td>\n<td width=\"50%\">\n\n### Security & Pentesting\n```bash\n# Anonymous nmap through Mullvad VPN\nomniwire_exec(\n  node=\"contabo\",\n  command=\"nmap -sV -T4 target.com\",\n  via_vpn=\"mullvad:se\",\n  background=true\n)\n\n# Rotate exit IP between scans\nomniwire_vpn(action=\"rotate\", node=\"contabo\")\n\n# Run nuclei through VPN namespace\nomniwire_exec(command=\"nuclei -u target.com\",\n  via_vpn=\"mullvad\", store_as=\"nuclei_results\")\n```\n\n</td>\n</tr>\n<tr>\n<td>\n\n### Multi-Agent Coordination\n```bash\n# Agent A dispatches work\nomniwire_task_queue(action=\"enqueue\",\n  queue=\"recon\", task=\"subfinder -d target.com\")\n\n# Agent B picks it up\nomniwire_task_queue(action=\"dequeue\", queue=\"recon\")\n\n# Share findings on blackboard\nomniwire_blackboard(action=\"post\",\n  topic=\"subdomains\", data=\"api.target.com\")\n\n# A2A messaging between agents\nomniwire_a2a_message(action=\"send\",\n  channel=\"results\", message=\"scan complete\")\n```\n\n</td>\n<td>\n\n### Background & Async Workflows\n```bash\n# Long build in background\nomniwire_exec(\n  command=\"docker build -t app .\",\n  node=\"contabo\", background=true\n)\n# Returns: \"BACKGROUND bg-abc123\"\n\n# Check progress\nomniwire_bg(action=\"poll\", task_id=\"bg-abc123\")\n# Returns: \"RUNNING (45.2s)\"\n\n# Get result when done\nomniwire_bg(action=\"result\", task_id=\"bg-abc123\")\n\n# Pipeline: build → test → deploy\nomniwire_pipeline(steps=[\n  {node: \"contabo\", command: \"make build\"},\n  {node: \"contabo\", command: \"make test\"},\n  {command: \"deploy.sh\", store_as: \"version\"}\n])\n```\n\n</td>\n</tr>\n<tr>\n<td>\n\n### File Operations\n```bash\n# Transfer large dataset between nodes\nomniwire_transfer_file(\n  src=\"contabo:/data/model.bin\",\n  dst=\"hostinger:/ml/model.bin\"\n)\n# Auto-selects: aria2c (16-conn parallel)\n\n# Sync config to all nodes\nomniwire_deploy(\n  src_node=\"contabo\",\n  src_path=\"/etc/nginx/nginx.conf\",\n  dst_path=\"/etc/nginx/nginx.conf\"\n)\n```\n\n</td>\n<td>\n\n### VPN & Anonymous Operations\n```bash\n# Full Mullvad setup for a node\nomniwire_vpn(action=\"connect\", server=\"se\",\n  node=\"contabo\")\nomniwire_vpn(action=\"quantum\", config=\"on\")\nomniwire_vpn(action=\"daita\", config=\"on\")\nomniwire_vpn(action=\"multihop\", config=\"se:us\")\nomniwire_vpn(action=\"dns\", config=\"adblock\")\nomniwire_vpn(action=\"killswitch\", config=\"on\")\n\n# Verify anonymous IP\nomniwire_vpn(action=\"ip\", node=\"contabo\")\n\n# Node-wide VPN (mesh stays connected)\nomniwire_vpn(action=\"full-on\", server=\"de\")\n```\n\n</td>\n</tr>\n</table>\n\n---\n\n## Architecture\n\n```mermaid\ngraph TB\n    subgraph clients[\"AI Agents\"]\n        CC[\"Claude Code\"]\n        OC[\"OpenCode / OpenClaw\"]\n        CU[\"Cursor / Any MCP Client\"]\n        A2[\"Other Agents (A2A)\"]\n    end\n\n    subgraph omniwire[\"OmniWire MCP Server\"]\n        direction TB\n        MCP[\"MCP Protocol Layer<br/>stdio | SSE | REST\"]\n\n        subgraph tools[\"81 Tools\"]\n            direction LR\n            EXEC[\"Execution<br/>exec  run  batch<br/>broadcast  pipeline  bg\"]\n            AGENT[\"Agentic<br/>store  watch  task<br/>a2a  events  locks\"]\n            FILES[\"Files & Deploy<br/>read  write  transfer<br/>deploy  find\"]\n            SYS[\"System & DevOps<br/>docker  services<br/>cron  env  git  syslog\"]\n            SYNC[\"CyberSync<br/>sync  diff  search<br/>secrets  knowledge\"]\n        end\n\n        subgraph engine[\"Core Engine\"]\n            direction LR\n            POOL[\"SSH2 Pool<br/>persistent  compressed<br/>circuit breaker\"]\n            XFER[\"Transfer Engine<br/>SFTP  netcat+LZ4<br/>aria2c 16-conn\"]\n            CSYNC[\"Sync Engine<br/>PostgreSQL  XChaCha20<br/>parallel reconcile\"]\n        end\n    end\n\n    subgraph mesh[\"Infrastructure Mesh\"]\n        direction LR\n        N1[\"Node A<br/>storage\"]\n        N2[\"Node B<br/>compute\"]\n        N3[\"Node C<br/>GPU\"]\n        N4[\"Node D<br/>local\"]\n    end\n\n    DB[(\"PostgreSQL<br/>CyberBase\")]\n\n    CC & OC & CU & A2 -->|MCP| MCP\n    MCP --> tools\n    tools --> engine\n    POOL -->|\"SSH2 multi-path\"| N1 & N2 & N3\n    POOL -->|\"local exec\"| N4\n    CSYNC --> DB\n\n    style omniwire fill:#0D1117,stroke:#59C2FF,stroke-width:2px,color:#C6D0E1\n    style clients fill:#161B22,stroke:#91B362,stroke-width:1px,color:#C6D0E1\n    style mesh fill:#161B22,stroke:#E6B450,stroke-width:1px,color:#C6D0E1\n    style tools fill:#0D1117,stroke:#59C2FF,stroke-width:1px,color:#C6D0E1\n    style engine fill:#0D1117,stroke:#CC93E6,stroke-width:1px,color:#C6D0E1\n    style MCP fill:#162B44,stroke:#59C2FF,color:#59C2FF\n    style DB fill:#162B44,stroke:#CC93E6,color:#CC93E6\n```\n\n---\n\n## Key Capabilities\n\n<table>\n<tr>\n<td width=\"50%\">\n\n### Execution\n```\nomniwire_exec       single command + retry + assert\nomniwire_run        multi-line script (compact UI)\nomniwire_batch      N commands, 1 tool call, chaining\nomniwire_broadcast  parallel across all nodes\nomniwire_pipeline   multi-step DAG with data flow\nomniwire_bg         poll/list background tasks\n```\n\n</td>\n<td width=\"50%\">\n\n### Multi-Agent (A2A)\n```\nomniwire_store        session key-value store\nomniwire_a2a_message  agent-to-agent queues\nomniwire_event        pub/sub event bus\nomniwire_semaphore    distributed locking\nomniwire_agent_task   async background dispatch\nomniwire_workflow     reusable named DAGs\n```\n\n</td>\n</tr>\n<tr>\n<td>\n\n### Adaptive File Transfer\n```\n < 10 MB   SFTP         native, 80ms\n 10M-1GB   netcat+LZ4   compressed, 100ms\n > 1 GB    aria2c       16-parallel, max speed\n```\n\n</td>\n<td>\n\n### Connection Resilience\n```\nConnected --> Health Ping (30s, parallel)\n    |\nFailure --> Multi-path Failover\n    |         WireGuard -> Tailscale -> Public IP\n    |\n    +--> Retry (300ms -> 600ms -> ... -> 10s)\n    |\n3 fails --> Circuit OPEN (15s) -> Auto-recover\n```\n\n</td>\n</tr>\n<tr>\n<td>\n\n### Background Dispatch\n```\n# Any tool supports background: true\nexec(background=true)   -> \"bg-abc123\"\nbg(action=\"poll\", id=..) -> \"RUNNING (3.2s)\"\nbg(action=\"result\", id=..) -> full output\nbg(action=\"list\")       -> all tasks + status\n```\n\n</td>\n<td>\n\n### Agentic Chaining\n```\nexec(store_as=\"ip\")       store result\nexec(command=\"ping {{ip}}\") interpolate\nbatch(abort_on_fail=true)   fail-fast\nexec(format=\"json\")         structured output\nexec(retry=3, assert=\"ok\")  resilient\nwatch(assert=\"ready\")       poll until\n```\n\n</td>\n</tr>\n</table>\n\n---\n\n## All 81 Tools\n\n> **Every tool** supports `background: true` — returns a task ID immediately. Poll with `omniwire_bg`.\n\n<details>\n<summary><b>Execution (6)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_exec` | Run command on any node. `retry`, `assert`, `store_as`, `format:\"json\"`, `{{key}}`, `via_vpn`. |\n| `omniwire_run` | Multi-line scripts via temp file. |\n| `omniwire_batch` | N commands in 1 call. Chaining `{{prev}}`, `abort_on_fail`, parallel/sequential. |\n| `omniwire_broadcast` | Execute on all nodes simultaneously. |\n| `omniwire_pipeline` | Multi-step DAG with `{{prev}}`/`{{stepN}}` interpolation. |\n| `omniwire_bg` | List/poll/retrieve background task results. |\n\n</details>\n\n<details>\n<summary><b>Agentic / A2A (12)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_store` | Session key-value store for cross-call chaining. |\n| `omniwire_watch` | Poll until assert matches — deploys, builds, readiness. |\n| `omniwire_healthcheck` | Parallel health probe all nodes (disk, mem, load, docker). |\n| `omniwire_agent_task` | Background task dispatch with poll/retrieve. |\n| `omniwire_a2a_message` | Agent-to-agent message queues (send/receive/peek). |\n| `omniwire_semaphore` | Distributed locking — atomic acquire/release. |\n| `omniwire_event` | Pub/sub events per topic. |\n| `omniwire_workflow` | Reusable named workflow DAGs. |\n| `omniwire_agent_registry` | Agent capability discovery + heartbeat. |\n| `omniwire_blackboard` | Shared blackboard for swarm coordination. |\n| `omniwire_task_queue` | Distributed priority queue — enqueue/dequeue/complete. |\n| `omniwire_capability` | Query node capabilities for intelligent routing. |\n\n</details>\n\n<details>\n<summary><b>Files & Transfer (6)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_read_file` | Read file from any node (`node:/path`). |\n| `omniwire_write_file` | Write/create file on any node. |\n| `omniwire_list_files` | List directory contents. |\n| `omniwire_find_files` | Glob search across nodes. |\n| `omniwire_transfer_file` | Copy between nodes (auto SFTP/netcat/aria2c). |\n| `omniwire_deploy` | Deploy one file to all nodes in parallel. |\n\n</details>\n\n<details>\n<summary><b>Monitoring (3)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_mesh_status` | Health, latency, CPU/mem/disk — all nodes. |\n| `omniwire_node_info` | Detailed info for one node. |\n| `omniwire_live_monitor` | Snapshot metrics: cpu, memory, disk, network. |\n\n</details>\n\n<details>\n<summary><b>System & DevOps (12)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_process_list` | List/filter processes across nodes. |\n| `omniwire_disk_usage` | Disk usage for all nodes. |\n| `omniwire_tail_log` | Last N lines of a log file. |\n| `omniwire_install_package` | Install via apt/npm/pip. |\n| `omniwire_service_control` | systemd start/stop/restart/status. |\n| `omniwire_docker` | Docker commands on any node. |\n| `omniwire_kernel` | dmesg, sysctl, modprobe, lsmod, strace, perf. |\n| `omniwire_cron` | List/add/remove cron jobs. |\n| `omniwire_env` | Get/set persistent environment variables. |\n| `omniwire_network` | ping, traceroute, dns, ports, speed, connections. |\n| `omniwire_git` | Git commands on repos on any node. |\n| `omniwire_syslog` | Query journalctl with filters. |\n\n</details>\n\n<details>\n<summary><b>Network, VPN & Security (9)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_firewall` | nftables engine — presets, rate-limit, geo-block, port-knock, ban/unban. Mesh whitelisted. |\n| `omniwire_vpn` | Mullvad/OpenVPN/WireGuard/Tailscale — multi-hop, DAITA, quantum, killswitch. Mesh-safe. |\n| `omniwire_cookies` | Cookie management — JSON/Header/Netscape, browser extract, CyberBase + 1Password sync. |\n| `omniwire_cdp` | Chrome DevTools Protocol — headless Chrome, screenshot, PDF, DOM, cookies. |\n| `omniwire_proxy` | HTTP/SOCKS proxy management on any node. |\n| `omniwire_dns` | DNS resolve, set server, flush cache, block domains. |\n| `omniwire_port_forward` | SSH tunnels — create/list/close/mesh-expose. |\n| `omniwire_shell` | Persistent PTY session (preserves cwd/env). |\n| `omniwire_clipboard` | Shared clipboard buffer across mesh. |\n\n</details>\n\n<details>\n<summary><b>Infrastructure (9)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_backup` | Snapshot/restore paths. Diff, cleanup, retention. |\n| `omniwire_container` | Docker lifecycle — compose, build, push, logs, prune, stats. |\n| `omniwire_cert` | TLS certs — Let's Encrypt, check expiry, self-signed. |\n| `omniwire_user` | User & SSH key management, sudo config. |\n| `omniwire_schedule` | Distributed cron with failover. |\n| `omniwire_alert` | Threshold alerting — disk/mem/load/offline + webhook notify. |\n| `omniwire_log_aggregate` | Cross-node log search in parallel. |\n| `omniwire_benchmark` | CPU/memory/disk/network benchmarks. |\n| `omniwire_stream` | Capture streaming output (tail -f, watch). |\n\n</details>\n\n<details>\n<summary><b>OmniMesh & Events (6)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_omnimesh` | WireGuard mesh manager — init/up/down/add-peer/sync-peers/health/rotate-keys/topology. All OS. |\n| `omniwire_mesh_expose` | Expose localhost services to mesh — discover/expose/unexpose/expose-remote. |\n| `omniwire_mesh_gateway` | Auto-expose all localhost services mesh-wide. |\n| `omniwire_events` | Webhook + WebSocket + SSE event bus. Publish, manage webhooks, query log. |\n| `omniwire_knowledge` | CyberBase knowledge CRUD, text/semantic search, health, vacuum, bulk-set, export. |\n| `omniwire_update` | Self-update from npm + GitHub. Auto-update, mesh-wide push. |\n\n</details>\n\n<details>\n<summary><b>Agent Toolkit (7)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `omniwire_snippet` | Reusable command templates with `{{var}}` substitution. |\n| `omniwire_alias` | In-session command shortcuts. |\n| `omniwire_trace` | Distributed tracing — span waterfalls across nodes. |\n| `omniwire_doctor` | Health diagnostics — SSH, disk, mem, docker, WireGuard, CyberBase. |\n| `omniwire_metrics` | Prometheus-compatible metrics scrape/export. |\n| `omniwire_audit` | Command audit log — view/search/stats. |\n| `omniwire_plugin` | Plugin system — list/load from `~/.omniwire/plugins/`. |\n\n</details>\n\n<details>\n<summary><b>CyberSync (9)</b></summary>\n\n| Tool | Description |\n|------|-------------|\n| `cybersync_status` | Sync status, item counts, pending syncs. |\n| `cybersync_sync_now` | Trigger immediate reconciliation. |\n| `cybersync_diff` | Local vs database differences. |\n| `cybersync_history` | Sync event log. |\n| `cybersync_search_knowledge` | Full-text search unified knowledge base. |\n| `cybersync_get_memory` | Retrieve Claude memory from PostgreSQL. |\n| `cybersync_manifest` | Tracked files per tool. |\n| `cybersync_force_push` | Force push file to all nodes. |\n| `omniwire_secrets` | Secrets management (1Password, file, env). |\n\n</details>\n\n---\n\n## Performance\n\n| Operation | Latency | Optimization |\n|-----------|---------|-------------|\n| **Command exec** | **~80ms** | AES-128-GCM cipher, persistent SSH2, zero-fork `:` ping |\n| **Mesh status** | **~100ms** | Parallel probes, 5s cache, single `/proc` read |\n| **File read (<1MB)** | **~60ms** | SFTP-first (skips `cat` fork) |\n| **Transfer (10MB)** | **~120ms** | LZ4 compression (10x faster than gzip) |\n| **Transfer (1GB)** | **~8s** | aria2c 16-connection parallel |\n| **Pipeline (5 steps)** | **~400ms** | `{{prev}}` interpolation, no extra tool calls |\n| **Health check (all)** | **~90ms** | Parallel Promise.allSettled |\n| **A2A message** | **~85ms** | File-append queue, atomic dequeue |\n| **Reconnect** | **~300ms** | 300ms initial, 2s keepalive, 15s circuit breaker |\n\n<details>\n<summary><b>Optimization details</b></summary>\n\n- **Cipher**: AES-128-GCM (AES-NI hardware accelerated)\n- **Key exchange**: curve25519-sha256 (fastest modern KEX)\n- **Keepalive**: 2s interval, 2 retries = 4s dead detection\n- **Port finder**: `shuf` (pure bash) replaces `python3 -c socket` (-30ms)\n- **Compression**: LZ4-1 for transfers (10x faster than gzip)\n- **Buffer**: Array push + join (O(n) vs O(n^2) string concat)\n- **Status**: Single `/proc` read replaces multiple piped commands\n- **Health ping**: `:` builtin (no hash lookup, no fork)\n- **Reads**: SFTP tried first, `cat` fallback only on failure\n- **Circuit breaker**: 15s recovery, 10s reconnect cap\n\n</details>\n\n---\n\n## Security\n\n- All remote execution via `ssh2.Client.exec()` -- never `child_process.exec()`\n- Key-based auth only, no passwords stored, SSH key caching\n- Multi-path failover: WireGuard -> Tailscale -> Public IP\n- XChaCha20-Poly1305 at-rest encryption for synced configs\n- 2MB output guard prevents memory exhaustion\n- 4KB auto-truncation prevents context window bloat\n- Circuit breaker isolates failing nodes\n- CORS restricted to localhost on REST API\n\n---\n\n## Transport Modes\n\n| Mode | Port | Use Case |\n|------|------|----------|\n| `--stdio` | -- | Claude Code, Cursor, MCP subprocess |\n| `--sse-port=N` | 3200 | OpenCode, remote HTTP MCP clients |\n| `--rest-port=N` | 3201 | Scripts, dashboards, non-MCP |\n\n```bash\nomniwire --stdio                          # MCP mode (default)\nomniwire --sse-port=3200 --rest-port=3201 # HTTP mode\nomniwire --stdio --no-sync               # MCP without CyberSync\nomniwire    # or: ow                      # Interactive REPL\n```\n\n---\n\n## Configure Mesh\n\nCreate `~/.omniwire/mesh.json`:\n\n```json\n{\n  \"nodes\": [\n    { \"id\": \"server1\", \"host\": \"10.0.0.1\", \"user\": \"root\", \"identityFile\": \"id_ed25519\", \"role\": \"storage\" },\n    { \"id\": \"server2\", \"host\": \"10.0.0.2\", \"user\": \"root\", \"identityFile\": \"id_ed25519\", \"role\": \"compute\" }\n  ]\n}\n```\n\n---\n\n## Changelog\n\n<details>\n<summary><b>v3.0.0 -- 81 Tools, CyberBase Persistence, Full Platform</b></summary>\n\n**19 new tools**: proxy, dns, backup, container, cert, user, schedule, alert, log_aggregate, benchmark, snippet, alias, trace, doctor, metrics, audit, plugin, cookies, cdp.\n\n**CyberBase auto-persistence**: Store, audit, blackboard, cookies all sync to PostgreSQL. pgvector semantic search. 5s statement_timeout on all DB calls.\n\n**Architecture**: Priority command queues, smart output truncation, predictive node selection, latency history, connection pool stats.\n\n**Security**: Command denylist (blocks rm -rf /, fork bombs, disk wipes). Audit log with CyberBase persistence.\n\n**A2A**: Typed message schemas (JSON validation), dead letter queue for failed tasks, pub/sub event filters.\n\n**DX**: GitHub Actions CI, bash/zsh/fish shell completions, --json flag, cookie sync to 1Password.\n\n</details>\n\n<details>\n<summary><b>v2.7.0 -- Firewall Engine</b></summary>\n\n**`omniwire_firewall`**: nftables-based firewall engine with 17 actions. Presets (server, paranoid, minimal, pentest), rate-limiting, geo-blocking by country, port-knocking sequences, IP ban/unban, whitelist/blacklist, rule management, audit log, save/restore.\n\n**Zero mesh impact**: wg0, wg1, tailscale0, and all mesh CIDRs (10.10.0.0/24, 10.20.0.0/24, 100.64.0.0/10) are always whitelisted before any hardening rules. nftables runs in kernel space — zero latency overhead.\n\n</details>\n\n<details>\n<summary><b>v2.6.0 -- VPN Integration, Mesh-Safe Anonymous Scanning</b></summary>\n\n**`omniwire_vpn`** tool: Mullvad, OpenVPN, WireGuard, Tailscale. Split-tunnel (per-command) + full-node modes. Mesh connectivity (wg0, wg1, Tailscale) always preserved via route exclusions and network namespace isolation.\n\n**`via_vpn` on exec**: Route any command through VPN using Linux network namespaces. Only the command's traffic goes through VPN — SSH/WireGuard mesh stays on real interface.\n\n**Modes**: `connect` (split-tunnel), `full-on` (node-wide with mesh exclusions), `rotate` (new exit IP), `status`, `list`, `ip`.\n\n</details>\n\n<details>\n<summary><b>v2.5.1 -- Universal Background Dispatch</b></summary>\n\n**`background: true`** auto-injected into all 81 tools via server-level wrapper. Returns task ID, poll with `omniwire_bg`. New `omniwire_bg` tool for list/poll/result.\n\n</details>\n\n<details>\n<summary><b>v2.5.0 -- Performance Overhaul, A2A Protocol Expansion</b></summary>\n\n**Performance**: AES-128-GCM cipher, curve25519-sha256 KEX, 2s keepalive, LZ4 transfers (10x faster), `shuf` port finder (-30ms), SFTP-first reads, array buffer concat, `/proc` single-read status, `:` builtin health ping, 300ms reconnect start, 15s circuit breaker.\n\n**4 new A2A tools** (49 -> 53): agent_registry (capability discovery), blackboard (swarm collaboration), task_queue (distributed work), capability (node routing).\n\n</details>\n\n<details>\n<summary><b>v2.4.0 -- Agentic Loop, A2A, Multi-Agent Orchestration</b></summary>\n\n9 new agentic tools (40 -> 49): store, pipeline, watch, healthcheck, agent_task, a2a_message, semaphore, event, workflow. Agentic upgrades: `format:\"json\"`, `retry`, `assert`, `store_as`, `{{key}}` interpolation.\n\n</details>\n\n<details>\n<summary><b>v2.3.0 -- Compact Output, Speed, New Tools</b></summary>\n\nOutput overhaul (auto-truncation, smart time, tabular multi-node). 6 new DevOps tools (cron, env, network, clipboard, git, syslog).\n\n</details>\n\n<details>\n<summary><b>v2.2.1 -- v2.1.0</b></summary>\n\nSecurity fixes, multi-path SSH failover, CyberBase integration, VaultBridge Obsidian mirror.\n\n</details>\n\n---\n\n```\nomniwire/\n  src/\n    mcp/           MCP server (81 tools, 3 transports)\n    nodes/         SSH2 pool, transfer engine, PTY, tunnels\n    sync/          CyberSync + CyberBase (PostgreSQL, Obsidian, encryption)\n    protocol/      Mesh config, types, path parsing\n    commands/      Interactive REPL\n    ui/            Terminal formatting\n```\n\n**Requirements:** Node.js >= 20 &bull; SSH key access to nodes &bull; PostgreSQL (CyberSync only) &bull; WireGuard recommended\n\n---\n\n<br/>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/omniwire\"><img src=\"https://img.shields.io/npm/dm/omniwire?style=flat-square&color=59C2FF&labelColor=0D1117&label=downloads\" alt=\"downloads\" /></a>\n  <a href=\"https://github.com/VoidChecksum/omniwire/stargazers\"><img src=\"https://img.shields.io/github/stars/VoidChecksum/omniwire?style=flat-square&color=E6B450&labelColor=0D1117\" alt=\"stars\" /></a>\n  <a href=\"https://github.com/VoidChecksum/omniwire/issues\"><img src=\"https://img.shields.io/github/issues/VoidChecksum/omniwire?style=flat-square&color=FF6D00&labelColor=0D1117\" alt=\"issues\" /></a>\n</p>\n\n<p align=\"center\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"assets/footer-dark.svg\" />\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"assets/footer-light.svg\" />\n    <img alt=\"Built for the machines that build for us.\" src=\"assets/footer-dark.svg\" width=\"900\" />\n  </picture>\n</p>\n"}