实战

用手机远程操控 Claude Code:SSH + Tailscale + tmux 的终极移动工作流

前奥巴马竞选 CTO Harper Reed 分享用 iPhone 远程控制 Claude Code 的完整方案:Tailscale 创建私有网络、Blink 作为终端客户端、Mosh 保证断网续连、tmux 管理多个 Claude 实例。附完整 shell 脚本,真正实现随时随地编程。

2026/2/284分钟 阅读ClaudeEagle

作者 Harper Reed(前奥巴马竞选 CTO)分享了他如何用 iPhone 随时随地操控 Claude Code 的完整方案。这个方案让很多朋友感到惊讶——因为它的核心其实是一种回归 2000 年代初的终端工作方式。

「我们现在都在用终端了,这很搞笑,也很有趣。」

为什么这件事值得做

每个 Harper 关于 Claude Code 的对话几乎都以同一句话结尾:「我希望我能在手机上用这个。」

好消息:完全可以做到,而且并不复杂。

整体方案概览

Harper 的答案是四个工具的组合:

需求Harper 的选择替代方案
网络连接TailscaleZeroTier
终端客户端BlinkPrompt、Termius
工作站Mac(一直通电,快速网络)Linux 服务器
工具链tmux + Mosh + 自定义脚本screen

第一步:让工作站可以远程访问

macOS 设置

  1. 开启 SSH:系统设置 → 通用 → 共享 → 远程登录
  2. 可选:开启屏幕共享(Remote Management)
  3. 先在同一局域网内测试:ssh 192.168.x.x

安装 Tailscale(关键步骤)

Tailscale 是整个方案的网络核心。它自动创建一个只有你能访问的私有网络,手机在东京、工作站在芝加哥也能无缝连接,无需配置防火墙,无需公网 IP。

bash
# macOS
brew install tailscale
sudo tailscaled

# iPhone 上安装 Tailscale App,登录同一账户
# 两端自动互联!

安装后,用 Tailscale 分配的 IP 地址测试 SSH 连接。

第二步:选择终端客户端

Harper 强烈推荐 Blink

「打开 Blink,它直接扔给你一个 shell。没有界面,没有废话。就是 shell。」

其他不错的选择:Prompt(Panic 出品)、Termius(跨平台)。

配置 SSH 连接:

bash
# 在 Blink 中
config  # 配置主机和 SSH 密钥
# 然后
ssh <tailscale-ip>

第三步:三个关键工具

1. SSH 密钥管理

在 Mac 上,Claude Code 的 API Key 存储在 Keychain 中,SSH 连接需要先解锁 Keychain。Harper 写了一个一键解锁脚本:

bash
#!/bin/bash
# unlock.sh
if timeout 1 security show-keychain-info &>/dev/null; then
    echo "✓ Keychain 已解锁"
else
    echo "✗ 解锁 Keychain..."
    security unlock-keychain
    [ $? -eq 0 ] && echo "✓ 解锁成功" || { echo "✗ 解锁失败"; exit 1; }
fi

2. Mosh:让连接更稳定

Mosh(Mobile Shell,2012 年发布)专为不稳定网络设计:

bash
# 替代 ssh 使用
mosh <tailscale-ip>

优势:进地铁断网 → 出来网络恢复 → Mosh 会话自动续连。Claude 还在继续工作,就像什么都没发生。

3. tmux:多会话管理核心

tmux 是整个移动工作流的灵魂:

  • 持久会话:断连后重新 attach,一切还在
  • 多路复用:同时运行 7 个 Claude Code 实例
  • 手机操控:随时切换不同的工作上下文

Harper 的 tm 脚本,根据主机名自动命名会话:

bash
#!/bin/bash
# tm - 智能 tmux 会话管理
case "$(hostname -s)" in
    "orbit")    DEFAULT_EMOJI="🪐" ;;
    "godzilla") DEFAULT_EMOJI="🦖" ;;
    "occult")   DEFAULT_EMOJI="🔮" ;;
    *)          DEFAULT_EMOJI="✨" ;;
esac

SESSION_NAME="${1:-$DEFAULT_EMOJI}"

if tmux has-session -t "$SESSION_NAME" 2>/dev/null; then
    tmux attach-session -t "$SESSION_NAME"
else
    tmux new-session -s "$SESSION_NAME"
fi

第四步:Claude Code 别名

bash
# ~/.zshrc 或 ~/.bashrc
alias cc-start="claude --dangerously-skip-permissions"
alias cc-continue="claude --dangerously-skip-permissions --continue"

完整工作流程

1. 打开 Blink 2. ssh <tailscale-主机名> 3. 运行 unlock.sh ← 解锁 Keychain 4. 运行 tm ← 进入/恢复 tmux 会话 5. cc-start 或 cc-continue 6. 开始烧 Token 🔥

Harper 的感悟

「Claude Code 带着优雅的姿态闯进来,把那个氛围给毁了——或者说创造了一个新氛围?谁知道呢。反正我们现在都在用终端,这很搞��,也很有趣。」

这套方案让他可以:

  • 在厨房等水烧开时继续 Claude Code 项目
  • 在地铁上(网络恢复后 Mosh 自动续连)
  • 晚上在沙发上
  • 几乎任何有网络的地方

⚠️ 重要提示:不要在开车时用。Claude Code 可以等你。


原文:Remote Claude Code: programming like it was the early 2000s | 来源:Harper Reed 的博客

相关文章推荐

实战用手机远程运行 Claude Code:SSH + Tailscale + Tmux 完整工作流Harper Reed 的手机远程使用 Claude Code 完整方案:Tailscale 打通网络无需配防火墙、Mosh 保持连接断网自动重连、Tmux 管理多个 Claude Code 实例,含 Mac Keychain 解锁、Claude Code 别名和快速 Tmux 脚本。2026/3/1实战Claude Code 跨会话协作实战:用 SendMessage 和 ListAgents 串联你的多台设备解析 Claude Code v2.1.224 新增的跨会话消息能力,探讨 SendMessage/ListAgents 的实战用法、crossSessionInbound 安全边界与多设备协作的应用潜力。2026/8/7实战Claude Code 长会话优化实战:让 CLAUDE.md 规则在 Compaction 后依然存活实战教学:基于官方 Compaction 存活规则表,指导你如何重新组织 CLAUDE.md 规则、调整 SKILL.md 写作顺序、合理使用 /compact focus 和 /clear,确保关键约定在长会话压缩后仍然存活,附完整检查清单。2026/7/12实战Claude Code Agent Teams 实战:三视角协作设计一个 CLI 工具基于官方文档实例,实战演示如何启用 Claude Code Agent Teams 并用三个视角(UX、技术架构、唱反调)协作探索一个 CLI 工具的设计方案,详解空闲行显示逻辑、折叠交互、In-process 与 Split panes 两种显示模式的适用场景。2026/7/12实战Claude Code 实战:Desktop 内置浏览器 + Auto Mode 组合,从查文档到自动提交 PR通过一个真实集成第三方 API 的完整场景,演示 Claude Code Desktop 内置浏览器与 Auto Mode 组合使用如何实现从查阅官方文档、编写集成代码、本地预览验证到提交推送创建 PR 的端到端自动化,并梳理背后的多层安全边界设计。2026/7/11实战Claude Code 生产力工具箱:MCP + GitHub Actions + Prompt Caching 三件套实战组合实战讲解如何组合 MCP 数据连接、GitHub Actions 自动化和 Prompt Caching 优化,搭建从 Issue 到 PR 的完整自动化工作流,并给出权限最小化配置和团队级实战检查清单。2026/7/6