问题不在AI,而在“访问方式”

很多人讨论 AI 编辑器,关注点都在:

  • 模型能力

  • 编辑器体验

  • 自动补全

但在实际使用中,一个更现实的问题是:

你如何“稳定、安全地访问”这个能力?

我现在的实际方案很简单:

opencode serve --port 3003

然后通过:

Cloudflare Tunnel + Zero Trust + 域名

来访问这个本地服务。


这一步看起来只是“套了一层代理”,但实际上改变的是:

开发系统的边界定义

传统开发的问题,其实是“入口形态错了”

很多人会把问题归因到网络、环境、甚至AI本身。

但我后来发现,真正的问题更简单:

入口错了。


传统开发的入口是什么?

  • CLI

  • TUI

  • SSH + terminal


用一个简化模型来看:

flowchart LR
    A[开发者] --> B[终端]
    B --> C[cd 项目目录]
    C --> D[启动工具]

表面上很简单,但问题都藏在这里


1. 多项目切换成本极高

你需要:

  • 记住项目路径

  • cd 进去

  • 再启动对应工具

项目一多,就会变成:

“这个项目在哪个目录来着?”


2. 会话是脆弱的

CLI/TUI 的会话,本质是“进程绑定”:

  • 关终端 → 会话消失

  • SSH断开 → 状态丢失

  • 没有持久化上下文

flowchart LR
    A[终端关闭] --> B[会话结束]
    B --> C[上下文丢失]

哪怕CC/CX 都提供了session管理机制,也难敌一个意外的Ctrl+C毁掉了一切。

3. 操作是“危险的”

CLI 的高效,伴随着高风险:

  • 一个快捷键按错 → 状态错乱

  • 一个命令输错 → 直接修改文件

而且:

没有“确认层”


4. 工作流是割裂的

你每次开发其实都在重复:

flowchart TD
    A[打开终端]
    B[定位项目]
    C[启动工具]
    D[开始开发]

    A --> B --> C --> D

这在单项目时还好,一旦多项目:

  • 切换成本极高

  • 状态无法统一管理

  • 上下文无法连续


5. 心理负担(这个很真实)

你会不自觉地:

  • 不敢关终端

  • 不敢乱切 session

  • 不敢让 AI 做大改动

因为你知道:

这个会话一旦没了,就很难回来

小结

传统问题不是:

  • 不够强

  • 不够快

而是:

它把“开发状态”绑定在了一个脆弱的终端会话上

而这,正是后面 WebUI + Zero Trust 方案要解决的核心问题之一。

Cloudflare Zero Trust:重新定义“谁能访问”

Cloudflare 在这里的作用,不是“加安全”,而是:

把访问控制,从“网络层”提升到“身份层

现在模型变成这样:

flowchart LR
    A[浏览器] --> B[Cloudflare Access]
    B --> C[Cloudflare Tunnel]
    C --> D[本地 OpenCode]

变化点其实只有三个,但很关键:

1. 不再暴露端口

  • 本地服务完全私有

  • 没有扫描面

2. 访问统一走域名

  • 任意设备直接打开

  • 不再依赖内网结构

3. 权限由身份决定

  • GitHub / Google 登录

  • 可以做精细控制


一句话总结:

从“谁在这个网络里” → “这个人是谁”

OpenCode WebUI:把“可用性”拉满

很多人低估了 WebUI 这件事。


传统 CLI / TUI(比如 codex / claude code)的问题:

  • 强依赖本地环境

  • 多设备切换困难

  • 网络不稳定时体验很差


而 OpenCode 的 WebUI 带来的是:

1. 真正的“随处可用”

flowchart LR
    A[Mac] --> D[浏览器]
    B[Windows] --> D
    C[iPad] --> D
    D --> E[OpenCode WebUI]
  • 不再关心设备

  • 不再关心环境

2. 更适合“长连接任务”

  • Streaming 输出天然适配浏览器

  • 不会像 CLI 那样容易断


3. 与 Zero Trust 完全契合

  • 登录就是权限

  • 打开就是环境


这点非常关键:

WebUI + Zero Trust,本质上是“一个私有云IDE入口

再叠一层:本地能力 + 云访问

很多人会误解这套方案是“云开发”。

实际上是:

flowchart TB
    A[浏览器] --> B[Cloudflare Edge]
    B --> C[本地机器]
    C --> D[OpenCode]

也就是说:

  • 代码在本地

  • 访问在云边缘

这带来的好处是组合型的:

✔ 本地优势

  • 低延迟

  • 可用 GPU

  • 完全可控

✔ 云访问优势

  • 随时访问

  • 稳定入口

  • 身份控制


这不是折中,而是:

把两边的优势叠加起来

OpenCode:为什么“记录过程”很重要

这一点不是主线,但值得一提。

OpenCode 会把所有操作记录在:

~/.local/share/opencode/opencode.db

这和传统工具的区别是:

flowchart TD
    subgraph 传统
        A1[git commit]
        A2[历史]
    end

    subgraph OpenCode
        B1[每一步操作]
        B2[diff]
        B3[数据库]
    end

    B1 --> B2 --> B3

在实际使用中,这意味着:

你可以允许 AI 做“破坏性操作”,而不承担风险

我自己就踩过一次坑(优化博客结果直接改崩),
但因为有完整 diff 记录,可以完整恢复。

打出组合拳

把重点拉回到最核心的一点:


OpenCode 解决的是:

  • 执行

  • 记录

  • 工作流


Cloudflare Zero Trust 解决的是:

  • 访问

  • 边界

  • 安全模型


组合之后:

flowchart LR
    A[用户] --> B[身份验证]
    B --> C[统一入口]
    C --> D[OpenCode]
    D --> E[执行/记录]

这套东西之所以“对”,不是因为它们各自多强,而是:

它们刚好补齐了彼此的缺口

我们能得到什么

不是只是更加聪明的AI,更强的编辑器

而是:

一个既安全,又随时可用,还允许犯错的开发环境

而目前我自己的结论是:

  • OpenCode 解决“怎么做事”

  • Cloudflare Zero Trust 解决“谁能进来”


合在一起:

你得到的不是一个工具,而是一个“可以长期使用的开发基础设施”。