关于 remote-mac
用于检查和操作 Peter 在公司及个人网络中的 Mac 的技能,强调实时核实主机身份、安全使用 SSH,以及谨慎处理故障和设备专属状态。
主要功能
- 01实时发现 Tailscale 主机
- 02核对主机身份与网络
- 03非交互式 SSH 指引
- 04OpenClaw 健康检查
- 05迁移 Codex 自动化任务
适用场景
- 01为远程工作选择正确的 Mac
- 02检查 OpenClaw Gateway 状态
- 03将 Codex 定时任务迁至 Mac Studio
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ steipete/ agent-scripts --skill remote-mac安装后在 Claude Code 中输入/remote-mac确认已加载。
详细介绍
远程 Mac
当用户提到 MacBook、Mac Studio、clawmac、foundationclaw、foundationmac、megaclaw、miniclaw、Molty、Tailscale,或要求在 Peter 的某台 Mac 上运行或检查内容时使用。
Peter 的拓扑
- 用于交互式审批和日常工作的主工作站:Peter 位于 SF 的 Mac Studio,本地/Tailscale 名称为
steipete-studio-sf。Peter 的 MacBook Pro(steipete-mbp)是便携/备用工作站;不要仅因它在线就将提示转发到那里。 - 伦敦主力机:Mac Studio,Tailscale 名称为
peters-mac-studio-1;在其局域网内时,通常通过[email protected]访问效果最佳。 - SF 主工作站:
steipete-studio-sf。其当前 Tailscale 目标和已退役节点状态记录在私有管理器computers.yaml中;不要仅因某个对等节点显示在线就选择它。 clawstudio是独立的 SF 数据服务器和个人 OpenClaw Gateway 主机,原名为mac-studio-sf2。其准确的当前对等节点 ID、地址、硬件身份和协调状态仅记录在私有管理器清单及docs/tailnet-portal.md中。如果出现多个对等节点,请为每条后端命令固定指定节点,在本地核实物理主机,保留回滚路径,并遵循私有协调门控流程。不要将私有拓扑发布或复制到公开运维手册中。- SF Mini:本地/Tailscale 名称为
steipete-mini-sf。其当前内核和已退役 GUI 目标记录在私有管理器清单中。Mini 通过 tailnet TCP 22 授权使用经典的仅密钥 OpenSSH,因为 GUI 版 Tailscale 无法托管 Tailscale SSH。其密钥已安装在两台 SF Studio、MegaClaw 和 MiniClaw 上;实时验证信息以及离线/提供商受阻时的处理说明,请参阅私有管理器docs/fleet-setup.md。不要将其与 FoundationClaw 混淆。 - 个人云端 OpenClaw:
clawmac(Peter 可能会拼错/说成crabmac),MacStadium 服务100121942,Tailscale/SSH 地址为steipete@clawmac,通过 LaunchAgentai.openclaw.gateway运行 Gateway,回环地址为127.0.0.1:18789,Telegram 已连接。当前 2026-08-01 提供商网络中断由亚特兰大现场支持人员跟进,工单为 #11481/#11484;一次强制重启仅短暂恢复了 SSH,因此不要重复断电重启。 - 网络划分:
corporate:Peter 的工作托管环境。在该环境中,将 Mac Studio 视为要配置和检查的主要远程 Mac。personal:Peter 的个人局域网/个人云端环境,包括clawmac。
- 网络边界:从 Peter 的公司 Mac 无法访问
clawmac和个人局域网。绝不要从该设备使用clawmac作为中继或局域网观察点。 - Molty 以前的 Mac Studio Gateway 已退役,必须保持禁用状态;真实的 Molty 独立运行在 Hetzner 上。不要将旧 Mac Studio 运行时视为健康状态的预期。
megaclaw:Virtualized.gg 产品 22(Phoenix 的 Mac Studio M4 Max),当前启用的备用 Mac 工作节点。Tailscale/SSH 地址为steipete@megaclaw。按设计不运行 OpenClaw Gateway;个人 Gateway 运行在clawstudio上。不要在megaclaw上配置或启动 Gateway。miniclaw:Virtualized.gg 产品 24(Phoenix 的 Mac mini M4 Pro),公共 SSH 地址为[email protected]。截至 2026-08-01 的实时状态已恶化:拥有特权的 Homebrew 守护进程持有过期的重复miniclaw-1,且无法连接协调服务;规范节点miniclaw无法使用。只有在明确授权使用存储的个人管理员凭据进行特权修复前,才使用公共 SSH;仅凭提供商 SSH 不要声称规范 tailnet 路径正常。foundationclaw:MacStadium 服务 100124960,位于亚特兰大的 M2.L,公共地址记录在computers.yaml中。提供商 SSH 已验证这是一台 Mac14,12 M2 Pro Mac mini,并验证了硬件 UUID 和administrator管理员账户;其规范本地主机名为foundationclaw。已安装签名版 Tailscale 和 Jump Desktop Connect v10,但此前可用的提供商凭据已无法通过验证。在继续进行 Tailscale 注册和首次运行 GUI 权限设置之前,须先完成工单 #11386 中待处理的保留数据重置。不要将其与独立的 SF Mini 合并。
非 Mac 设备节点(完整详情见 computers.yaml):
gorillaclaw:位于 GorillaServers(洛杉矶)的个人 Ubuntu Linux 节点,Tailscale 地址为100.93.99.79;SSH 用户为steipete。steipetesurface:Peter 的个人 Windows Surface,Tailscale 地址为100.118.219.64,SSH 用户为steip。公司 Windows 笔记本CPC-steip-11ENO与其分开,由公司管理。
不是 Peter 的 Mac(不要配置或标记为他的设备):
crabhammer:给了 vince 的 Scaleway M4-XL;位于 Peter 的 tailnet 中并由 Peter 付费,但配置给 vince 使用(无 SSH 访问权限)。在computers.yaml的handed_off:下列出。
管理器仓库的权威数据源(所有节点的规范清单,包括 Mac 和非 Mac):
/Users/steipete/Projects/manager/computers.yaml/Users/steipete/Projects/manager/agents.yaml
发现
- 从实时的
tailscale status --json开始;匹配主机名/DNS 名称,并使用节点当前 IP。管理器缓存的 Tailscale IP 可能已过时。 - 如果一台实体 Mac 显示多个 Tailscale 对等节点,不要根据
Active、PATH 顺序、进程名称或 IP 新旧来选择。请核实 ComputerName、LocalHostName、硬件 UUID、稳定节点 ID 和后端固定状态。在 clawstudio 上,macsys 位于/Applications/Tailscale.app/Contents/MacOS/Tailscale;Homebrew 内核需要使用/opt/homebrew/bin/tailscale --socket=/var/run/tailscaled.socket。停止任一后端之前,务必保留已验证有效的回退方案或定时自动重连机制。 - 对于租用的 Mac,请将实时身份与
computers.yaml中的服务提供商服务/产品记录核对。服务提供商显示为活动状态不代表已配置到设备群中,且仅凭公网 IP 不足以合并身份。 - 对于
clawmac,如果 MacStadium 显示为活动状态,但公网 IP、SSH/VNC 和 Tailscale 均不可用,则应视为服务提供商的网络/硬件故障。查看computers.yaml中当前的故障记录,更新现有工单,并请求检查控制台、网卡链路和交换机端口。未经 Peter 批准,不要重复执行强制重启,也不要授权重装映像、擦除、重装系统、更换存储设备、重置凭据或其他会影响数据的操作。 - 在
corporate环境中,远程配置工作默认使用 Mac Studio。通过其实时 Tailscale 节点连接。MagicDNS 可能已禁用;请直接使用当前的TailscaleIPs[0]。不要从该环境尝试连接clawmac、使用 mDNS 或发现个人局域网设备。 - 如果从
personal环境访问时 Tailscale 已关闭或 SSH 超时,请尝试通过局域网发现:
dns-sd -B _ssh._tcp local
arp -a
- 只有在同一局域网内时,才尝试使用
HOST.local等 mDNS 名称。 - 如果从
corporate环境无法连接 Mac Studio 的实时 Tailscale 节点,请停止操作:必须先将其唤醒或重新连接,然后才能继续进行 SSH 或屏幕共享诊断。
SSH 规则
默认使用非交互式 SSH:
ssh -o RequestTTY=no -o RemoteCommand=none HOST 'COMMAND'
本地 SSH 别名 mac-studio 会自动连接 tmux。对于一次性命令,可以使用 [email protected],或覆盖上述两个选项。
对于长时间运行或交互式的远程工作,请在远程主机上使用 tmux,并使用清晰易懂的会话名称。
OpenClaw 检查
在远程 Mac 上使用登录 Shell,确保 Homebrew 和 pnpm 位于 PATH 中:
ssh -o RequestTTY=no -o RemoteCommand=none [email protected] \
'zsh -lc "openclaw gateway status --json; openclaw channels status --json"'
clawstudio 健康状态:
- 按照
$claw-update和私有部署操作手册执行受支持的原生接管和常规openclaw update。通过已验证的 Production CLI,使用gateway status --deep --require-rpc --json进行诊断;切勿假设无关的全局 CLI 就是 Production,也不要在接管验证通过前删除旧版启动器。 lsof -nP -iTCP:18789 -sTCP:LISTEN必须与已验证的 Production 服务 PID 一致。确认实际提供服务的安装及独占监听器,不要根据版本目录名称推断健康状态。- Tailnet 门户和 Gateway 属于不同的健康层。分别验证 Gateway 深度 RPC 和 tailnet HTTPS;其中一项正常时,另一项仍可能不可用。
- 修复 Tailscale 时,绝不要启动
gateway:watch、重启 Gateway 或更改其版本。
伦敦工作室原有的 Molty 网关仍处于退役和禁用状态;真正的 Molty 在 Hetzner 上独立运行。
clawmac 健康状态:
launchctl list中包含ai.openclaw.gateway。lsof -nP -iTCP:18789 -sTCP:LISTEN显示回环监听器。openclaw channels status --json显示 Telegram 已连接。
Codex 自动化
- Codex cron 自动化是主机本地的调度器状态,并非通用云端作业。
- 在
corporate环境中,除非 Peter 另有说明,否则应在 Mac Studio 上配置或镜像这些自动化。 - 将目标主机上的
~/.codex/automations/<automation-id>/automation.toml视为该机器上计划作业定义的真实来源。 - 如果要将 cron 自动化从 Peter 当前使用的 corporate 机器迁移到 Mac Studio,请在 Mac Studio 上完成机器相关操作:
- 确保目标仓库的检出副本存在于该机器上
- 同步所需的仓库本地策略文件
- 在 Mac Studio 上创建或更新对应的
~/.codex/automations/...条目 - 如果 Peter 只想保留一个运行端,则禁用或暂停旧的 corporate 主机副本
- 不要假设 Codex 应用的会话线程交接会迁移 cron 调度器所有权;线程迁移与 cron 所有权彼此独立。
clawmac GUI 访问
- 如果
computers.yaml记录了服务商网络中断,且公共 SSH/VNC 和 Tailscale 均无法连接,则 GUI 也不可用。请继续通过现有的 MacStadium 现场支持工单处理;不要再次重启主机。 - 优先直接在 clawmac 上进行自动化操作,而不是先使用 Tailscale/SSH:
open -a "Google Chrome"、AppleScript、Chrome DOM JavaScript 和远程 Peekaboo 点击。 - 在 clawmac 上使用
gogOAuth 时,请让浏览器保持在 clawmac 上。在远程 tmux 中启动gog auth add,在 clawmac 的 Chrome 中打开显示的网址,使用 AppleScript/DOM 自动化点击授权,然后通过zsh -lc 'gog auth list --check --json --no-input'验证。 - 如果远程 Shell 环境导出了
GOG_KEYRING_PASSWORD,请使用匹配的登录 Shell 执行检查和向 tmux 提示输入内容;绝不要打印其值。 - 如果 SSH/cron 遇到直接自动化无法处理的仅限 GUI 的提示,请使用 Jump Desktop 的
clawmac窗口,通过本地 Peekaboo 作为备用方案。 - 使用
peekaboo list windows --app "Jump Desktop" --json查找该窗口;通过--window-title clawmac或返回的--window-id截取画面。 - 点击操作使用 Jump Desktop 窗口内的本地全局坐标;点击前请先通过原始窗口截图确认。
- Chrome Cookie/钥匙串问题:
security可能会提示输入Chrome Safe Storage;Peter 必须输入登录钥匙串密码,然后点击始终允许。 - 授权后,通过 SSH 使用
/Users/steipete/Projects/bird/bird check和/Users/steipete/.openclaw/bin/bird-gui check进行验证。
实时测试策略(OpenClaw)
- 在 Peter 的任何 Mac 上进行实时测试时,默认使用由当前会话拥有的开发网关:隔离的
OPENCLAW_STATE_DIR临时目录 + 空闲端口。真实网关运行时,绝不绑定 18789;绝不对非当前会话启动的服务执行launchctl kickstart/bootout/bootstrap或openclaw gateway stop/restart。 - clawmac = 生产环境。任何重启/停止、对
~/.openclaw下配置/状态的写入,或针对其网关的实时测试,都需要 Peter 在聊天中针对当前任务明确批准。一次批准只适用于一个任务,绝非长期授权。 - 任何共享的 Mac Studio 网关或开发监视会话都属于半生产环境:遵循相同的批准规则;绝不停止非当前任务启动的 tmux 会话。
- 隧道陷阱(megaclaw 和 Peter 的 MacBook Pro):这些主机上的
127.0.0.1:18789是通往 clawmac 的 SSH 隧道,因此在这些主机上进行“localhost”测试会访问生产环境。此处同样适用批准规则。这两台主机都没有运行本地网关服务。 - 用于测试或迁移演练的数据库/状态:生产副本需要针对当前任务明确批准,并说明目标位置和处理方式。只能使用获批的副本;写回生产环境或在生产环境中原地迁移需要单独批准。
- 更繁重的跨机器/跨 OS 实时端到端测试应通过
$crabbox进行,而非使用 Peter 的个人网关。
安全
- 不要根据过时的 IP 地址推断主机身份;尽可能验证主机名/用户名。
- 不要输出远程文件或 Shell 中的机密信息。
- 如果通过 Tailscale 和 LAN 回退尝试后主机仍不可用,请说明尝试了哪些方法。
- 对于 Peter 机器上的 OpenClaw Gateway,请遵循仓库文档/AGENTS;除非有人提出要求,否则不要安装/启动/停止服务。
评论
支持 Markdown