Chat On Steroids(CoS)安装与安全加固
2026-09-20 部署于 dlc(CachyOS,KDE Wayland)。把 ChatGPT(网页/桌面)通过 MCP 变成本地 Agent:读文件、跑终端、操作 Chrome。第三方独立项目,与 OpenAI 无官方关系。 仓库:https://github.com/totec448-spec/chat-on-steroids (MIT,3.3k stars,Electron)
一、它是什么 / 风险
- Electron 桌面 App + Chrome companion 扩展 + MCP(loopback + 密钥路径),经隧道暴露给 ChatGPT。
- 账号风险:扩展会自动化 ChatGPT 网页 UI 并本地录制对话,踩 OpenAI「禁止自动化/程序化提取」灰区,官方 README 自己警告可能被 policy warning / 限制 / 封号。最新版 release 标题甚至写 “Death to Anthropic and OpenAI”。用小号或可承受风险的账号,别用重要主号蛮干。
- 本机风险:
exec_command不受授权目录约束,以登录用户普通权限跑任意 shell;Desktop 连接器可全局看屏/控键鼠/操作 Chrome。 - Linux 新装默认:Core 全部能力开、只读关、扩展浏览器控制开;二进制无发布者签名(须核 SHA256)。
- 会话录制默认开、本地明文(safeStorage 只加密凭据,不加密 session)。
二、安装位置(本机现状)
- AppImage:
~/Applications/Chat-On-Steroids-Linux-x64.AppImage(v2.1.14,161MB,免 root,删除 AppImage 仅移除主程序) - 校验文件:
~/Applications/SHA256SUMS.txt(x64 AppImage sha256 =eafa5803…f790e) - 配置:
~/.config/chat-on-steroids/(config.json、app.log、sessions/、state/、extension/) - 专用授权目录:
~/cos-workspace/ - 启动器:
~/.local/share/applications/com.chatonsteroids.app.desktop+~/桌面/chat-on-steroids.desktop - 图标:
~/.local/share/icons/hicolor/1024x1024/apps/chat-on-steroids.png - AppImage 自带:
resources/tunnel/cloudflared(2026.8.2)+tunnel-client(0.0.14),无需另装 cloudflared。 - companion 扩展用 App 投放目录:
~/.config/chat-on-steroids/extension/(17 个文件,manifest v3,权限 storage/scripting/alarms/debugger/tabs + 全部 URL + loopback 8765-8769)。加载这个,不要用 /tmp 解压目录(/tmp/.mount 路径每次变)。 - 凭据存储:KDE kwalletd 已提供
org.freedesktop.secrets,不用装 gnome-keyring(装了反而两个密钥服务抢接口)。 - AppImage 沙箱正常:本机
kernel.unprivileged_userns_clone=1、FUSE 齐全,无需--no-sandbox。
三、隧道方式:选 Cloudflare quick tunnel(本机采用)
- 在 CoS「设置→连接设置」选 Cloudflare quick tunnel;本机网络直连即可建(QUIC 注册成功,UDP/TCP/API 全 PASS,不用代理、不用给 OpenAI 充值)。
- 点连接后 CoS 显示一条
https://xxxx.trycloudflare.com/<密钥路径>,整条含路径都要复制,视同密码;App/隧道一重启地址就变。 - ChatGPT 网页:Settings→Apps→Advanced→Developer mode→新建自定义连接器,连接方式必须切到 「服务器 URL」 粘贴该地址,身份验证选「无」。
- ❌ 不要选「隧道」模式:那是 OpenAI 官方 Secure Tunnel,要去 platform.openai.com 建 tunnel + 受限 API Key ;当时本机曾报 “Something went wrong”,是否由账户 credits 导致未核实。
四、关键坑(都踩过)
- “Allow all actions / 允许所有操作” 会把本地权限一键全开:装扩展/连接器时按提示选了 Allow all,CoS 的
readOnly被改回 false,command/create/edit/delete/screen/control 全 true,roots 还被加了目录,sessions.record=true。连接成功后 ChatGPT 立刻执行了自检 bash(hostname;uname -a;pwd;whoami,记录在sessions/2026-09-20-4d87b6f1/events.jsonl)。 → 用完若要最小权限,必须退出 App 后改 config.json 再启动(运行中改文件会被内存态回写覆盖,和 KDE plasma 一个道理)。 - 运行中界面操作会覆盖手工改的 config.json:曾把
tunnel.kind=cloudflared冲回openai导致报Enter a tunnel ID that looks like tunnel_…。改配置一律先杀进程。 - trycloudflare 公网 URL 只显示在 CoS 界面,不落盘:app.log 只写
quick tunnel connected,cloudflared metrics(${LOCALIP}:20241/metrics)只有计数没有 hostname,stdout 走管道交给 App。换地址只能去界面复制。 - quick tunnel 每次 App 重启端口/URL 都变(如 37887→39279),ChatGPT 那边的连接器 URL 要同步更新。
- QQ/邮件无关。卸载见下。
五、当前安全加固(最小只读,已生效)
~/.config/chat-on-steroids/config.json:
# 权限意图示意,含伪语法,不是完整 JSON 配置
"readOnly": true,
"roots": [{"name":"cos-workspace","path":"${HOME}/cos-workspace"}],
"capabilities": {browse/search/read/metadata=true;
create/edit/move/deleteFile/command/screen/control/clipboardRead/clipboardWrite=false},
"tunnel": {"kind":"cloudflared"},
"sessions": {"record": false},
"ui": {"autoContinue": false},
"multiAgent": {"enabled": false}config 备份:同目录 config.json.bak-*(含一个 .bak-fullopen-* 是全开态)。
注意:只读模式下 ChatGPT 只能读 ~/cos-workspace,写/命令/屏幕都被本地拒绝(扩展侧即使 Allow all 也调不动)。要让 ChatGPT 真干活时,在界面临时放开对应能力,用完再收回。
六、启动 / 日常
- 启动:桌面「Chat On Steroids」或命令行(需图形环境前缀):
env DISPLAY=:0 WAYLAND_DISPLAY=wayland-0 XDG_RUNTIME_DIR=/run/user/1000 ~/Applications/Chat-On-Steroids-Linux-x64.AppImage - 每次开机:CoS 里点连接重建隧道 → 复制新 URL → 更新 ChatGPT 连接器;Chrome 扩展一般自动重连(
bridge: browser extension 2.1.14 connected)。 - 日志:
tail -f ~/.config/chat-on-steroids/app.log(看server started/quick tunnel connected/tool exec_command)。 - 隧道是否被访问:
curl -s ${LOCALIP}:20241/metrics | grep cloudflared_tunnel_total_requests。
七、卸载
# 先在 ChatGPT 网页删掉自定义连接器 + Chrome 移除扩展
~/.local/bin/pskill "Chat-On-Steroids"; ~/.local/bin/pskill "mount_Chat-O"
rm -f ~/Applications/Chat-On-Steroids-Linux-x64.AppImage ~/Applications/SHA256SUMS.txt
rm -rf ~/.config/chat-on-steroids ~/.local/share/chat-on-steroids
rm -f ~/.local/share/applications/com.chatonsteroids.app.desktop ~/桌面/chat-on-steroids.desktop
rm -f ~/.local/share/icons/hicolor/1024x1024/apps/chat-on-steroids.png
update-desktop-database ~/.local/share/applications
# ~/cos-workspace 按需保留2026-10-09 Codex 审阅说明
安装、权限和隧道成功记录均为 2026-09-20 快照,本次未连接或重验。没有找到支持“OpenAI Secure Tunnel 必须 credits/充值”的官方证据;当时的通用错误不能确定计费因果,已撤回该必然结论。CoS 配置块包含伪语法,已标成示意,不能整段作为 JSON 保存。
SHA256 可核对完整性,但发布者身份还需要可信签名或可信校验来源。KWallet 和 gnome-keyring 并存不必然冲突,需核对实际提供者。quick tunnel 地址变化取决于是否重建隧道,不能保证每次 App 重启必变。删除配置目录会同时删除本地设置、会话等用户资料;卸载步骤只作历史资料,复用前应先备份并获得实际卸载授权。本次未执行。