Skip to content
wenzhuang.zwz edited this page Jul 14, 2026 · 6 revisions

Farming 2:把 Coding Agent 的真实工作现场放进浏览器

English version: Farming 2: A Browser Workbench for AI Coding Agents

开源仓库 · 安装与发布 · 完整产品文档

npm install --global farming-code
farming daemon

Farming Code

如果你已经把真实开发任务交给 Codex、Claude Code、OpenCode 或 Qoder,很快会发现问题不再是“Agent 会不会写代码”,而是:

  • 哪个 Agent 正在跑,哪个在等你,哪个已经偏离目标?
  • 结果、推理过程、终端、文件和 Git 变化为什么散落在不同窗口?
  • 长任务放到开发机上之后,怎样从另一台电脑或手机回到同一个现场?
  • CLI 很强,但我能不能按自己的工作方式重新组织它,而不是接受固定的聊天列表?

Farming 是一个开源的浏览器 AI Coding Agent 工作台。 Agent、PTY、代码和 Git 状态仍然运行在你的开发机上;浏览器负责把结构化对话、真实终端、项目文件、Review、History、运行时控制和机器状态组织成一个可以持续返回的工作现场。

它不是把 Terminal 截图搬到网页里,也不是把所有 Provider 压成同一种聊天协议。Farming 保留 CLI 的真实能力,同时提供适合人监督、介入和复盘的界面。

两套界面,同一个正在运行的 Agent

Farming Code:理解任务,随时介入

Code 是默认工作台。它让最终结果保持突出,计划、推理、Tool Call、权限请求、Child Session、内嵌终端和精确 Patch 则按需展开,并保留原始顺序。

展开 Agent 过程

适合:长对话、查看文件、小范围编辑、Diff / Blame,以及围绕同一个修改进行多轮 Review。

Farming CRT:像控制室一样观察多个 Agent

CRT 是完整的键盘优先界面,不是只读旧皮肤。Agent 占据稳定的控制室格位,可以直接打开结构化 Chat 或真实 Terminal,也能使用 Search、History、Billing 和显示设置。

Farming CRT 控制室

适合:同时观察多个 Agent、以终端输出为主要信号、偏爱键盘操作,或者只是喜欢一个有生命感的复古 CRT 工作空间。

Code 与 CRT 连接同一套 Backend Session。切换界面不会重启或复制 Agent。

真实 Chat,也是真实 Terminal

Codex、Claude Code、OpenCode 和 Qoder 的结构化 Chat 使用 ACP。历史回放与实时事件进入同一条有序 Entry Stream;前端可以把过程折叠给人看,但展开后仍能看到真实工具细节。

Farming CRT 结构化 Chat

需要精确 CLI 行为时,可以进入 xterm.js 渲染的原生 PTY:ANSI、全屏 TUI、IME、选择复制、滚动历史和快捷键都保留。

Farming Code 原生 Terminal

Chat / Terminal 是真正的 Runtime 切换,不是换一个展示主题。Farming 会在 ACP 和 PTY 之间重启 Agent,并在 Provider Identity 存在时恢复同一个 Session;已经产生 Terminal 输入的会话绝不会因为缺少 Resume Identity 而静默丢失。

运行中的模型和权限也可以调整

Farming 根据当前 Runtime 报告的 Capability 显示控制。兼容的 Codex 模型家族可以通过一个紧凑矩阵选择 Model Variant 与 Reasoning,独立控制 Ultra、Fast 和 Approval Mode。

实时模型控制

Advanced 可以切换成逐级选择方式,而且不会重置当前 Profile。原生 Terminal 中的新设置会在下一条消息之前送入当前 CLI 工作流,不只是修改未来的启动默认值。

文件、Git 和 Review 都围绕同一个任务

每个 Project Agent 都可以打开自己的文件树、Open Editors、Path / Content Search、Git Changes 和 Review。中央编辑器使用 Monaco,支持文本编辑、Markdown / 图片预览、Diff 和 Blame。

文件与 Blame

Review 把工作看作一个持续演进的 Change,而不是把每次 Agent 回复都当作无关的新修改。Comparison、Finding、Inline Comment 和 Reviewed State 绑定到具体 Revision,因此第二轮 Review 可以直接回答“这次真正改了什么”。

Farming Review

找回现场,而不是记 Resume ID

Search 可以找到当前 Project / Agent,也会检索可恢复的 Codex、Claude Code、OpenCode 和 Qoder Session。History 合并 Farming Run、已归档 Agent 和尚未被 Live Agent 占用的 Provider Session,并按 Identity 去重。

完整 History

离开页面不会终止 Agent。独立 Native PTY Host 可以在 Farming Server 重启时继续持有真实 Terminal;浏览器回来后重新连接并恢复屏幕状态。

Usage 和运行状态不是装饰

Code 保留紧凑的 Usage、Context、Quota、CPU / MEM 信号。CRT Billing 提供两种操作视图:

  • Days:120 天 Token History、52 周活跃度、小时曲线和 Provider Share;
  • Live:60 分钟 Token Rate Oscilloscope、Provider Channel、Quota Window 和 Reset Time。

CRT Live Billing

这些是 Provider 本地数据能够支持的 Processed Token Telemetry,不伪装成账单;缺少字段时会明确显示不可用。

桌面工作,手机回来看看

手机端一次聚焦一个 Chat、Terminal 或 File,Project 导航进入 Drawer。它适合检查进度、切换 Agent、读结果或补一句短输入,而不是把桌面 IDE 硬塞进窄屏幕。

Farming Code 手机 Chat    Farming CRT 手机控制室

支持哪些 Agent

Agent 结构化 Chat 原生 Terminal History / Resume
Codex ACP
Claude Code ACP
OpenCode ACP
Qoder ACP
Qwen Code / Aider / GitHub Copilot CLI / Amazon Q 取决于 CLI
bash / zsh 无 Provider Resume

Farming 会发现开发机上实际可用的 CLI,不替代它们的安装、登录或账号配置。

为什么它适合喜欢定制工具的开发者

Farming 的产品皮肤和后端能力是分离的:

Farming Code / Farming CRT
        React + Vite + Monaco + xterm.js
                         │
              HTTP / WebSocket
                         │
 Express + Agent Manager + Session Providers
                         │
       Native PTY Host + Coding Agent CLIs

这意味着你可以把它当作成品使用,也可以把它当作自己的 Agent 工作台起点:

  • 不喜欢聊天列表,可以重新设计任务、注意力和导航方式;
  • 喜欢 Terminal,可以围绕 PTY 与键盘工作流继续扩展;
  • 有自己的 Provider 或 Agent CLI,可以接入结构化 Session 或 Terminal 路径;
  • 想做新的视觉语言,可以新增 Skin,而不用重写 Agent 生命周期、History、文件、Git 和认证。

Code 与 CRT 本身就是同一 Backend 上两种完全不同体验的证明。项目使用 MIT License,欢迎提交 Issue、PR,或直接 Fork 出更符合自己工作习惯的版本。

一分钟开始

前提:Node.js 22+,并且至少一个 Coding Agent CLI 已经能在普通 Shell 中运行。

npm install --global farming-code
farming daemon

启动日志会打印带 Token 的 URL。打开它,选择 New Agent、Agent、Workspace,以及 Chat 或 Terminal,就可以把一个真实小任务交给它。

常用命令:

farming status
farming url
farming logs
farming stop

Farming 控制开发机上的真实进程和代码,请部署在可信机器与可信网络中;跨越不可信网络时叠加 VPN、SSH Tunnel、HTTPS Reverse Proxy 或等价访问控制。

从哪里继续

如果你对现有 AI Coding 工具的界面、远程能力或可定制性并不满意,最好的判断方式不是看更多口号:拿一个真实的小任务,用 Farming 跑一遍,然后改掉那个最不符合你工作习惯的地方。