设备与工作电脑
每个 AI 队友在一台工作电脑上运行任务:它在那里读写文件、跑命令、打开浏览器。工作电脑可以是云端沙箱(平台提供,每个 AI 队友一个,背后是哪台机器由平台安排),可以是整台云虚拟机(平台提供,每个 AI 队友一台,有管理员权限,能跑 Docker),也可以是你自己的电脑或服务器(接入后叫「自有设备」)。
云端沙箱里用不了 Docker 和 sudo。要跑 Docker、要虚拟化或要装系统软件的房间,在「这个话题的工作电脑」里选「其他配置与设备 → 整台云虚拟机」。每个 AI 队友第一次干活时平台开一台,要等几分钟;队友闲置 30 分钟后,改动先推送到分支,再把虚拟机删掉,下次干活时再开一台新的。部署没有提供这一项时,选项里不出现。
接入这台电脑(Mac、Windows)#
桌面端接入不需要打开终端:
- 点右上角头像,打开「设置 → 设备」,点「添加设备」。
- 在「Mac 或 Windows 电脑」下载桌面端并安装。第一次打开若被系统拦下:Mac 到「系统设置 → 隐私与安全性」点「仍要打开」;Windows 点「更多信息 → 仍要运行」。
- 在桌面端登录知是,打开「设置 → 设备 → 添加设备」,点「接入这台电脑」。
完成后:这台电脑出现在「设置 → 设备」里,显示「在线」。
桌面端每次启动都会检查新版本,下载完成后自动安装并重启。需要重新安装时,在「设置 → 设备 → 添加设备」的「Mac 或 Windows 电脑」下再下载一次。
接入服务器或其他机器#
服务器、Linux 机器,或不想装桌面端的电脑,用命令行接入:
- 在「设置 → 设备 → 添加设备」的「服务器,或不装桌面端的电脑」下,复制对应系统的安装命令,在要接入的机器上运行。它会装好连接程序
cheesehost。 - 运行
cheesehost link connect(安装命令结束时会打印带站点地址的完整命令,照抄即可)。它会给出一个链接。 - 在浏览器里打开这个链接,进入「批准这台设备」页面,核对设备名称,点「批准并绑定到我」。
- 回到命令行,同一条命令会接着完成接入,并保持连接。

完成后:设备出现在「设置 → 设备」里,显示「在线」。设备名旁可以重命名,设备行可以「解绑」。
命令行随时可以用 cheesehost status 查看登录和连接状态。
把设备给团队用#
自有设备可以加进团队,供团队的项目使用:
- 在团队侧栏打开「工作电脑」,找到「自有设备」区域。
- 点「添加自有设备」,选择一台已接入的设备。
完成后:设备出现在团队的设备列表里,这一栏同时显示设备数和在线数。
想让自己名下的项目用这台设备,在侧栏你的名字下面打开「工作电脑」,同样点「添加自有设备」。
只加给某个项目、没有加进团队的自有设备,也列在团队的设备列表里,并写明仅供哪些项目使用。
有 AI 队友开始在你的设备上工作时,你会收到一条通知,写明是哪个项目、哪个房间、哪个 AI 队友,以及它能不能访问整台机器。每个 AI 队友开工时通知一次,之后每轮不再通知;你自己在那个房间里时不通知,名册上已经写着。
团队的设备列表里,你自己的设备下面列出现在谁在用:「正在用:项目 · 房间 · AI 队友」。这一行只有设备的主人看得到。
选择工作电脑#
新房间里的 AI 队友默认用项目设的工作电脑,在「项目设置 → 工作电脑 → 默认工作电脑」的「新 AI 队友默认使用」里改。改了只影响尚未开始运行的 AI 队友。
已经开工的 AI 队友在哪台,看同一处的「现在的分布」:按云端和每台自有设备列出人数;有房间被给了整台机器的自有设备,后面写着「能访问整台机器」。项目负责人可以点自有设备那一行的「查看并更换…」:
- 列出这台设备上的 AI 队友(房间、名字、最近活动),勾选一些或全选,选好换到哪台后点「推送并更换」。
- 每个 AI 队友走和成员名册里一样的更换:先推送,推送失败的不换,并逐个写明原因。
- 原来那台连不上的,由你逐个决定要不要「不推送,直接更换」。
- 正在运行任务的 AI 队友会跳过,写着「正在运行任务,稍后再换」。
- 你打不开的房间只计数,不列出。
每个 AI 队友用哪台,写在房间的成员名册里:点房间顶部的成员头像打开名册。
- 名册底部那一行写着「本话题运行在:设备名」。点「改」打开「这个话题的工作电脑」另选一台,选好后点「推送并更换」。
- 更换时平台先把房间里每个 AI 队友的改动推送到各自的分支。全部推上去才换,新电脑从分支拉代码继续;有一个推不上去就整个不换,并说明原因。
- 原来那台连不上时,对话框会说明,你可以选「不推送,直接更换」,那台上没推送的改动不会跟过去。AI 队友自己也能换,同样先推送,原来那台连不上时要请房间里的人来换。
- 选项里标着「项目默认」的是项目的默认工作电脑;「自有设备 · 自动选择」表示开工时挑一台在线的自有设备。
- 房间里所有 AI 队友共用这一台,之后加入的队友也用它,不再各选一台。
房间被给了整台机器时,那一行后面写着「能访问整台机器」:AI 队友能操作这台机器上的服务和其他房间。只要房间是这样,房间顶部也一直显示这句提醒。
自有设备上 AI 队友能看到什么#
房间用自有设备时,AI 队友默认在这台设备上的隔离环境里干活:
- 看得到、写得了的:房间自己的工作目录,和本项目的包缓存。
- 看得到、改不了的:系统里装的东西,比如
/usr/bin下的git、python3、node。 - 看不到的:设备主人用户目录里的一切(
~/.ssh、各种凭据、文档),别的房间,/mnt、/media下挂的盘。 - 用不了的:装在用户目录里的工具,比如 nvm 装的 Node、
~/.cargo/bin、~/.local/bin下的命令。AI 队友要用的工具请装到系统里,或者写进项目的环境安装脚本。
设备主人也可以给某个房间整台机器:AI 队友以主人的身份运行,能看到、改动这台机器上的一切,包括别的房间。在房间名册底部点「改」,在「这个房间在某某设备上能看到什么」下面选「整台机器」。只有设备主人本人登录后能选;房间里的其他人和 AI 队友自己都能把它改回「隔离环境」,不能改成整台机器。
隔离环境对设备的要求:
- Linux:要装 bubblewrap(Debian、Ubuntu:
sudo apt install bubblewrap;Fedora:sudo dnf install bubblewrap;Arch:sudo pacman -S bubblewrap),并允许普通用户创建用户命名空间。Ubuntu 23.10 起 AppArmor 默认禁止这件事,可以给 bubblewrap 加一份允许它的 AppArmor 配置,或者运行sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0(写进/etc/sysctl.d/下的文件才能重启后保留)。缺了哪一样,AI 队友开工时会收到说明,写明要装什么、改什么。 - macOS:不用装任何东西,用的是系统自带的
sandbox-exec。和 Linux 一样看不到用户目录里装的工具;另外,隔离环境里的程序只能写自己的目录,/tmp换成了房间自己的临时目录,也连不上这台 Mac 上其他程序开的本地 socket(比如你自己的 tmux)。 - Windows:没有隔离环境。在 Windows 上装 WSL,把 WSL 里的 Linux 按上面的「接入服务器或其他机器」接入,用它;或者设备主人给房间选「整台机器」。
隔离环境出现之前就在自有设备上运行过的房间,保持原来的整台机器:名册那一行和房间顶部照旧写着「能访问整台机器」,设备主人在「改」里看到选中的是「整台机器」,可以改成「隔离环境」。用过几台自有设备的房间,只在最近用的那台上保持;回到别的那台,从隔离环境开始。
docs/manual/devices.md