@@ -0,0 +1,155 @@
2+ <a href="https://vibebox.robcholz.com">
4+ <img src="docs/banner.png" alt="VibeBox logo">
8+<p align="center">超高速、开源的 AI 沙盒。</p>
10+[![Crates.io][crates-badge]][crates-url]
11+[![MIT licensed][mit-badge]][mit-url]
12+[![Build Status][actions-badge]][actions-url]
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
22+ <a href="README.zh.md">简体中文</a> |
23+ <a href="README.md">English</a> |
26+[](https://vibebox.robcholz.com)
34+curl -fsSL https://raw.githubusercontent.com/robcholz/vibebox/main/install | bash
40+curl -LO https://github.com/robcholz/vibebox/releases/download/latest/vibebox-macos-arm64.zip
41+unzip vibebox-macos-arm64.zip
44+export PATH="$HOME/.local/bin:$PATH"
48+> 强烈建议直接用 `YOLO` 方式安装,省事且更不容易踩坑。
52+- Apple Silicon 的 macOS(VibeBox 使用了 Apple 的虚拟化 API)。
56+第一次执行 `vibebox` 会下载 Debian 基础镜像并完成初始化。之后每个项目的实例会复用缓存的基础镜像,
64+cd /path/to/your/project
68+第一次运行时,如果项目目录里缺少配置,VibeBox 会自动创建 `vibebox.toml`(放在项目根目录),并创建
71+**配置(`vibebox.toml`)**
73+默认情况下,`vibebox.toml` 位于项目根目录。你可以用 `vibebox -c path/to/vibebox.toml` 或设置
74+`VIBEBOX_CONFIG_PATH` 环境变量来覆盖路径,但配置文件必须仍然位于项目目录内部。
84+ "~/.codex:~/.codex:read-write",
85+ "~/.claude:~/.claude:read-write",
89+auto_shutdown_ms = 20000
92+注意:`disk_gb` 只在「首次创建实例磁盘」时生效。之后如果你改了它,需要运行 `vibebox reset` 重新创建磁盘。
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 映射关系。
106+vibebox # 启动或连接当前项目的 VM
107+vibebox list # 列出已知的项目会话
108+vibebox reset # 删除当前项目的 .vibebox,下一次运行会重新创建
109+vibebox purge-cache # 删除全局缓存(~/.cache/vibebox)
110+vibebox explain # 显示挂载与网络信息
115+- 默认 SSH 用户:`vibecoder`
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`
124+- 项目级状态在 `.vibebox/`(实例磁盘、SSH key、日志、manager socket/pid)。`vibebox reset` 会移除它。
125+- 全局缓存在 `~/.cache/vibebox`(基础镜像 + 共享 guest 缓存)。`vibebox purge-cache` 会清空它。
126+- 会话索引在 `~/.vibebox/sessions`,可以通过 `vibebox list` 查看。
130+如果你想参与贡献 VibeBox,请先阅读 [贡献指南](CONTRIBUTING.md),再提交 Pull Request。
134+欢迎使用,也别忘了顺手帮 VibeBox 做点宣传!
138+#### 它和其它 Sandboxes 有什么不同?
140+Vibebox 追求的是:本地、可复现、启动快、流程简单。主要差异点:
142+- 在我的 M3 上,热启动通常 **6 秒以内**,可以非常快地回到工作状态。
143+- 一个命令——`vibebox`——直接把你带进沙盒(从你的项目目录启动)。
144+- 配置集中在 `vibebox.toml`,CPU / 内存 / 磁盘大小 / 挂载都能一眼看懂、随手改。
148+[vibe](https://github.com/lynaghk/vibe) by lynaghk。
150+以及 Rust 社区。没有你们丰富的 crates 生态和优秀的工具链(比如 [crates.io](https://crates.io)),
155+**在 X 上关注我** [X.com](https://x.com/robcholz)