mcpField
R
remote-mac

remote-mac

github.com/steipete云与 DevOps7.4k84 次安装1 周前更新
代码仓库

关于 remote-mac

用于检查和操作 Peter 在公司及个人网络中的 Mac 的技能,强调实时核实主机身份、安全使用 SSH,以及谨慎处理故障和设备专属状态。

主要功能

  1. 01实时发现 Tailscale 主机
  2. 02核对主机身份与网络
  3. 03非交互式 SSH 指引
  4. 04OpenClaw 健康检查
  5. 05迁移 Codex 自动化任务

适用场景

  1. 01为远程工作选择正确的 Mac
  2. 02检查 OpenClaw Gateway 状态
  3. 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,通过 LaunchAgent ai.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

发现

  1. 从实时的 tailscale status --json 开始;匹配主机名/DNS 名称,并使用节点当前 IP。管理器缓存的 Tailscale IP 可能已过时。
  2. 如果一台实体 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。停止任一后端之前,务必保留已验证有效的回退方案或定时自动重连机制。
  3. 对于租用的 Mac,请将实时身份与 computers.yaml 中的服务提供商服务/产品记录核对。服务提供商显示为活动状态不代表已配置到设备群中,且仅凭公网 IP 不足以合并身份。
  4. 对于 clawmac,如果 MacStadium 显示为活动状态,但公网 IP、SSH/VNC 和 Tailscale 均不可用,则应视为服务提供商的网络/硬件故障。查看 computers.yaml 中当前的故障记录,更新现有工单,并请求检查控制台、网卡链路和交换机端口。未经 Peter 批准,不要重复执行强制重启,也不要授权重装映像、擦除、重装系统、更换存储设备、重置凭据或其他会影响数据的操作。
  5. 在 corporate 环境中,远程配置工作默认使用 Mac Studio。通过其实时 Tailscale 节点连接。MagicDNS 可能已禁用;请直接使用当前的 TailscaleIPs[0]。不要从该环境尝试连接 clawmac、使用 mDNS 或发现个人局域网设备。
  6. 如果从 personal 环境访问时 Tailscale 已关闭或 SSH 超时,请尝试通过局域网发现:
dns-sd -B _ssh._tcp local
arp -a
  1. 只有在同一局域网内时,才尝试使用 HOST.local 等 mDNS 名称。
  2. 如果从 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 上使用 gog OAuth 时,请让浏览器保持在 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