|
| 1 | + |
| 2 | + |
| 3 | +<p align=\"center\"> |
| 4 | + ClawBox 是 <a href=\"https://github.com/openclaw/openclaw\">OpenClaw</a> 网关的桌面客户端。它将 Tauri 外壳、React 前端和 Bun/Hono 后端整合为一个桌面工作流,支持聊天、会话、频道、定时任务、技能和引导流程。 |
| 5 | +</p> |
| 6 | + |
| 7 | +<p align=\"center\"> |
| 8 | + <a href=\"https://github.com/CommonstackAI/clawbox\"><strong>GitHub</strong></a> |
| 9 | + • |
| 10 | + <a href=\"https://github.com/CommonstackAI/clawbox/releases\"><strong>发布版本</strong></a> |
| 11 | + • |
| 12 | + <a href=\"https://github.com/CommonstackAI/clawbox/issues\"><strong>问题反馈</strong></a> |
| 13 | + • |
| 14 | + <a href=\"https://github.com/openclaw/openclaw\"><strong>OpenClaw</strong></a> |
| 15 | + • |
| 16 | + <a href=\"./README.md\"><strong>English</strong></a> |
| 17 | +</p> |
| 18 | + |
| 19 | +<hr /> |
| 20 | + |
| 21 | +## 项目范围 |
| 22 | + |
| 23 | +- ClawBox 在本仓库中以开源方式发布。 |
| 24 | +- OpenClaw 是独立的依赖项,**不随本仓库打包**。 |
| 25 | +- 建议使用 OpenClaw `2026.3.12` 或更新版本以获得最佳兼容性。 |
| 26 | + |
| 27 | +## 技术栈 |
| 28 | + |
| 29 | +- Tauri v2 外壳,位于 [`src-tauri/`](src-tauri) |
| 30 | +- Bun/Hono 后端,位于 [`internal/`](internal) |
| 31 | +- React 18 + Vite 前端,位于 [`src/`](src) |
| 32 | + |
| 33 | +## 快速开始 |
| 34 | + |
| 35 | +### 1. 安装依赖 |
| 36 | + |
| 37 | +```bash |
| 38 | +npm ci |
| 39 | +``` |
| 40 | + |
| 41 | +### 2. 安装并启动 OpenClaw |
| 42 | + |
| 43 | +```bash |
| 44 | +npm install -g openclaw@latest |
| 45 | +openclaw gateway run --dev --auth none --bind loopback --port 18789 |
| 46 | +``` |
| 47 | + |
| 48 | +如果你已在其他地方运行 OpenClaw,可在设置中或通过环境变量 `OPENCLAW_GATEWAY_URL` 将 ClawBox 指向对应的网关地址。 |
| 49 | + |
| 50 | +### 3. 启动 ClawBox |
| 51 | + |
| 52 | +前端 + 后端: |
| 53 | + |
| 54 | +```bash |
| 55 | +npm run dev |
| 56 | +``` |
| 57 | + |
| 58 | +桌面应用: |
| 59 | + |
| 60 | +```bash |
| 61 | +npm run tauri:dev |
| 62 | +``` |
| 63 | + |
| 64 | +## 安装方式 |
| 65 | + |
| 66 | +| 平台 | 安装方式 | |
| 67 | +| --- | --- | |
| 68 | +| macOS | GitHub Releases 构建包或从源码构建 | |
| 69 | +| Windows | GitHub Releases 构建包或从源码构建 | |
| 70 | +| Linux | 目前仅支持从源码构建 | |
| 71 | + |
| 72 | +发布与签名详情请参阅 [`docs/releasing.md`](docs/releasing.md)。 |
| 73 | + |
| 74 | +### macOS Gatekeeper 说明 |
| 75 | + |
| 76 | +当前 GitHub Releases 发布的 macOS `.dmg` 构建包尚未经过 Apple 公证。因此,即使下载文件本身完好,macOS 可能在首次启动时显示类似 'ClawBox 已损坏,无法打开' 的提示。 |
| 77 | + |
| 78 | +如果你信任从本仓库官方 GitHub Releases 页面下载的发布包,请先将 `ClawBox.app` 移动到 `/Applications`,然后移除隔离标志: |
| 79 | + |
| 80 | +```bash |
| 81 | +xattr -dr com.apple.quarantine /Applications/ClawBox.app |
| 82 | +``` |
| 83 | + |
| 84 | +注意事项: |
| 85 | + |
| 86 | +- 仅对从本仓库官方 GitHub Releases 页面下载的构建包执行此操作。 |
| 87 | +- 如果不希望绕过 Gatekeeper,请从源码构建 ClawBox。 |
| 88 | +- 一旦为公开发布版本配置了 macOS 签名和公证,此操作将不再必要。 |
| 89 | + |
| 90 | +## 构建与校验 |
| 91 | + |
| 92 | +```bash |
| 93 | +npm run build:frontend |
| 94 | +npm run build:backend |
| 95 | +cargo check --manifest-path src-tauri/Cargo.toml |
| 96 | +``` |
| 97 | + |
| 98 | +仓库卫生检查: |
| 99 | + |
| 100 | +```bash |
| 101 | +npm run scan:repo |
| 102 | +npm run audit:licenses |
| 103 | +npm run audit:deps |
| 104 | +``` |
| 105 | + |
| 106 | +无需真实 OpenClaw 运行时的轻量冒烟测试: |
| 107 | + |
| 108 | +```bash |
| 109 | +npm run smoke:backend |
| 110 | +``` |
| 111 | + |
| 112 | +## OpenClaw 兼容性 |
| 113 | + |
| 114 | +- 支持的基线版本:OpenClaw `>= 2026.3.12` |
| 115 | +- 兼容性说明:[`docs/openclaw-compatibility.md`](docs/openclaw-compatibility.md) |
| 116 | +- 模拟网关入口:[`scripts/mock-gateway.mjs`](scripts/mock-gateway.mjs) |
| 117 | + |
| 118 | +## 贡献指南 |
| 119 | + |
| 120 | +- 贡献指南:[`CONTRIBUTING.md`](CONTRIBUTING.md) |
| 121 | +- 安全政策:[`SECURITY.md`](SECURITY.md) |
| 122 | +- 行为准则:[`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) |
| 123 | +- 依赖政策:[`docs/dependency-policy.md`](docs/dependency-policy.md) |
| 124 | + |
| 125 | +## 开发说明 |
| 126 | + |
| 127 | +- 前端 API 请求通过本地后端 `http://127.0.0.1:13000` 转发。 |
| 128 | +- 后端通过 WebSocket RPC 与 OpenClaw 通信。 |
| 129 | +- 用户可见文本需在以下两个文件中保持同步: |
| 130 | + - [`src/locales/en/translation.json`](src/locales/en/translation.json) |
| 131 | + - [`src/locales/zh/translation.json`](src/locales/zh/translation.json) |
| 132 | + |
| 133 | +## 支持边界 |
| 134 | + |
| 135 | +- 当桌面外壳、前端、后端桥接、引导 UI 或打包逻辑出现问题时,请在本仓库提交 Issue。 |
| 136 | +- 纯粹的网关协议缺陷、频道运行时缺陷或 OpenClaw 守护进程行为问题,请向 OpenClaw 报告,除非 ClawBox 明显是破坏协议的那一层。 |
| 137 | +- Issue 和 Pull Request 将尽力进行处理。维护者可能会将仅属于上游的问题重定向至 OpenClaw。 |
| 138 | + |
| 139 | +## 环境变量覆盖 |
| 140 | + |
| 141 | +从 [`.env.example`](.env.example) 复制或手动设置以下变量: |
| 142 | + |
| 143 | +- `OPENCLAW_GATEWAY_URL` |
| 144 | +- `OPENCLAW_GATEWAY_TOKEN` |
| 145 | +- `CLAWBOX_HOME` |
| 146 | +- `CLAWBOX_BACKEND_PORT` |
| 147 | + |
| 148 | +## 许可证 |
| 149 | + |
| 150 | +MIT。详见 [`LICENSE`](LICENSE)。 |
0 commit comments