内容
[](https://mseep.ai/app/voidchecksum-omniwire)
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/banner-dark.svg" />
<source media="(prefers-color-scheme: light)" srcset="assets/banner-light.svg" />
<img alt="OmniWire — 人工智能代理群的基础设施层" src="assets/banner-dark.svg" width="900" />
</picture>
</p>
<p align="center">
<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>
<img src="https://img.shields.io/badge/MCP_Tools-88-59C2FF?style=for-the-badge&labelColor=0D1117" alt="工具" />
<img src="https://img.shields.io/badge/A2A-Protocol-00C853?style=for-the-badge&labelColor=0D1117" alt="A2A 协议" />
<img src="https://img.shields.io/badge/Latency-~80ms-FF6D00?style=for-the-badge&labelColor=0D1117" alt="延迟" />
<img src="https://img.shields.io/badge/CyberBase-Sync-CC93E6?style=for-the-badge&labelColor=0D1117" alt="CyberBase 同步" />
<a href="LICENSE"><img src="https://img.shields.io/badge/GPL--3.0-license-8B949E?style=for-the-badge&labelColor=0D1117" alt="许可证" /></a>
<a href="https://clawhub.ai/voidchecksum/omniwire"><img src="https://img.shields.io/badge/ClawHub-Skill-F97316?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyIDZDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDZ6IiBmaWxsPSJ3aGl0ZSIvPjwvc3ZnPg==&labelColor=0D1117" alt="ClawHub" /></a>
<a href="https://docs.openclaw.ai/"><img src="https://img.shields.io/badge/OpenClaw-Compatible-FF4500?style=for-the-badge&logo=lobster&logoColor=white&labelColor=0D1117" alt="OpenClaw" /></a>
</p>
<div align="center">
**人工智能代理群的基础设施层**
88 MCP 工具 · A2A 协议 · OmniMesh VPN · nftables 防火墙 · CDP 浏览器 · cookie 同步 · 2FA TOTP · 双向同步 · CyberBase 持久化
</div>
---
## 快速开始
```bash
npm install -g omniwire
```
添加到您的 AI 代理(Claude Code、Cursor、OpenCode 等):
```json
{
"mcpServers": {
"omniwire": { "command": "omniwire", "args": ["--stdio"] }
}
}
```
---
## 为什么选择 OmniWire?
| 问题 | OmniWire 解决方案 |
|---------|-------------------|
| 手动管理多个服务器 | 一个工具调用控制任何节点 |
| 代理之间无法协调 | A2A 消息传递、事件、信号量 |
| 多步骤部署需要多次往返 | 管道链式步骤,1 次调用 |
| 不稳定的命令破坏代理循环 | 内置重试 + 断言 + 监视 |
| 长期任务阻塞代理 | 任何工具的 `background: true` |
| 工具调用之间结果丢失 | 会话存储,带有 `{{key}}` 插值 |
| 不同大小的传输方法不同 | 自动选择 SFTP / netcat+LZ4 / aria2c |
| SSH 连接断开 | 多路径故障转移 + 电路中断器 |
---
## 用例
<table>
<tr>
<td width="50%">
### DevOps 和基础设施
```bash
# 一次调用部署到所有节点
omniwire_deploy(src="node-a:/app/v2.tar.gz", dst="/opt/app/")
# 滚动服务重启
omniwire_batch([
{node: "node1", command: "systemctl restart app"},
{node: "node2", command: "systemctl restart app"}
], parallel=false)
# 监控整个集群的磁盘使用情况
omniwire_disk_usage()
```
</td>
<td width="50%">
### 安全和渗透测试
```bash
# 通过 Mullvad VPN 进行匿名 nmap
omniwire_exec(
node="node-a",
command="nmap -sV -T4 target.com",
via_vpn="mullvad:se",
background=true
)
# 在扫描之间旋转出口 IP
omniwire_vpn(action="rotate", node="node-a")
# 通过 VPN 命名空间运行 nuclei
omniwire_exec(command="nuclei -u target.com",
via_vpn="mullvad", store_as="nuclei_results")
```
</td>
</tr>
<tr>
<td>
### 多代理协调
```bash
# 代理 A 调度工作
omniwire_task_queue(action="enqueue",
queue="recon", task="subfinder -d target.com")
# 代理 B 接管
omniwire_task_queue(action="dequeue", queue="recon")
# 在公告板上分享发现结果
omniwire_blackboard(action="post",
topic="subdomains", data="api.target.com")
# 代理之间的 A2A 消息传递
omniwire_a2a_message(action="send",
channel="results", message="scan complete")
```
</td>
<td>
### 后台和异步工作流
```bash
# 在后台进行长时间构建
omniwire_exec(
command="docker build -t app .",
node="node-a", background=true
)
# 返回: "BACKGROUND bg-abc123"
# 检查进度
omniwire_bg(action="poll", task_id="bg-abc123")
# 返回: "RUNNING (45.2s)"
# 获取完成后的结果
omniwire_bg(action="result", task_id="bg-abc123")
# 管道:构建 → 测试 → 部署
omniwire_pipeline(steps=[
{node: "node-a", command: "make build"},
{node: "node-a", command: "make test"},
{command: "deploy.sh", store_as: "version"}
])
```
</td>
</tr>
<tr>
<td>
### 文件操作
```bash
# 在节点之间传输大型数据集
omniwire_transfer_file(
src="node-a:/data/model.bin",
dst="hostinger:/ml/model.bin"
)
# 自动选择:aria2c(16 连接并行)
# 同步配置到所有节点
omniwire_deploy(
src_node="node-a",
src_path="/etc/nginx/nginx.conf",
dst_path="/etc/nginx/nginx.conf"
)
```
</td>
<td>
### VPN 和匿名操作
```bash
# 节点的完整 Mullvad 设置
omniwire_vpn(action="connect", server="se",
node="node-a")
omniwire_vpn(action="quantum", config="on")
omniwire_vpn(action="daita", config="on")
omniwire_vpn(action="multihop", config="se:us")
omniwire_vpn(action="dns", config="adblock")
omniwire_vpn(action="killswitch", config="on")
# 验证匿名 IP
omniwire_vpn(action="ip", node="node-a")
# 全节点 VPN(网格保持连接)
omniwire_vpn(action="full-on", server="de")
```
</td>
</tr>
</table>
---
## 架构
```mermaid
graph TB
subgraph clients["AI 代理"]
CC["Claude Code"]
OC["OpenCode / OpenClaw"]
CU["Cursor / 任意 MCP 客户端"]
A2["其他代理(A2A)"]
end
subgraph omniwire["OmniWire MCP 服务器"]
direction TB
MCP["MCP 协议层<br/>stdio | SSE | REST"]
subgraph tools["88 工具"]
direction LR
EXEC["执行<br/>exec run batch<br/>broadcast pipeline bg"]
AGENT["代理<br/>store watch task<br/>a2a events locks"]
FILES["文件和部署<br/>read write transfer<br/>deploy find"]
SYS["系统和 DevOps<br/>docker services<br/>cron env git syslog"]
SYNC["CyberSync<br/>sync diff search<br/>secrets knowledge"]
end
subgraph engine["核心引擎"]
direction LR
POOL["SSH2 连接池<br/>persistent compressed<br/>circuit breaker"]
XFER["传输引擎<br/>SFTP netcat+LZ4<br/>aria2c 16 连接"]
CSYNC["同步引擎<br/>PostgreSQL XChaCha20<br/>parallel reconcile"]
end
end
subgraph mesh["基础设施网格"]
direction LR
N1["节点 A<br/>存储"]
N2["节点 B<br/>计算"]
N3["节点 C<br/>GPU"]
N4["节点 D<br/>本地"]
end
DB[("PostgreSQL<br/>CyberBase")]
CC & OC & CU & A2 -->|MCP| MCP
MCP --> tools
tools --> engine
POOL -->|"SSH2 多路径"| N1 & N2 & N3
POOL -->|"本地执行"| N4
CSYNC --> DB
style omniwire fill:#0D1117,stroke:#59C2FF,stroke-width:2px,color:#C6D0E1
style clients fill:#161B22,stroke:#91B362,stroke-width:1px,color:#C6D0E1
style mesh fill:#161B22,stroke:#E6B450,stroke-width:1px,color:#C6D0E1
style tools fill:#0D1117,stroke:#59C2FF,stroke-width:1px,color:#C6D0E1
style engine fill:#0D1117,stroke:#CC93E6,stroke-width:1px,color:#C6D0E1
style MCP fill:#162B44,stroke:#59C2FF,color:#59C2FF
style DB fill:#162B44,stroke:#CC93E6,color:#CC93E6
```
---
## 代理设置说明
### OpenClaw
OmniWire 作为 [ClawHub 技能](https://clawhub.ai/voidchecksum/omniwire) 提供:
```bash
# 通过 ClawHub CLI 安装
clawhub install omniwire
# 或手动:将 integrations/openclaw/SKILL.md 复制到您的 OpenClaw 技能目录
cp integrations/openclaw/SKILL.md ~/.openclaw/skills/omniwire.md
```
CyberSync 自动将 OpenClaw 代理、技能、内存和工作空间摄入到 CyberBase PostgreSQL。
### PaperClip
注册 OmniWire 作为零成本基础设施代理:
```json
{
"agents": [{
"name": "omniwire",
"type": "local-cli",
"command": "omniwire --stdio",
"skills": ["mesh-exec", "file-transfer", "service-control", "docker", "vpn", "scraping", "firewall"],
"budget": { "monthly_usd": 0 }
}]
}
```
查看 `integrations/paperclip/` 以获取完整的适配器和技能定义。
### Claude Code
```json
{
"mcpServers": {
"omniwire": {
"command": "omniwire",
"args": ["--stdio"]
}
}
}
```
### OpenCode / Oh-My-OpenAgent
```json
{
"mcp": {
"omniwire": {
"type": "local",
"command": ["omniwire", "--stdio"]
}
}
}
```
### Codex / Gemini
CyberSync 自动将 OmniWire 配置同步到 Codex 和 Gemini 环境。
---
## 主要功能
<table>
<tr>
<td width="50%">
### 执行
```
omniwire_exec 单个命令 + 重试 + 断言
omniwire_run 多行脚本(紧凑 UI)
omniwire_batch N 个命令,1 次调用,链式
omniwire_broadcast 并行执行所有节点
omniwire_pipeline 具有数据流的多步骤 DAG
omniwire_bg 列出/轮询后台任务
```
</td>
<td width="50%">
### 多代理(A2A)
```
omniwire_store 会话键值存储,用于跨调用链接
omniwire_a2a_message 代理到代理队列
omniwire_event 发布/订阅事件总线
omniwire_semaphore 分布式锁定
omniwire_agent_task 后台异步调度
omniwire_workflow 可重用的命名 DAG
```
</td>
</tr>
<tr>
<td>
### 自适应文件传输
```
< 10 MB SFTP 原生,80ms
10M-1GB netcat+LZ4 压缩,100ms
> 1 GB aria2c 16 并行,最大速度
```
</td>
<td>
### 连接弹性
```
已连接 --> 健康检查(30s,并行)
|
失败 --> 多路径故障转移
| WireGuard -> Tailscale -> 公共 IP
|
+--> 重试(300ms -> 600ms -> ... -> 10s)
|
3 次失败 --> 电路打开(15s)-> 自动恢复
```
</td>
</tr>
<tr>
<td>
### 后台调度
```
# 任何工具都支持 background: true
exec(background=true) -> "bg-abc123"
bg(action="poll", id=..) -> "RUNNING (3.2s)"
bg(action="result", id=..) -> 完整输出
bg(action="list") -> 所有任务 + 状态
```
</td>
<td>
### 代理链接
```
exec(store_as="ip") 存储结果
exec(command="ping {{ip}}") 插值
batch(abort_on_fail=true) 快速失败
exec(format="json") 结构化输出
exec(retry=3, assert="ok") 弹性
watch(assert="ready") 轮询直到
```
</td>
</tr>
</table>
---
## 所有 88 个工具
> **每个工具**都支持 `background: true` — 立即返回任务 ID。 使用 `omniwire_bg` 轮询。
<details>
<summary><b>执行(6)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_exec` | 在任何节点上运行命令。`retry`、`assert`、`store_as`、`format:"json"`、`{{key}}`、`via_vpn`。 |
| `omniwire_run` | 通过临时文件进行多行脚本。 |
| `omniwire_batch` | 1 次调用中的 N 个命令。链接 `{{prev}}`、`abort_on_fail`、并行/顺序。 |
| `omniwire_broadcast` | 在所有节点上同时执行。 |
| `omniwire_pipeline` | 具有 `{{prev}}`/`{{stepN}}` 插值的多步骤 DAG。 |
| `omniwire_bg` | 列出/轮询/检索后台任务结果。 |
</details>
<details>
<summary><b>代理/A2A(12)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_store` | 用于跨调用链接的会话键值存储。 |
| `omniwire_watch` | 轮询直到断言匹配 — 部署、构建、就绪。 |
| `omniwire_healthcheck` | 所有节点的并行健康探测(磁盘、内存、负载、docker)。 |
| `omniwire_agent_task` | 具有轮询/检索的后台任务调度。 |
| `omniwire_a2a_message` | 代理到代理消息队列(发送/接收/查看)。 |
| `omniwire_semaphore` | 分布式锁定 — 原子获取/释放。 |
| `omniwire_event` | 主题的发布/订阅事件。 |
| `omniwire_workflow` | 可重用的命名工作流 DAG。 |
| `omniwire_agent_registry` | 代理能力发现 + 心跳。 |
| `omniwire_blackboard` | 用于群集协调的共享公告板。 |
| `omniwire_task_queue` | 分布式优先级队列 — 入队/出队/完成。 |
| `omniwire_capability` | 查询节点能力以进行智能路由。 |
</details>
<details>
<summary><b>文件和传输(6)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_read_file` | 从任何节点读取文件(`node:/path`)。 |
| `omniwire_write_file` | 在任何节点上写入/创建文件。 |
| `omniwire_list_files` | 列出目录内容。 |
| `omniwire_find_files` | 跨节点进行 glob 搜索。 |
| `omniwire_transfer_file` | 在节点之间复制(自动 SFTP/netcat/aria2c)。 |
| `omniwire_deploy` | 并行将一个文件部署到所有节点。 |
</details>
<details>
<summary><b>监控(3)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_mesh_status` | 健康、延迟、CPU/内存/磁盘 — 所有节点。 |
| `omniwire_node_info` | 单个节点的详细信息。 |
| `omniwire_live_monitor` | 实时指标:CPU、内存、磁盘、网络。 |
</details>
<details>
<summary><b>系统和 DevOps(12)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_process_list` | 列出/筛选节点上的进程。 |
| `omniwire_disk_usage` | 所有节点的磁盘使用情况。 |
| `omniwire_tail_log` | 日志文件的最后 N 行。 |
| `omniwire_install_package` | 通过 apt/npm/pip 安装。 |
| `omniwire_service_control` | systemd 启动/停止/重启/状态。 |
| `omniwire_docker` | 任何节点上的 Docker 命令。 |
| `omniwire_kernel` | dmesg、sysctl、modprobe、lsmod、strace、perf。 |
| `omniwire_cron` | 列出/添加/删除 cron 作业。 |
| `omniwire_env` | 获取/设置持久环境变量。 |
| `omniwire_network` | ping、traceroute、dns、端口、速度、连接。 |
| `omniwire_git` | 节点上的 Git 命令。 |
| `omniwire_syslog` | 使用筛选器查询 journalctl。 |
</details>
<details>
<summary><b>网络、VPN 和安全(9)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_firewall` | nftables 引擎 — 预设、速率限制、地理封锁、端口敲门、禁止/解禁。网格白名单。 |
| `omniwire_vpn` | Mullvad/OpenVPN/WireGuard/Tailscale — 多跳、DAITA、量子、killswitch。网格安全。 |
| `omniwire_cookies` | Cookie 管理 — JSON/Header/Netscape、浏览器提取、CyberBase + 1Password 同步。 |
| `omniwire_cdp` | Chrome DevTools 协议 — 无头 Chrome、截图、PDF、DOM、cookie。 |
| `omniwire_proxy` | 任意节点上的 HTTP/SOCKS 代理管理。 |
| `omniwire_dns` | DNS 解析、设置服务器、刷新缓存、阻止域名。 |
| `omniwire_port_forward` | SSH 隧道 — 创建/列出/关闭/网格暴露。 |
| `omniwire_shell` | 持久 PTY 会话(保留 cwd/env)。 |
| `omniwire_clipboard` | 跨网格共享剪贴板缓冲区。 |
</details>
<details>
<summary><b>基础设施(9)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_backup` | 快照/恢复路径。差异、清理、保留。 |
| `omniwire_container` | Docker 生命周期 — compose、build、push、logs、prune、stats。 |
| `omniwire_cert` | TLS 证书 — Let's Encrypt、检查到期、自签名。 |
| `omniwire_user` | 用户和 SSH 密钥管理、sudo 配置。 |
| `omniwire_schedule` | 具有故障转移的分布式 cron。 |
| `omniwire_alert` | 阈值警报 — 磁盘/内存/负载/离线 + webhook 通知。 |
| `omniwire_log_aggregate` | 跨节点日志搜索。 |
| `omniwire_benchmark` | CPU/内存/磁盘/网络基准测试。 |
| `omniwire_stream` | 捕获流式输出(tail -f、watch)。 |
</details>
<details>
<summary><b>OmniMesh 和事件(6)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_omnimesh` | WireGuard 网格管理器 — init/up/down/add-peer/sync-peers/health/rotate-keys/topology。所有操作系统。 |
| `omniwire_mesh_expose` | 暴露本地服务到网格 — 发现/暴露/取消暴露/暴露远程。 |
| `omniwire_mesh_gateway` | 自动将所有本地服务暴露到网格范围内。 |
| `omniwire_events` | Webhook + WebSocket + SSE 事件总线。发布、管理 webhook、查询日志。 |
| `omniwire_knowledge` | CyberBase 知识 CRUD、文本/语义搜索、健康、清理、批量设置、导出。 |
| `omniwire_update` | 自身更新 — 来自 npm 和 GitHub。自动更新、网格范围推送。 |
</details>
<details>
<summary><b>代理工具包(7)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `omniwire_snippet` | 可重用的命令模板,带有 `{{var}}` 替换。 |
| `omniwire_alias` | 会话命令快捷方式。 |
| `omniwire_trace` | 分布式跟踪 — 跨节点的 span 瀑布流。 |
| `omniwire_doctor` | 健康诊断 — SSH、磁盘、内存、docker、WireGuard、CyberBase。 |
| `omniwire_metrics` | Prometheus 兼容的指标抓取/导出。 |
| `omniwire_audit` | 命令审计日志 — 视图/搜索/统计。 |
| `omniwire_plugin` | 插件系统 — 从 `~/.omniwire/plugins/` 加载/列出。 |
</details>
<details>
<summary><b>CyberSync(9)</b></summary>
| 工具 | 描述 |
|------|-------------|
| `cybersync_status` | 同步状态、项目计数、待处理同步。 |
| `cybersync_sync_now` | 触发立即协调。 |
| `cybersync_diff` | 本地与数据库的差异。 |
| `cybersync_history` | 同步事件日志。 |
| `cybersync_search_knowledge` | 全文搜索统一知识库。 |
| `cybersync_get_memory` | 从 PostgreSQL 检索 Claude 内存。 |
| `cybersync_manifest` | 每个工具跟踪的文件。 |
| `cybersync_force_push` | 强制将文件推送到所有节点。 |
| `omniwire_secrets` | 机密管理(1Password、文件、环境变量)。 |
</details>
---
## 性能
| 操作 | 延迟 | 优化 |
|-----------|---------|-------------|
| **命令执行** | **约80毫秒** | AES-128-GCM 加密算法,持久化 SSH2,无需 fork 的 `:` ping |
| **网格状态** | **约100毫秒** | 并行探测,5秒缓存,单次 `/proc` 读取 |
| **文件读取(<1MB)** | **约60毫秒** | 优先使用 SFTP(跳过 `cat` fork) |
| **传输(10MB)** | **约120毫秒** | LZ4 压缩(比 gzip 快 10 倍) |
| **传输(1GB)** | **约8秒** | aria2c 16 连接并行 |
| **管道(5 步)** | **约400毫秒** | `{{prev}}` 插值,无额外工具调用 |
| **健康检查(全部)** | **约90毫秒** | 并行 Promise.allSettled |
| **A2A 消息** | **约85毫秒** | 文件追加队列,原子出队 |
| **重新连接** | **约300毫秒** | 300毫秒初始,2秒心跳,15秒电路中断器 |
<details>
<summary><b>优化细节</b></summary>
- **加密算法**:AES-128-GCM(AES-NI 硬件加速)
- **密钥交换**:curve25519-sha256(最快的现代 KEX)
- **心跳**:2秒间隔,2次重试 = 4秒死亡检测
- **端口查找器**:`shuf`(纯 bash)替换 `python3 -c socket`(-30毫秒)
- **压缩**:LZ4-1 用于传输(比 gzip 快 10 倍)
- **缓冲区**:数组推送 + 连接(O(n) vs O(n^2) 字符串连接)
- **状态**:单次 `/proc` 读取替换多个管道命令
- **健康 ping**:`:` 内置命令(无需哈希查找,无需 fork)
- **读取**:优先使用 SFTP,`cat` 仅在失败时回落
- **电路中断器**:15秒恢复,10秒重新连接上限
</details>
---
## 安全
- 所有远程执行均通过 `ssh2.Client.exec()` -- 绝不使用 `child_process.exec()`
- 仅使用基于密钥的身份验证,不存储密码,SSH 密钥缓存
- 多路径故障转移:WireGuard -> Tailscale -> 公共 IP
- 默认情况下,带有秘密的工具输出会被编辑(`omniwire_env` 列出密钥,不列出值)
- 生产环境中的机密首选 1Password 或另一个托管的保险箱;文件/环境后端是本地开发的备用方案
- 2MB 输出限制防止内存耗尽
- 4KB 自动截断防止上下文窗口膨胀
- 电路中断器隔离失败的节点
- REST API 上限制 CORS 到 localhost
---
## 传输模式
| 模式 | 端口 | 用例 |
|------|------|----------|
| `--stdio` | -- | Claude Code,Cursor,MCP 子进程 |
| `--sse-port=N` | 3200 | OpenCode,远程 HTTP MCP 客户端 |
| `--rest-port=N` | 3201 | 脚本,仪表板,非 MCP |
```bash
omniwire --stdio # MCP 模式(默认)
omniwire --sse-port=3200 --rest-port=3201 # HTTP 模式
omniwire --stdio --no-sync # MCP 无 CyberSync
omniwire # 或:ow # 交互式 REPL
```
---
## 配置网格
在 `~/.omniwire/mesh.json` 中创建:
```json
{
"nodes": [
{ "id": "server1", "host": "10.0.0.1", "user": "root", "identityFile": "id_ed25519", "role": "storage" },
{ "id": "server2", "host": "10.0.0.2", "user": "root", "identityFile": "id_ed25519", "role": "compute" }
]
}
```
---
## Agentic 安装 / 设置
> 要为 OmniWire 网格添加新节点 - 需要准备的内容,如何连接,以及如何连接到 Claude Code。
### 先决条件
| 要求 | 说明 |
|-------------|-------|
| **Node.js >= 20** | 使用 `node -v` 验证 |
| **npm >= 9** | 随 Node.js 20+ 提供 |
| **WireGuard** | `wg` CLI + 内核模块(Linux:`apt install wireguard`,macOS:Homebrew,Windows:GUI 安装程序) |
| **SSH 密钥对** | 推荐 Ed25519 - `ssh-keygen -t ed25519 -f ~/.ssh/id_omniwire` |
| **SSH 访问节点** | 密钥部署到 `~/.ssh/authorized_keys` 在每个远程节点上 |
| **1Password CLI** | `op` v2+,已登录 - `omniwire_secrets` 和保险箱同步到 vault 所需 |
| **PostgreSQL(可选)** | 仅 CyberSync / CyberBase 持久性需要 - 节点 A 托管它(相应配置 CYBERSYNC_DB_URL) |
### 安装 OmniWire
```bash
npm install -g omniwire
omniwire --version # 验证
```
### 添加新节点
**1. 在新节点上生成 WireGuard 密钥对:**
```bash
wg genkey | tee /etc/wireguard/node_private.key | wg pubkey > /etc/wireguard/node_pub.key
cat /etc/wireguard/node_pub.key
```
**2. 为其分配网格 IP** (`10.0.0.0/24` 中下一个可用 IP):
| 节点 | 网格 IP | 角色 |
|------|---------|------|
| 节点 A(中心) | `10.0.0.1` | 存储,CyberBase |
| Hostinger | `10.0.0.2` | 计算 |
| Windows PC | `10.0.0.3` | 本地开发 |
| ThinkPad | `10.0.0.4` | 本地开发 |
| _新节点_ | `10.0.0.N` | 分配下一个 |
**3. 在网格中注册节点** (从已经在网格中的任何节点运行):
```bash
omniwire_omnimesh(action="add-peer",
id="newnode",
public_key="<步骤 1 中的公钥>",
allowed_ips="10.0.0.N/32",
endpoint="<公网 IP 或 DNS>:51820"
)
```
**4. 将更新的对等列表推送到所有节点:**
```bash
omniwire_omnimesh(action="sync-peers")
```
**5. 在新节点上启动接口:**
```bash
wg-quick up wg0
ping 10.0.0.1 # 验证中心节点可达性
```
### 在新节点上配置 OmniWire
将节点添加到 `~/.omniwire/mesh.json` (如果不存在则创建):
```json
{
"nodes": [
{ "id": "node-a", "host": "10.0.0.1", "user": "root", "identityFile": "~/.ssh/id_omniwire", "role": "storage" },
{ "id": "hostinger", "host": "10.0.0.2", "user": "root", "identityFile": "~/.ssh/id_omniwire", "role": "compute" },
{ "id": "windows", "host": "10.0.0.3", "user": "Admin", "identityFile": "~/.ssh/id_omniwire", "role": "local" },
{ "id": "thinkpad", "host": "10.0.0.4", "user": "user", "identityFile": "~/.ssh/id_omniwire", "role": "local" }
]
}
```
验证连接性:
```bash
omniwire_mesh_status # 应显示所有节点绿色
omniwire_doctor # 检查 SSH、磁盘、内存、WireGuard、CyberBase
```
### 通过 MCP 连接 Claude Code
将以下内容添加到 `~/.claude/claude_desktop_config.json` (或您的 IDE 的 MCP 配置):
```json
{
"mcpServers": {
"omniwire": { "command": "omniwire", "args": ["--stdio"] }
}
}
```
重启 Claude Code。在新会话中验证:
```
omniwire_mesh_status() # 应该有 88 个工具可用
```
### 环境变量
| 变量 | 必需 | 说明 |
|----------|----------|-------------|
| `OP_SERVICE_ACCOUNT_TOKEN` | 用于 1Password 同步 | 1Password 的服务账户令牌 |
| `OMNIWIRE_VAULT_ROOT` | 可选 | Obsidian 保险箱根目录(默认:CyberBase 保险箱) |
| `CYBERSYNC_DB_URL` | 可选 | PostgreSQL DSN - 默认 `postgresql://cyberbase@10.0.0.1:5432/cyberbase` |
| `OMNIWIRE_MESH_CONFIG` | 可选 | 覆盖 mesh.json 路径 |
在节点上永久设置。值被写入 `/etc/environment`,但工具响应仅确认值是否设置,从不回显秘密:
```bash
omniwire_env(action="set", key="OP_SERVICE_ACCOUNT_TOKEN", value="<token>", node="node-a")
omniwire_env(action="get", key="OP_SERVICE_ACCOUNT_TOKEN", node="node-a") # OP_SERVICE_ACCOUNT_TOKEN=<redacted: set>
```
### CyberSync 自动分发
CyberSync 通过 PostgreSQL 自动将配置、机密和记忆推送到所有节点。
```bash
# 检查跟踪的内容
omniwire_coc(action="cybersync-status")
# 强制将当前配置推送到所有节点
omniwire_coc(action="force-sync")
# 差异本地状态与数据库
cybersync_diff()
```
首次运行时,CyberSync 从 CyberBase 拉取节点配置、2FA 种子和 Claude 记忆 - 无需在机器之间手动复制粘贴。
---
## 更新日志
<details>
<summary><b>v3.0.0 -- 81 工具,CyberBase 持久性,完整平台</b></summary>
**19 个新工具**:代理,dns,备份,容器,证书,用户,计划,警报,log_aggregate,基准测试,代码片段,alias,跟踪,医生,指标,审计,插件,cookie,cdp。
**CyberBase 自动持久性**:存储,审计,黑板,cookie 所有同步到 PostgreSQL。pgvector 语义搜索。所有 DB 调用超时 5 秒。
**架构**:优先级命令队列,智能输出截断,预测节点选择,延迟历史记录,连接池统计。
**安全**:命令拒绝列表(阻止 `rm -rf /`,fork 炸弹,磁盘擦除)。带有 CyberBase 持久性的审计日志。
**A2A**:类型化消息模式(JSON 验证),失败任务的死信队列,发布/订阅事件过滤器。
**DX**:GitHub Actions CI,bash/zsh/fish shell 补全,--json 标志,cookie 同步到 1Password。
</details>
<details>
<summary><b>v2.7.0 -- 防火墙引擎</b></summary>
**`omniwire_firewall`**:基于 nftables 的防火墙引擎,具有 17 个操作。预设(服务器,偏执,极简,渗透测试),速率限制,按国家/地区阻止地理位置,端口敲击序列,IP 禁止/解除,黑名单/白名单,规则管理,审计日志,保存/恢复。
**零网格影响**:wg0,wg1,tailscale0,以及所有网格 CIDR(10.0.0.0/24,10.20.0.0/24,100.64.0.0/10)始终在任何强化规则之前被白名单。nftables 在内核空间运行 - 零延迟开销。
</details>
<details>
<summary><b>v2.6.0 -- VPN 集成,网格安全匿名扫描</b></summary>
**`omniwire_vpn`** 工具:Mullvad,OpenVPN,WireGuard,Tailscale。分隧道(每命令)+ 全节点模式。网格连接(wg0,wg1,Tailscale)始终通过路由排除和网络命名空间隔离保留。
**`via_vpn` 在执行时**:通过 Linux 网络命名空间将任何命令路由到 VPN。仅命令流量通过 VPN - SSH/WireGuard 网格保留在真实接口上。
**模式**:`connect`(分隧道),`full-on`(节点范围与网格排除),`rotate`(新出口 IP),`status`,`list`,`ip`。
</details>
<details>
<summary><b>v2.5.1 -- 通用后台调度</b></summary>
**`background: true`** 自动注入到所有 88 个工具中,通过服务器级包装器。返回任务 ID,轮询 `omniwire_bg`。新 `omniwire_bg` 工具用于列表/轮询/结果。
</details>
<details>
<summary><b>v2.5.0 -- 性能改进,A2A 协议扩展</b></summary>
**性能**:AES-128-GCM 加密算法,curve25519-sha256 KEX,2s 心跳,LZ4 传输(快 10 倍),`shuf` 端口查找器(-30 毫秒),SFTP-first 读取,数组缓冲区连接,`/proc` 单次读取状态,`:` 内置健康 ping,300ms 重新连接启动,15s 电路中断器。
**4 个新 A2A 工具**(49 -> 53):agent_registry(能力发现),blackboard(群集协作),task_queue(分布式工作),capability(节点路由)。
</details>
<details>
<summary><b>v2.4.0 -- Agentic 环,A2A,多智能体编排</b></summary>
9 个新的智能工具(40 -> 49):store,pipeline,watch,healthcheck,agent_task,a2a_message,semaphore,event,workflow。智能升级:`format:"json"`,`retry`,`assert`,`store_as`,`{{key}}` 插值。
</details>
<details>
<summary><b>v2.3.0 -- 紧凑输出,速度,新工具</b></summary>
输出大修(自动截断,智能时间,表格多节点)。6 个新的 DevOps 工具(cron,env,network,clipboard,git,syslog)。
</details>
<details>
<summary><b>v2.2.1 -- v2.1.0</b></summary>
安全修复,多路径 SSH 故障转移,CyberBase 集成,VaultBridge Obsidian 镜像。
</details>
---
```bash
omniwire/
src/
mcp/ MCP 服务器(88 工具,3 种传输)
nodes/ SSH2 池,传输引擎,PTY,隧道
sync/ CyberSync + CyberBase(PostgreSQL,Obsidian,加密)
protocol/ 网格配置,类型,路径解析
commands/ 交互式 REPL
ui/ 终端格式化
ui/ 终端格式化
```
**要求:** Node.js >= 20 • SSH 密钥访问节点 • PostgreSQL(仅 CyberSync 需要)• WireGuard 推荐
---
## 更新日志
| 版本 | 日期 | 更改 |
|---------|------|---------|
| **v3.5.0** | 2026-03-30 | 完整的 OpenClaw + PaperClip 集成。ClawHub 技能更新(v2.1.0→v3.5.0,30→88 工具)。OpenClaw、PaperClip、Oh-My-OpenAgent 的代理设置说明。更新的所有集成清单。新的 `integrations/paperclip/SKILL.md`,`integrations/paperclip/README.md`,
| **v3.4.1** | 2026-03-30 | 跨操作系统:`omniwire_scrape` 安装在 Linux(systemd)、macOS(launchd)、Windows、Docker(nohup)上均可使用。自动升级依赖 + 浏览器。Python/pip 路径检测。 |
| **v3.4.0** | 2026-03-30 | 重写:`omniwire_scrape` - OmniMesh 路由的 Scrapling,具有自动安装、VPN 路由、自适应选择器、XPath 和批量会话。安装/状态操作。完整的 README 审计(88 种工具)。 |
| **v3.3.1** | 2026-03-30 | 新增:`omniwire_scrape` 工具 - 强大的 Web 抓取工具(静态/浏览器/隐匿模式,Cloudflare 绕过,TLS 伪装)。 |
| **v3.3.0** | 2026-03-30 | 新增:`omniwire_coc` 工具 - 统一的 CyberBase + Obsidian + Canvas 同步。自动创建保险箱 + 画布。`mirror-db` 导出整个数据库为 `.md`。可通过 `OMNIWIRE_VAULT_ROOT` 环境变量配置保险箱。 |
| **v2.7.0** | 2026-03-30 | 修复:同步 GitHub/npm 元数据 - 徽章、描述、mermaid 图表均反映 86 种工具 |
| **v2.7.0** | 2026-03-30 | 新增:5 个双向同步工具(`omniwire_sync`,`omniwire_sync_rules`,`omniwire_sync_hooks`,`omniwire_sync_memory`,`omniwire_sync_agents`)- 总共 86 种工具。 |
| **v2.2.1** | 2026-03-28 | README 中工具章节可折叠,npm README 同步 |
| **v3.1.0** | 2026-03-27 | OmniMesh VPN、81 种 MCP 工具、A2A 协议、事件系统、后台调度 |
| **v3.0.0** | 2026-03-25 | 主要重写:CyberSync、管道 DAG、黑板、任务队列、LZ4 传输、AES-128-GCM 加密 |
---
<br/>
<p align="center">
<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>
<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>
<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>
</p>
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/footer-dark.svg" />
<source media="(prefers-color-scheme: light)" srcset="assets/footer-light.svg" />
<img alt="Built for the machines that build for us." src="assets/footer-dark.svg" width="900" />
</picture>
</p>
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器