架构技术评论

用 HAPI + Cloudflare Tunnel 搭一台长期在线的远程 AI 编程工作站

Image

最近一段时间,网上出现了多个远程Vibe Coding的方式,今天给大家分享一个组合。

把 AI 编程任务长期跑在自己的一台 Mac 上, 然后在任何地方,通过浏览器远程访问和管理它。

这套方式的核心是两个东西:

  • HAPI:本地优先的 AI 编程工作台
  • Cloudflare Tunnel:安全、稳定的远程访问通道

这篇文章完整梳理了我目前的做法,包括工具选择、整体架构、使用方式,以及一些实际踩坑后的经验。


为什么需要一个“长期在线”的 AI 编程工作站

随着 AI Coding 能力逐渐成熟,使用方式也在发生变化。

越来越多的场景不再是:

  • 打开编辑器
  • 跑一条指令
  • 等几分钟结束

而是变成:

  • 任务持续运行
  • 中途需要人工确认
  • 多次迭代、反复执行
  • 有时甚至希望它在夜里继续跑

在这种情况下,我更关心的是:

  • AI 是否可以长期运行在我自己的机器上
  • 我是否能完全掌控代码和执行环境
  • 我能不能在不在电脑前的时候,随时查看进度

这正是 HAPI 这种 local-first 工具擅长的地方。


HAPI:本地优先的 AI 编程工作台

HAPI 并不是一个 IDE,也不是云服务。 它的设计取向非常明确:local-first。

HAPI 的核心思路是:

  • 在你自己的机器上启动一个长期运行的 Server
  • 由它统一管理 AI 任务、文件改动和人工确认
  • 通过 Web UI 提供一个清晰的观察和控制入口

你可以把它理解为:

一台一直开着的 AI 编程工作台, 而不是一个“用完就关”的临时工具。


HAPI 的整体架构

HAPI 的架构很克制,也很工程化。

Browser / CLI
        │
        │ HTTP / Web UI
        ▼
HAPI Server(本机 :3006)
        │
        │ Shell / Repo / 文件系统
        ▼
AI Provider(Claude / Codex / Gemini 等)

几个关键点:

  • HAPI Server 跑在你自己的机器上
  • 它可以直接访问你的 Git 仓库、终端和文件系统
  • Web UI 只是一个“看”和“管”的入口

这种结构非常适合:

  • 长时间运行的 AI Agent
  • 稳定性分析 / SRE 自动化
  • 对代码和环境控制权要求较高的开发场景

基本使用方式

安装和启动都很直接,首次运行会展示token到命令行,记得查看。如果后续忘了,可以入~/.hapi/settings.json文件查看。

npm install -g @twsxtd/hapi
hapi server
Image

默认监听地址是:

http://localhost:3006

然后在自己的代码工程文件中执行:

hapi
或者 hapi codex // 如果你用codex,我就用哈
Image

打开浏览器即可访问 Web UI。记得输入token。

  • 官网:https://hapi.run
  • GitHub:https://github.com/tiann/hapi

在本机使用时,你可以:

  • 查看 AI 任务的实时进度
  • 查看终端输出
  • 查看文件 diff
  • 对关键操作进行人工确认

这一点非常重要:AI 在修改代码之前,你始终清楚它在做什么。


Cloudflare Tunnel:把本地 HAPI 变成远程可用

如果只在本机使用,HAPI 还只是一个本地工具。 真正让它变成“远程工作站”的,是 Cloudflare Tunnel。


Cloudflare Tunnel 是什么?

Cloudflare Tunnel 解决的是一个很老的问题:

我有一个跑在 localhost 的服务, 但我不想买云服务器、不想开端口,也不想折腾公网 IP。

它的核心机制是:

由你本机 主动 向 Cloudflare 建立一条反向隧道, Cloudflare 再把这个服务安全地暴露出来。

这样一来:

  • 不需要公网 IP
  • 不需要端口转发
  • 网络拓扑也更简单、安全

直接这样运行,就可以产生一个公网可访问的唯一链接。

cloudflared tunnel --url http://localhost:3006

当然如果你能登录用自己的账号,那更好,这个后续文章咱们再聊。

Image

解决 macOS 自动休眠的问题

当你把 HAPI 当作一台“长期在线的 AI 编程工作站”时, macOS 自动休眠是一个绕不开的问题。

一旦系统休眠:

  • HAPI Server 会停止
  • Cloudflare Tunnel 会断开
  • 远程访问立即失效

最简单可靠的方式,是使用系统自带的 caffeinate:

caffeinate -dimsu

只要终端不退出,这台 Mac 就会保持唤醒状态。


最终组合效果

当以下几件事组合在一起:

  • HAPI(本地 AI 编程工作台)
  • Cloudflare Tunnel(安全的远程访问通道)
  • 一台不会自动休眠的 Mac

你最终得到的,并不是一个“新工具”, 而是一种新的工作方式:

AI 不再是临时用一下的助手, 而是一台长期在线、随时可访问、完全由自己掌控的编程工作站。

它非常适合:

  • 长时间运行的 AI Coding / Agent 任务
  • 稳定性分析与 SRE 自动化
  • 不希望代码离开本地环境的开发场景
  • 希望随时用浏览器、iPad 或另一台电脑查看进度的情况

小结

回头看这套方案,其实并不复杂:

  • HAPI 负责本地、长期、可控的 AI 编程执行
  • Cloudflare Tunnel 负责安全、稳定的远程访问

当两者放在合适的位置上,组合出来的,是一套实用、克制、长期可维护的远程 AI 编程工作流。

至少在当前阶段,HAPI + Cloudflare Tunnel + 一台不会休眠的 Mac,已经足以支撑一台稳定运行的私有 AI 编程工作站。