来源:互联网 更新时间:2026-07-19 09:39
如果你在 GitHub Pages 上阅读本文,这里是配套的存储库版本。
核心思路是创建一个 Claude Code 可以独立控制的隔离环境,这样就能把一些不太适合在自己机器上运行的任务委派出去——比如某些类型的研究和开发工作。
特别是,当 Claude Code 以 --dangerously-skip-permissions 标志运行时,潜在风险不可忽视。在备用 Mac 上划出一个独立环境,把所有需要的资源都放进去,就能有效消除或降低这些风险。
额外的好处是,通过手机就能随时随地与 Claude Code 沟通。实际体验下来,很多时候更愿意直接跟 Claude Code 对话,而不是在移动应用上使用普通的 Claude——Claude Code 往往能处理更复杂的任务。
本指南假设你有一台主 Mac 和一台可以用于此设置的备用 Mac。不过,核心思路可以灵活套用到任何两台计算机的组合上。
先回答几个你可能存在的疑问。
容器化运行当然是个好主意——甚至有人专门构建了完整的环境来方便地做到这一点。但实际使用中发现了一些限制。首先,它仍然运行在主机上,并没有完全隔离。例如,网络请求还是通过主机发送的。
其次,容器的功能有一定限制。比如,希望智能体能够运行 Unity 进行游戏开发,这在容器里就很难实现。对于其他仅在 Mac 上可用的应用也是如此,容器里无法访问。如果希望 Claude Code 通过计算机使用(点击、拖动等)来控制这些应用,这一点尤其关键。
完整的最新功能显然更有吸引力。同时,通过 Claude 应用进行控制也非常方便。如果你恰好有 Claude 订阅,那就更划算了。
归根结底,在完全可控的机器上运行具有广泛权限的智能体,安全性更高——同时还能获得完整 Mac 环境而非容器带来的所有好处。具体方案的核心思路是:
你将授予智能体对该计算机的完全访问权限,这意味着它可以读取存储在上面的任何内容。如果你不希望它访问现有数据,请先擦除计算机:
之后可以选择更新到最新的 macOS(系统设置 → 通用 → 软件更新)。
该账户需要管理员权限,否则 sudo 将无法运行。
sudo dseditgroup -o edit -a -t user admin 在目标 Mac 上打开 SSH,这样源 Mac 才能连接上去。
如果该命令失败并提示“需要完全磁盘访问权限才能打开或关闭远程登录”,请先为终端应用授予完全磁盘访问权限:
这样一来,智能体(以及你的 SSH 命令)就可以执行管理任务,而无需每次输入密码。在目标机器上运行一次,这次它会要求输入登录密码。
这会创建一个小的规则文件,告诉 Mac 允许
之后,sudo 会在没有提示的情况下运行。用 sudo -n true 测试一下,如果静默成功,说明无密码 sudo 已生效。
你可以通过主机名或 IP 地址访问目标机器。建议使用主机名:它保持不变,而 IP 可能会变化。
主机名(推荐)。在目标机器上运行:
添加 .local 后缀形成地址:。你也可以在“系统设置” → “通用” → “共享”中查看,它会被显示为“本地主机名”。
为目标指定一个唯一的名称。每台 Mac 都需要一个在网络上唯一的 .local 名称。如果两台计算机共享一个名称,该地址可能会指向错误的 Mac。确保目标的名称是唯一的——如果需要重命名:
IP 地址(不推荐)。在目标机器上运行:
请注意,IP 地址在重启后或经过一段时间后可能会发生变化。
在后续步骤中,将 。你也可以用 IP 地址代替
在源 Mac 上,创建 SSH 密钥(如果已有密钥,请跳过):
在目标机器上安装你的公钥。这会要求输入目标账户的登录密码一次:
测试一下——这应该直接打印出目标用户名,没有密码提示:
默认情况下,macOS 会在空闲约 10 分钟后进入睡眠状态,即使已接通电源,网络也会断开。要让它永不休眠,请在目标机器上运行此命令(或从源 Mac 通过 SSH 运行):
输出中显示 sleep 0、SleepDisabled 1 和 sleep 0 即表示生效。
如果机器有时使用电池运行,请使用 -a 而非 -c,以适用于所有电源模式(代价是增加电池消耗)。
当屏幕保护程序启动时,屏幕仍可能锁定。阻止屏幕保护程序启动,这样它就不会自动锁定:
macOS 自带 pbcopy(写入剪贴板)和 pbpaste(读取剪贴板)。通过 SSH,它们可以在机器之间移动剪贴板内容——加密、点对点、无需 Apple ID 或第三方服务。
Clip.sh 将其封装为一个命令,包含两个子命令,并在 pbcopy/pbpaste(纯文本)的基础上增加了对图像的支持。将其作为脚本安装在源 Mac 的 PATH 上,并使用 IC_BOX 指向目标主机(“ic”代表“isolated claude”):
clip send —— 将本机剪贴板内容发送到目标机器(文本或图像)。对于图像,你可以用 Ctrl-V 直接粘贴到目标机器上的 Claude Code 会话中。clip get —— 将目标机器的剪贴板内容拉取到本机(文本或图像)。发送安装命令并运行它。从源 Mac,你可以直接将其推送到目标机器的剪贴板,或远程运行。以下命令安装特定版本,如果你愿意,也可以安装最新版本或稳定版本:
本机安装程序可能会警告 ~/.local/bin 不在 PATH 中。通过将其添加到 ~/.zshenv(不是 ~/.zshrc)来修复此问题——每个 zsh 都会读取 .zshenv,包括非交互式 zsh:
此可选步骤通过 setup-claude-env.sh 应用一组默认配置——shell 别名、DX 插件、settings.json 调整、GitHub CLI 以及(选择加入)Playwright MCP 和 yt-dlp。每个项目都是可切换的,具体列表请参考 claude-env-components.md。
在目标机器上交互式显示每个项目(核心功能预先勾选,选择加入的未勾选),你可以选择任意组合。将脚本下载到目标机器并运行:
非交互式模式——如果脚本检测到非交互式环境,或者你提供了至少一个标志,则脚本会进入此模式。静默运行,默认只安装核心功能,或者使用标志选择你想要的(--yt-dlp、--playwright、--all、--core):
该脚本是幂等的,可以重复运行。
两种登录都需要交互操作,因此需要 SSH 进入:
在目标机器上运行 claude——它会引导你进入 Anthropic 账户的登录流程。按照提示操作(你可以通过主 Mac 上的浏览器完成浏览器/设备代码流程)。
GitHub——可选,但强烈推荐,这样智能体就能使用代码仓库:
如果你尚未安装 GitHub CLI,请务必先完成安装。
建议使用单独的 GitHub 账户,而不是主账户,这样不会影响主账户的使用。
这将使目标机器上的交互式 Claude 会话能够看到(屏幕截图)并控制(鼠标/键盘)其自身的桌面(通过 SSH 驱动)。
这并不是开箱即用的——macOS 的权限模型与 SSH 之间存在冲突,因此需要下面的设置来解决。
为什么需要解决这个问题:macOS 会将屏幕捕获和输入控制与 GUI 登录会话关联,并受屏幕录制和辅助功能权限控制,因此 SSH 进程无法直接访问显示器。解决方法:通过 LaunchAgent 在固定套接字上的 GUI 会话中保持一个 tmux 服务器处于活动状态;在此创建的每个 Claude 会话都会连接到该服务器,并继承 GUI 会话,从而能够访问显示器。你只需要通过 SSH 连接即可。
在目标机器上运行 setup-computer-use.sh:
这将安装 LaunchAgent(一个带有锚点会话 cc 的持久 tmux 服务器),并启用 ~/.claude.json 中的内置计算机使用工具。需要 tmux(brew install tmux)和 Claude Pro 或 Max 订阅。可重复运行;--uninstall 参数可卸载。
在源 Mac 上安装 ic.sh(“ic”代表“isolated claude”):
每个 ic 命令都会在目标机器上生成一个独立的 Claude 会话(可以一次运行多个),并附加到会话中。ic rc 命令会启动一个远程控制服务器,并添加了几个子命令:
所有 ic 会话都使用 --dangerously-skip-permissions 运行(而 ic rc 使用 --permission-mode BypassPermissions)。
关于复制文本:会话在 tmux 中运行,而 Terminal.app 无法接收 Claude 发出的剪贴板转义序列 (OSC52),因此用鼠标选择文本片段无法可靠地复制到你的 Mac 剪贴板。快速解决方法:Cmd-A 然后 Cmd-C 复制整个可见屏幕。
由于每个 ic 会话都位于目标机器 tmux 服务器上的固定套接字上,源 Mac 上的 Claude Code 会话可以直接通过 SSH 提示一个会话——这对于将工作委派给目标机器并检查结果(智能体到智能体)非常有用:
屏幕录制和辅助功能权限只能在 GUI 中授予,并且必须由操作员在机器上亲自操作(或通过屏幕共享)——macOS 会阻止对这些提示的模拟点击。第一次捕获时,你可能还需要允许“绕过窗口选择器”提示(每月重复一次)。
授权是针对 tmux 的,而非 Claude。macOS 将捕获/控制归因于链中负责的进程,这里是 tmux 服务器(Claude 作为其子进程运行)。因此:
tmux -S /tmp/cc-tmux.sock kill-server(LaunchAgent 会在几秒内重新生成锚点)。重启后启动的 Claude 会话将获得新的授权。要使条目首先出现在系统设置中,请触发一次计算机使用操作(运行 ic,然后要求 Claude“截取屏幕截图”)——macOS 会将 tmux 添加到列表中(显示为关闭状态),以便你将其打开。
完全磁盘访问权限可以阻止“从其他应用程序访问数据”的提示。在较新的 macOS 上,tmux 会针对每个触及数据的应用程序触发单独的“tmux 希望访问其他应用程序的数据”提示。为 tmux 授予完全磁盘访问权限(位于同一“隐私与安全性”面板中)可以完全抑制这些提示:使用 + 按钮并添加 tmux 二进制文件(Cmd-Shift-G 输入路径)。之后,如上所述重启 tmux 服务器。
在目标机器上运行 VPN 是个好主意,这样它的流量就会与本地 IP 分离。例如,可以使用 Proton VPN——它有免费选项,而且已经稳定运行多年——当然,其他选项也完全可以。
如果你完成了上一步,可以直接让目标机器上的 Claude 来完成安装:运行 ic 并输入“安装 Proton VPN”。它将会下载并安装该应用程序。需要手动完成的部分:
clip send 安全地发送密码:复制到 Mac 上,运行 clip send,然后粘贴到目标机器上的登录字段中。这一流程不仅适用于 VPN 应用程序,也适用于几乎任何其他应用程序。
远程控制功能让你可以通过手机上的 Claude 应用程序来驱动 Claude Code。有两种使用方法:
/remote-control(或简称 /rc)并按照说明操作——然后你就可以从手机驱动同一会话,在两者之间来回切换。claude remote-control 启动服务器,这还可以让你从手机启动全新的会话,而不仅仅是附加到已有会话。如果你完成了第 11 步,ic rc 会为你启动该服务器,这样从手机生成的会话也能访问计算机使用功能。
第 11 步中的计算机使用功能故意不会控制浏览器——浏览器受到限制,Claude 可以看到屏幕上的内容,但无法点击或输入。Chrome 中的 Claude 扩展程序通过适当的浏览器控制填补了这一空白:导航、点击、填写表单、读取控制台日志和网络请求。与 Playwright MCP 不同,它会驱动你的常规 Chrome 配置文件,因此智能体可以使用你在目标机器上设置的任何登录状态。
它需要目标机器上有 Chrome 浏览器,以及相应的 Anthropic 订阅(Pro、Max、Team 或 Enterprise)。
你可以让目标机器上的 Claude 安装 Chrome 并打开该扩展程序的 Chrome Web Store 页面。需要手动完成的部分(在机器上、亲自操作或通过屏幕共享):
clip send 来发送登录信息。然后,在目标机器上的 Claude Code 中启用它:在会话中运行 /chrome 并选择“默认启用”,以便在每个会话中使用浏览器工具,或者跳过该选项,在每个会话中使用 claude --chrome(源 Mac 中的 ic --chrome)。如果连接不起作用,请尝试重启一次 Chrome。
为了提高浏览器使用效率(基于可访问性树的元素引用而非坐标,无未请求的截图),第 9 步中的环境设置将“Claude for Chrome”指导部分添加到目标机器上的 ~/.claude/CLAUDE.md 中。如果你跳过了该步骤,请重新运行该脚本——它是幂等的。
如果你的源 Mac 的 Chrome 也将扩展程序登录到同一账户,则 Claude Code 可以连接到任一浏览器。当两者都连接时,它会提示你选择,但其本地计算机检测可能存在错误。为了避免这种情况,你可以暂时从源 Mac 的 Chrome 中卸载扩展程序——或者在目标机器运行时退出源 Mac 上的 Chrome。
请注意,通过第 13 步从手机生成的会话目前无法获取浏览器工具——解决方法是在终端中启动会话,并使用 /rc 附加。
这使你可以使用 macOS 的内置屏幕共享功能,从源 Mac 实时查看目标机器的屏幕,并接管其鼠标和键盘操作。
必须在计算机的 GUI 中启用此功能——自 macOS 12.1 起,无法从命令行启用。
在目标机器上:系统设置 → 通用 → 共享 → 打开“屏幕共享”。如果“远程管理”已开启,屏幕共享开关可能会被隐藏——请先将其关闭。
然后从源 Mac 连接:
使用目标账户的登录密码登录,并勾选“在我的钥匙串中记住此密码”。
.local 名称仅在局域网内解析,因此到目前为止,所有操作都仅限于本地网络(第 13 步中的手机控制除外,它通过 Anthropic 中继)。Tailscale 解决了这个问题:它将你的机器通过点对点、端到端加密的 WireGuard 隧道连接起来,因此 SSH、ic、clip 和屏幕共享可以在任何网络上工作,而无需暴露在公共互联网上。在家庭网络上,它会采用直接局域网路径,因此本地使用的速度与之前一样快。加入网络仅提供设备可访问性——SSH 和屏幕共享仍然需要你的密钥或密码。
在目标机器上安装(Homebrew 公式可通过 SSH 无头工作;在最后一个命令打印的 URL 上登录——使用社交登录的免费账户即可):
在源 Mac 上安装,然后打开 Tailscale 应用程序并使用同一账户登录——设备只能在一个账户的网络中看到彼此:
使用 MagicDNS(默认情况下开启),可以从任何地方通过裸主机名访问目标机器——相同的地址,减去 .local 后缀。在 ~/.zshrc 中切换 IC_BOX,保留原来的名称以供参考:
屏幕共享的使用方式相同:打开 vnc://。
建议在管理控制台中进行以下设置:设备审批(设置 → 设备管理),这样仅受攻击的 Tailscale 登录无法将设备添加到你的网络;禁用目标机器上的密钥过期(机器 → …),这样密钥在大约 180 天后过期时,目标机器不会自动从网络中移除。
要确认远程访问确实有效,请将源 Mac 连接到不同网络(例如手机热点)并运行 ic ls。
七麦数据官网网页地址 七麦数据官方入口在线首页
问卷星官方网站入口地址 问卷星网页版在线使用
币安Binance官方中文网站 币安App最新版下载及新手注册指南
闲鱼的严选验货在哪里看?闲鱼严选和验货宝哪个可靠
PokePay加密卡2026完整指南:申请开卡全攻略+多场景应用技巧
淘宝直播如何看回放在哪里看?怎么查看淘宝直播回放
摩托车活塞环性能如何
为何比特币BTC价格跌破7.3万美元?一文拆解影响近期比特币行情的五大原因
豆包AI专业版使用教程【新手必看】
索尼限时赠送PS Plus Premium七日会员,需手
ThinkBook系列最新价格全解析:2026年选购避坑与实时询价指南
迷你网名古风男生霸气(精选100个)
文雅简易网名男生可爱(精选100个)
GPT5.6惨遭切脑,Fable 5回归要变弱鸡版?
《梦幻西游》特殊鬼怪怎么抓-隐藏变异鬼应对要点
币圈十大实用工具:从实时行情监控到数据分析、资产管理
王者荣耀「西行封妖记」【孙权-仙扇使者】6月25日上线!
闲鱼严选和验货宝哪个可靠?闲鱼的验货宝怎么样,,
币安杀入美股市场,重头戏bStocks还没来
陈姓和杨姓网名大全男生(精选100个)
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc