Tactic Remote 最初的问题很具体:离开电脑后,能不能在手机上看看 Claude Code 做到哪一步了?2026 年初的原型用很直接的方法验证了这个想法——读取电脑上的终端内容,再显示到 iOS 应用里。

它证明了远程查看可行,也很快暴露出“看见”与“好用”之间的距离。这篇文章回顾截至 2026 年 2 月的早期研发过程:一个能够展示输出的原型,怎样逐步变成可以参与开发的工具。

第一版解决了显示,没有解决使用

早期原型通过轮询获取终端文本。它能传递内容,但更新有延迟,格式也不完整。这种方式适合验证想法;一旦开始处理真实任务,问题就变成了另一组:会话是否还活着,输出是否属于当前任务,手机发出的操作有没有到达电脑?

后续的基础工作包括改用实时双向连接、加入认证,以及整理电脑端与手机端的通信方式。双向通信尤其重要,因为手机最终需要做的不只是接收输出,还要发送指令和处理请求。

区分会话与任务状态

当一个工具开始支持多个会话,终端内容本身就不够了。用户需要分辨哪些任务正在执行,哪些已经结束,以及重新打开应用后应该回到哪里。

早期研发把会话的创建、持续运行和恢复单独梳理。我们沿用终端会话管理工具 tmux 来维持会话,把更多开发精力放在移动访问与控制上。这是当时根据实际需要作出的架构选择。

授权让远程查看有了下一步

一个需要确认的请求,往往决定着任务能否继续。只有终端画面时,用户即使发现任务停住了,也未必有合适的方式参与。

加入授权界面和通知后,开发者可以在手机上看清 Agent 准备做什么,查看相关信息,再批准或拒绝请求。任务需要人作决定时,远程查看也就有了下一步。

把网络变化当成日常,而不是意外

手机切换网络、电脑休眠、应用关闭,都是日常使用中会遇到的情况。连接中断后,用户需要知道电脑上的任务是否还在运行,以及重新连接后如何继续。

自动重连、连接状态提示和二维码配对因此逐步成为产品的一部分。它们没有原型演示那么显眼,却直接影响一个人是否愿意把工具留在日常流程里。

回看这段研发过程,每一步都在补上远程使用中的一个缺口:先看见输出,再分辨任务状态,随后参与决定,最后处理日常中断。后来的版本沿着这条路径继续发展;这篇回顾记录的是最初几个月的思路与选择。