-
Notifications
You must be signed in to change notification settings - Fork 0
Home
English version: Farming 2: A Browser Workbench for AI Coding Agents
npm install --global farming-code
farming daemon
如果你已经把真实开发任务交给 Codex、Claude Code、OpenCode 或 Qoder,很快会发现问题不再是“Agent 会不会写代码”,而是:
- 哪个 Agent 正在跑,哪个在等你,哪个已经偏离目标?
- 结果、推理过程、终端、文件和 Git 变化为什么散落在不同窗口?
- 长任务放到开发机上之后,怎样从另一台电脑或手机回到同一个现场?
- CLI 很强,但我能不能按自己的工作方式重新组织它,而不是接受固定的聊天列表?
Farming 是一个开源的浏览器 AI Coding Agent 工作台。 Agent、PTY、代码和 Git 状态仍然运行在你的开发机上;浏览器负责把结构化对话、真实终端、项目文件、Review、History、运行时控制和机器状态组织成一个可以持续返回的工作现场。
它不是把 Terminal 截图搬到网页里,也不是把所有 Provider 压成同一种聊天协议。Farming 保留 CLI 的真实能力,同时提供适合人监督、介入和复盘的界面。
Code 是默认工作台。它让最终结果保持突出,计划、推理、Tool Call、权限请求、Child Session、内嵌终端和精确 Patch 则按需展开,并保留原始顺序。

适合:长对话、查看文件、小范围编辑、Diff / Blame,以及围绕同一个修改进行多轮 Review。
CRT 是完整的键盘优先界面,不是只读旧皮肤。Agent 占据稳定的控制室格位,可以直接打开结构化 Chat 或真实 Terminal,也能使用 Search、History、Billing 和显示设置。

适合:同时观察多个 Agent、以终端输出为主要信号、偏爱键盘操作,或者只是喜欢一个有生命感的复古 CRT 工作空间。
Code 与 CRT 连接同一套 Backend Session。切换界面不会重启或复制 Agent。
Codex、Claude Code、OpenCode 和 Qoder 的结构化 Chat 使用 ACP。历史回放与实时事件进入同一条有序 Entry Stream;前端可以把过程折叠给人看,但展开后仍能看到真实工具细节。

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

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 工作流,不只是修改未来的启动默认值。
每个 Project Agent 都可以打开自己的文件树、Open Editors、Path / Content Search、Git Changes 和 Review。中央编辑器使用 Monaco,支持文本编辑、Markdown / 图片预览、Diff 和 Blame。

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

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

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

这些是 Provider 本地数据能够支持的 Processed Token Telemetry,不伪装成账单;缺少字段时会明确显示不可用。
手机端一次聚焦一个 Chat、Terminal 或 File,Project 导航进入 Drawer。它适合检查进度、切换 Agent、读结果或补一句短输入,而不是把桌面 IDE 硬塞进窄屏幕。
| 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 stopFarming 控制开发机上的真实进程和代码,请部署在可信机器与可信网络中;跨越不可信网络时叠加 VPN、SSH Tunnel、HTTPS Reverse Proxy 或等价访问控制。
如果你对现有 AI Coding 工具的界面、远程能力或可定制性并不满意,最好的判断方式不是看更多口号:拿一个真实的小任务,用 Farming 跑一遍,然后改掉那个最不符合你工作习惯的地方。