@xcanwin/manyoyo 8.0.1 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -177
- package/bin/manyoyo.js +149 -182
- package/lib/app-update.js +31 -10
- package/lib/podman-passthrough.js +4 -4
- package/lib/web/AGENTS.md +4 -6
- package/lib/web/{frontend/shadcn.html → index.html} +74 -74
- package/lib/web/server.js +14 -39
- package/manyoyo.example.json +1 -1
- package/package.json +15 -10
- package/lib/dev-release.js +0 -142
package/README.md
CHANGED
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
# <p align="center"><a href="https://github.com/xcanwin/manyoyo">MANYOYO(慢悠悠)</a></p>
|
|
6
|
-
<p align="center"
|
|
7
|
-
<p align="center">用于隔离 Claude Code、Codex、Gemini、OpenCode 等命令行智能体,降低宿主机风险,并保持可复现的运行环境。</p>
|
|
6
|
+
<p align="center">让 Claude Code / Codex / Gemini / OpenCode 在容器里放心跑 YOLO 模式:AI 随便折腾,伤不到你的电脑。</p>
|
|
8
7
|
<p align="center">
|
|
9
8
|
<a href="https://www.npmjs.com/package/@xcanwin/manyoyo"><img alt="npm" src="https://img.shields.io/npm/v/@xcanwin/manyoyo?style=flat-square" /></a>
|
|
10
9
|
<a href="https://github.com/xcanwin/manyoyo/actions/workflows/npm-publish.yml"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/xcanwin/manyoyo/npm-publish.yml?style=flat-square" /></a>
|
|
@@ -21,85 +20,47 @@
|
|
|
21
20
|
|
|
22
21
|
---
|
|
23
22
|
|
|
24
|
-
##
|
|
23
|
+
## 安装
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|------|------|
|
|
28
|
-
| [manyoyo](https://github.com/xcanwin/manyoyo) | CLI + 容器运行时 + Web 服务 |
|
|
29
|
-
| [manyoyo-app](https://github.com/xcanwin/manyoyo-app) | Flutter 原生 UI 客户端(macOS / Windows / iOS / Android) |
|
|
30
|
-
| [manyoyo-studio](https://github.com/xcanwin/manyoyo-studio) | Electron 桌面端 + Capacitor 移动端 |
|
|
31
|
-
|
|
32
|
-
## 为什么是 MANYOYO
|
|
33
|
-
|
|
34
|
-
AI Agent CLI 往往需要:
|
|
35
|
-
|
|
36
|
-
- 访问代码仓库
|
|
37
|
-
- 执行 shell 命令
|
|
38
|
-
- 读写文件
|
|
39
|
-
- 安装依赖或调用容器能力
|
|
40
|
-
|
|
41
|
-
直接在宿主机上裸跑这些工具,风险边界通常不清晰。**MANYOYO** 的目标不是替代容器平台,而是把常见 Agent CLI 的运行方式收敛到一个更清晰、可复现、可审计的沙箱入口。
|
|
42
|
-
|
|
43
|
-
你可以把它理解为:
|
|
44
|
-
|
|
45
|
-
- 面向 Agent CLI 的运行包装层
|
|
46
|
-
- 面向团队协作的配置与镜像约定
|
|
47
|
-
- 面向高风险模式的显式边界说明
|
|
48
|
-
|
|
49
|
-
## 核心能力
|
|
50
|
-
|
|
51
|
-
- **多 Agent 支持**:支持 `claude`、`gemini`、`codex`、`opencode`
|
|
52
|
-
- **容器隔离**:基于 Docker / Podman 运行,降低宿主机暴露面
|
|
53
|
-
- **YOLO / SOLO 工作流**:适配跳过权限确认的高效率模式
|
|
54
|
-
- **统一配置入口**:集中管理 `runs.<name>`、环境变量、挂载与镜像参数
|
|
55
|
-
- **命令可预览**:支持查看配置合并结果与最终命令拼装
|
|
56
|
-
- **会话与 Web 模式**:支持容器会话管理与网页访问入口
|
|
57
|
-
- **镜像可定制**:支持 common / full / 自定义工具集镜像
|
|
58
|
-
|
|
59
|
-
## 快速开始
|
|
60
|
-
|
|
61
|
-
macOS 用户(推荐):从 [Releases](https://github.com/xcanwin/manyoyo/releases/latest) 下载对应架构的离线包,一条命令装好,浏览器里完成向导,不需要先装 Node.js、Docker 或 Podman:
|
|
25
|
+
### macOS / Linux(推荐)
|
|
62
26
|
|
|
63
27
|
```bash
|
|
64
|
-
|
|
65
|
-
shasum -a 256 -c SHA256SUMS-macos-arm64 # 校验(可选,Intel 用 SHA256SUMS-macos-x64)
|
|
66
|
-
sh manyoyo-*-macos-arm64.run # 安装并自动打开浏览器
|
|
67
|
-
manyoyo # 之后:启动本机服务并打开浏览器
|
|
68
|
-
manyoyo update # 升级;manyoyo uninstall 卸载
|
|
28
|
+
curl -fsSL https://github.com/xcanwin/manyoyo/raw/main/scripts/install.sh | sh
|
|
69
29
|
```
|
|
70
30
|
|
|
71
|
-
|
|
31
|
+
装完浏览器自动打开,按向导选 Agent、填 Key 就能开始对话。macOS 不需要预装任何东西;Linux 需要已有 Docker 或 Podman。
|
|
72
32
|
|
|
73
|
-
|
|
33
|
+
### 已有 Node.js 和 Docker/Podman
|
|
74
34
|
|
|
75
35
|
```bash
|
|
76
36
|
npm install -g @xcanwin/manyoyo
|
|
77
|
-
manyoyo
|
|
78
|
-
manyoyo run -r claude
|
|
79
|
-
manyoyo serve 127.0.0.1:3000 -U admin -P 123456 # Web UI 模式
|
|
37
|
+
manyoyo
|
|
80
38
|
```
|
|
81
39
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
系统要求:
|
|
40
|
+
## 日常使用
|
|
85
41
|
|
|
86
|
-
|
|
87
|
-
|
|
42
|
+
```bash
|
|
43
|
+
manyoyo # 打开网页界面
|
|
44
|
+
manyoyo update # 升级
|
|
45
|
+
manyoyo uninstall # 卸载(配置和数据默认保留)
|
|
46
|
+
```
|
|
88
47
|
|
|
89
|
-
|
|
48
|
+
## 命令行用法(可选)
|
|
90
49
|
|
|
91
|
-
|
|
92
|
-
|
|
50
|
+
```bash
|
|
51
|
+
manyoyo init all # 把本机已有的 Agent 配置搬进来
|
|
52
|
+
manyoyo run -y c # 在沙箱里以 YOLO 模式启动 Claude Code
|
|
53
|
+
```
|
|
93
54
|
|
|
94
|
-
|
|
55
|
+
默认镜像 `ghcr.io/xcanwin/manyoyo` 首次使用时自动拉取;需要自定义镜像时再执行 `manyoyo build --iv 2.1.0-common`。更多命令见[命令速查](https://xcanwin.github.io/manyoyo/reference/cli-options)。
|
|
95
56
|
|
|
96
|
-
|
|
97
|
-
- 为 **Codex CLI** 提供独立于宿主机的运行边界
|
|
98
|
-
- 隔离运行 **Gemini CLI / OpenCode** 的代码任务
|
|
99
|
-
- 用统一镜像和配置管理团队 Agent 环境
|
|
100
|
-
- 在调试和自动化任务中快速切换 Agent 与 `/bin/bash`
|
|
57
|
+
## 它能做什么
|
|
101
58
|
|
|
102
|
-
|
|
59
|
+
- **多 Agent**:`claude`、`codex`、`gemini`、`opencode` 一个入口
|
|
60
|
+
- **容器隔离**:基于 Docker / Podman,Agent 只能看到你给它的工作目录
|
|
61
|
+
- **网页界面**:浏览器里对话、看文件、开终端,手机也能用
|
|
62
|
+
- **统一配置**:运行配置、环境变量、挂载与镜像参数集中在 `~/.manyoyo/manyoyo.json`
|
|
63
|
+
- **一条命令**安装、升级、卸载
|
|
103
64
|
|
|
104
65
|
| 对比项 | 裸跑 Agent CLI | MANYOYO |
|
|
105
66
|
| --- | --- | --- |
|
|
@@ -107,119 +68,15 @@ manyoyo serve 127.0.0.1:3000 -U admin -P 123456 # Web UI 模式
|
|
|
107
68
|
| 运行边界 | 分散 | 集中到容器与配置 |
|
|
108
69
|
| 环境复现 | 弱 | 强(镜像 + 配置) |
|
|
109
70
|
| 高风险模式说明 | 通常依赖工具自身 | 明确提示 YOLO / SOLO / sock 风险 |
|
|
110
|
-
| 团队统一性 | 弱 | 更强 |
|
|
111
|
-
|
|
112
|
-
## 安全边界
|
|
113
|
-
|
|
114
|
-
MANYOYO 可以降低风险,但不是“绝对安全”:
|
|
115
|
-
|
|
116
|
-
- 它的主要隔离手段是容器,不是虚拟机
|
|
117
|
-
- `YOLO / SOLO` 仍然可能执行危险命令
|
|
118
|
-
- `sock` 模式本质上会把宿主机容器控制权暴露给容器
|
|
119
|
-
- 自定义挂载、环境变量和网络访问会直接影响实际安全边界
|
|
120
71
|
|
|
121
|
-
|
|
72
|
+
## 安全须知
|
|
122
73
|
|
|
123
|
-
|
|
124
|
-
- [容器模式说明](https://xcanwin.github.io/manyoyo/zh/reference/container-modes)
|
|
125
|
-
- [网页认证与安全](https://xcanwin.github.io/manyoyo/zh/advanced/web-server-auth)
|
|
74
|
+
MANYOYO 降低风险,但不是“绝对安全”:主要隔离手段是容器而不是虚拟机;`YOLO / SOLO` 仍可能执行危险命令;`sock` 模式会暴露宿主机 Docker socket;对外监听必须设强密码。详见[安全须知](https://xcanwin.github.io/manyoyo/guide/security)。
|
|
126
75
|
|
|
127
|
-
##
|
|
76
|
+
## 文档
|
|
128
77
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
manyoyo init all
|
|
132
|
-
|
|
133
|
-
# 启动常见 Agent
|
|
134
|
-
manyoyo run -y c
|
|
135
|
-
manyoyo run -y gm
|
|
136
|
-
manyoyo run -y cx
|
|
137
|
-
manyoyo run -y oc
|
|
138
|
-
|
|
139
|
-
# 更新
|
|
140
|
-
manyoyo update
|
|
141
|
-
|
|
142
|
-
# 容器与调试
|
|
143
|
-
manyoyo ps
|
|
144
|
-
manyoyo images
|
|
145
|
-
manyoyo run -n my-dev -x /bin/bash
|
|
146
|
-
manyoyo rm my-dev
|
|
147
|
-
|
|
148
|
-
# Web UI 模式
|
|
149
|
-
manyoyo serve 127.0.0.1:3000
|
|
150
|
-
manyoyo serve 127.0.0.1:3000 -U admin -P 123456
|
|
151
|
-
manyoyo serve 127.0.0.1:3000 -U admin -P 123456 -d
|
|
152
|
-
manyoyo serve 127.0.0.1:3000 -d # 未设置密码时会打印本次随机密码
|
|
153
|
-
manyoyo serve 127.0.0.1:3000 --stop # 停止指定后台服务
|
|
154
|
-
manyoyo serve 127.0.0.1:3000 -U admin -P 123456 -d --restart # 重启指定后台服务
|
|
155
|
-
|
|
156
|
-
# 查看配置与命令拼装
|
|
157
|
-
manyoyo config show
|
|
158
|
-
manyoyo config command
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
## 镜像构建
|
|
162
|
-
|
|
163
|
-
```bash
|
|
164
|
-
# common 版本
|
|
165
|
-
manyoyo build --iv 2.0.0-common
|
|
166
|
-
|
|
167
|
-
# full 版本
|
|
168
|
-
manyoyo build --iv 2.0.0-full
|
|
169
|
-
|
|
170
|
-
# 仅更新已有镜像内 Agent CLI 到 latest,不重建 Dockerfile
|
|
171
|
-
manyoyo build --iv 2.0.0-full --update-agents --yes
|
|
172
|
-
|
|
173
|
-
# 自定义工具集
|
|
174
|
-
manyoyo build --iba TOOL=go,codex,java,gemini
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
说明:
|
|
178
|
-
|
|
179
|
-
- 首次构建会把依赖缓存到 `docker/cache/`
|
|
180
|
-
- 在缓存有效期内重复构建,通常会更快
|
|
181
|
-
- `imageVersion` 格式必须为 `x.y.z-后缀`
|
|
182
|
-
|
|
183
|
-
## 配置模型
|
|
184
|
-
|
|
185
|
-
MANYOYO 的配置重点不是“多”,而是“可预测”:
|
|
186
|
-
|
|
187
|
-
- 标量值按 `命令行参数 > runs.<name> > 全局配置 > 默认值` 覆盖
|
|
188
|
-
- 数组值按 `全局配置 -> runs.<name> -> 命令行参数` 追加合并
|
|
189
|
-
- `env` 使用 map 合并,按 key 覆盖
|
|
190
|
-
|
|
191
|
-
相关文档:
|
|
192
|
-
|
|
193
|
-
- [配置系统概览](https://xcanwin.github.io/manyoyo/zh/configuration/)
|
|
194
|
-
- [配置文件详解](https://xcanwin.github.io/manyoyo/zh/configuration/config-files)
|
|
195
|
-
- [环境变量详解](https://xcanwin.github.io/manyoyo/zh/configuration/environment)
|
|
196
|
-
|
|
197
|
-
## 文档入口
|
|
198
|
-
|
|
199
|
-
中文文档:
|
|
200
|
-
|
|
201
|
-
- [快速开始](https://xcanwin.github.io/manyoyo/zh/guide/quick-start)
|
|
202
|
-
- [安装详解](https://xcanwin.github.io/manyoyo/zh/guide/installation)
|
|
203
|
-
- [CLI 选项](https://xcanwin.github.io/manyoyo/zh/reference/cli-options)
|
|
204
|
-
- [故障排查](https://xcanwin.github.io/manyoyo/zh/troubleshooting/)
|
|
205
|
-
|
|
206
|
-
English Documentation:
|
|
207
|
-
|
|
208
|
-
- [Quick Start](https://xcanwin.github.io/manyoyo/en/guide/quick-start)
|
|
209
|
-
- [Installation](https://xcanwin.github.io/manyoyo/en/guide/installation)
|
|
210
|
-
- [CLI Options](https://xcanwin.github.io/manyoyo/en/reference/cli-options)
|
|
211
|
-
- [Troubleshooting](https://xcanwin.github.io/manyoyo/en/troubleshooting/)
|
|
212
|
-
|
|
213
|
-
## 安装与卸载
|
|
214
|
-
|
|
215
|
-
- macOS / Linux 离线包(推荐):见上方「快速开始」,卸载用 `manyoyo uninstall`(只移除程序,配置、历史、工作目录逐项询问)。
|
|
216
|
-
- npm:
|
|
217
|
-
|
|
218
|
-
```bash
|
|
219
|
-
npm install -g @xcanwin/manyoyo # 安装
|
|
220
|
-
npm uninstall -g @xcanwin/manyoyo # 卸载
|
|
221
|
-
rm -rf ~/.manyoyo/ # 可选:删除配置与数据
|
|
222
|
-
```
|
|
78
|
+
- 中文:<https://xcanwin.github.io/manyoyo/>([安装](https://xcanwin.github.io/manyoyo/guide/quick-start)、[命令速查](https://xcanwin.github.io/manyoyo/reference/cli-options)、[配置](https://xcanwin.github.io/manyoyo/configuration/)、[故障排查](https://xcanwin.github.io/manyoyo/troubleshooting/))
|
|
79
|
+
- English: <https://xcanwin.github.io/manyoyo/en/>
|
|
223
80
|
|
|
224
81
|
## 许可证
|
|
225
82
|
|
|
@@ -227,7 +84,4 @@ MIT
|
|
|
227
84
|
|
|
228
85
|
## 贡献
|
|
229
86
|
|
|
230
|
-
欢迎提交 Issue 和 Pull Request。
|
|
231
|
-
|
|
232
|
-
- Issues: <https://github.com/xcanwin/manyoyo/issues>
|
|
233
|
-
- Repository: <https://github.com/xcanwin/manyoyo>
|
|
87
|
+
欢迎提交 [Issue](https://github.com/xcanwin/manyoyo/issues) 和 Pull Request。
|