on main help sign in
doc: added zh-CN
1c5a464robcholz
README.md+1−1
@@ -98,7 +98,7 @@ recreate the disk.
98
98
99**Mounts**
99**Mounts**
100
100
101−- Your project is mounted read-write at `/usr/local/vibebox-mounts/<project-name>`, and the shell starts there.
101+- Your project is mounted read-write at `~/<project-name>`, and the shell starts there.
102- If a `.git` directory exists, it is masked with a tmpfs mount inside the VM to discourage accidental edits from the
102- If a `.git` directory exists, it is masked with a tmpfs mount inside the VM to discourage accidental edits from the
103 guest.
103 guest.
104- Extra mounts come from `box.mounts` with the format `host:guest[:read-only|read-write]`.
104- Extra mounts come from `box.mounts` with the format `host:guest[:read-only|read-write]`.
README.zh.md+155
@@ -0,0 +1,155 @@
1+<p align="center">
2+ <a href="https://vibebox.robcholz.com">
3+ <picture>
4+ <img src="docs/banner.png" alt="VibeBox logo">
5+ </picture>
6+ </a>
7+</p>
8+<p align="center">超高速、开源的 AI 沙盒。</p>
9+
10+[![Crates.io][crates-badge]][crates-url]
11+[![MIT licensed][mit-badge]][mit-url]
12+[![Build Status][actions-badge]][actions-url]
13+
14+[crates-badge]: https://img.shields.io/crates/v/vibebox.svg
15+[crates-url]: https://crates.io/crates/vibebox
16+[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
17+[mit-url]: https://github.com/robcholz/vibebox/blob/main/LICENSE
18+[actions-badge]: https://github.com/robcholz/vibebox/workflows/CI/badge.svg
19+[actions-url]: https://github.com/robcholz/vibebox/actions?query=workflow%3ACI+branch%3Amain
20+
21+<p align="center">
22+ <a href="README.zh.md">简体中文</a> |
23+ <a href="README.md">English</a> |
24+</p>
25+
26+[![OpenCode Terminal UI](docs/screenshot.png)](https://vibebox.robcholz.com)
27+
28+---
29+
30+### 安装
31+
32+```bash
33+# YOLO:一键安装(推荐)
34+curl -fsSL https://raw.githubusercontent.com/robcholz/vibebox/main/install | bash
35+
36+# Cargo
37+cargo install vibebox
38+
39+# 或者手动安装(不推荐)
40+curl -LO https://github.com/robcholz/vibebox/releases/download/latest/vibebox-macos-arm64.zip
41+unzip vibebox-macos-arm64.zip
42+mkdir -p ~/.local/bin
43+mv vibe ~/.local/bin
44+export PATH="$HOME/.local/bin:$PATH"
45+```
46+
47+> [!TIP]
48+> 强烈建议直接用 `YOLO` 方式安装,省事且更不容易踩坑。
49+
50+**系统要求**
51+
52+- Apple Silicon 的 macOS(VibeBox 使用了 Apple 的虚拟化 API)。
53+
54+**首次运行**
55+
56+第一次执行 `vibebox` 会下载 Debian 基础镜像并完成初始化。之后每个项目的实例会复用缓存的基础镜像,
57+启动会快很多。
58+
59+### 文档
60+
61+**快速开始**
62+
63+```bash
64+cd /path/to/your/project
65+vibebox
66+```
67+
68+第一次运行时,如果项目目录里缺少配置,VibeBox 会自动创建 `vibebox.toml`(放在项目根目录),并创建
69+`.vibebox/` 用来保存实例数据。
70+
71+**配置(`vibebox.toml`)**
72+
73+默认情况下,`vibebox.toml` 位于项目根目录。你可以用 `vibebox -c path/to/vibebox.toml` 或设置
74+`VIBEBOX_CONFIG_PATH` 环境变量来覆盖路径,但配置文件必须仍然位于项目目录内部。
75+
76+默认配置(缺失时会自动生成):
77+
78+```toml
79+[box]
80+cpu_count = 2
81+ram_mb = 2048
82+disk_gb = 5
83+mounts = [
84+ "~/.codex:~/.codex:read-write",
85+ "~/.claude:~/.claude:read-write",
86+]
87+
88+[supervisor]
89+auto_shutdown_ms = 20000
90+```
91+
92+注意:`disk_gb` 只在「首次创建实例磁盘」时生效。之后如果你改了它,需要运行 `vibebox reset` 重新创建磁盘。
93+
94+**挂载(Mounts)**
95+
96+- 你的项目会以读写方式挂载到 `~/<project-name>`,并且 shell 会默认从那里启动。
97+- 如果项目里存在 `.git` 目录,VM 内会用 tmpfs 把它遮住,避免你在 guest 里误操作改到 Git 元数据。
98+- 额外挂载通过 `box.mounts` 配置,格式为 `host:guest[:read-only|read-write]`。
99+- Host 路径支持 `~` 展开;guest 的相对路径会被视为 `/root/<path>`。
100+- guest 路径如果用了 `~`,会为了方便被链接到 `/home/<ssh-user>` 下。你可以运行 `vibebox explain`
101+ 查看最终解析后的 host/guest 映射关系。
102+
103+**CLI 命令**
104+
105+```bash
106+vibebox # 启动或连接当前项目的 VM
107+vibebox list # 列出已知的项目会话
108+vibebox reset # 删除当前项目的 .vibebox,下一次运行会重新创建
109+vibebox purge-cache # 删除全局缓存(~/.cache/vibebox)
110+vibebox explain # 显示挂载与网络信息
111+```
112+
113+**在 VM 内部**
114+
115+- 默认 SSH 用户:`vibecoder`
116+- 主机名:`vibebox`
117+- 基础镜像初始化会安装:构建工具、`git`、`curl`、`ripgrep`、`openssh-server`、`sudo`
118+- 首次登录时,VibeBox 会安装 `mise`,并尽力配置 `uv`、`node`、`@openai/codex`、
119+ `@anthropic-ai/claude-code` 等工具(best-effort,视网络和环境而定)
120+- Shell 里有两个别名:`:help` 和 `:exit`
121+
122+**状态与缓存**
123+
124+- 项目级状态在 `.vibebox/`(实例磁盘、SSH key、日志、manager socket/pid)。`vibebox reset` 会移除它。
125+- 全局缓存在 `~/.cache/vibebox`(基础镜像 + 共享 guest 缓存)。`vibebox purge-cache` 会清空它。
126+- 会话索引在 `~/.vibebox/sessions`,可以通过 `vibebox list` 查看。
127+
128+### 参与贡献
129+
130+如果你想参与贡献 VibeBox,请先阅读 [贡献指南](CONTRIBUTING.md),再提交 Pull Request。
131+
132+### 使用 VibeBox
133+
134+欢迎使用,也别忘了顺手帮 VibeBox 做点宣传!
135+
136+### FAQ
137+
138+#### 它和其它 Sandboxes 有什么不同?
139+
140+Vibebox 追求的是:本地、可复现、启动快、流程简单。主要差异点:
141+
142+- 在我的 M3 上,热启动通常 **6 秒以内**,可以非常快地回到工作状态。
143+- 一个命令——`vibebox`——直接把你带进沙盒(从你的项目目录启动)。
144+- 配置集中在 `vibebox.toml`,CPU / 内存 / 磁盘大小 / 挂载都能一眼看懂、随手改。
145+
146+### 特别鸣谢
147+
148+[vibe](https://github.com/lynaghk/vibe) by lynaghk。
149+
150+以及 Rust 社区。没有你们丰富的 crates 生态和优秀的工具链(比如 [crates.io](https://crates.io)),
151+这个项目不可能这么顺利!Rust教。
152+
153+---
154+
155+**在 X 上关注我** [X.com](https://x.com/robcholz)