跳到主要内容

示例与指南

示例​

examples/ 中是 SDK 的示例,每个都在 macOS 27 (Apple M1 Pro)上对本地的 rc serve 测试过。要在受版本控制的文件中声明一台 machine,请参阅 runner.code 格式。

示例展示内容状态
sdk-goGo SDK:针对 rc serve 运行作业和 machine 生命周期可用
sdk-python同上,使用 Python SDK可用
desktop-clauderunner.code 中带 Claude Code 和 Firefox 的 XFCE 桌面,由 Go SDK 创建并核对可用
desktop-claude-agent用三种方式向这台 VM 的 Claude 派发任务:claude -p、在窗口中输入、通过屏幕 API可用

指南​

examples/guides/ 中的每个目录都是一篇 rc 使用指南,带一个说明流程的 README.md,以及一个 run.sh:它在真实 VM 中证明指南所说的内容,并以失败数作为退出码。

task build
task guides # 所有目录
task guides DIRS="pack teardown" # 部分目录

在 2026/10/21 的轮次中(macOS 27,Apple M1 Pro):9 个目录,175 项检查,0 失败。

指南证明了什么
install真实启动:guest 的标记,以及与 host 不同的内核
throwaway-machine仓库 :ro、输出可写、无网络;一次放行一个主机;--block-private、host 的 loopback
pack镜像和 machine 打成一个制品;源被删除后标记仍随之保留;缓存被复用
teardown停止、删除、证明已清理干净;对 CLI 按 Ctrl-C 和 kill -9 都不会留下存活 VM
credentials真实值从不进入 VM(带反证的搜索);只在 binding 主机上拦截;URL 中返回 403
branch-and-checkpoint带保留和锁定的磁盘 checkpoint、恢复任意一代、pause/resume、从预热源派生子 machine、把 checkpoint 导出为 pack
gpu-cuda没有 CUDA:doctor、CLI、runner.code 和 API 都会说不支持并给出原因,且不创建任何东西
local-apirc serve 与生命周期的 JSON 请求体;响应体中的 exitCode;SSE 每行一个事件;未知字段被拒绝
reference每个主题一个带证明的步骤(runner.code、命名网络、nested、限制、socket、display、文件属主、S3),以及不在范围内的主题及其原因

该目录中的 lib.sh 汇集了所有 run.sh 都会用到的内容:rc machine ls 的格式、VM 的进程 (rc vmm --spec <dir>/spec.json)、machine 的目录(rc machine data-dir)以及空列表(No machines found)。

Runbook​

除了指南,docs/runbook.md 是手工测试的 步骤序列,逐步给出每一步的预期结果;task runbook 执行相同的步骤,任何一步结果不同就判定失败(2026/10/24:146 项检查,0 失败)。