一名开发者一路端着不能合盖的笔记本查看审批,而另一边的他把主机留在工作室,只用手机轻松处理任务

Open Source Note · 2026

我为什么做了
PandaForce

不是再做一个聊天窗口,而是让 AI 进入真实的工作环境

8 分钟阅读 发布于 2026 年 11 月 6 日

摘要

PandaForce 最初不是一个宏大的产品计划。我只是想少守一会儿终端:任务继续跑,我离开电脑后也能看进度、处理审批。

后来我才发现,这个小麻烦背后还有一个更大的问题:AI 工作台不能只有对话框,它还要连接真实的文件、工具和业务流程。

AI 工作台的价值,不只是让人随时和 AI 说话,而是让 AI 安全地进入真实的工作环境。

第一部分 · 我只是想少守一会儿终端

01一台不能合盖的笔记本

网上有个关于 Codex 的梗:用上以后,人走到哪里都得端着一台不能合盖的笔记本,因为任务随时可能等你审批。我第一次看到就笑了,这确实很像我的日常。

Codex 很能干,但长任务不会因为我想去吃饭就自动变短。它可能正在读代码,也可能停在一个命令确认上。这就是 PandaForce 最朴素的起点:主机留在原处工作,我可以用电脑或手机查看会话、回答问题和处理审批。

02已经有 ChatGPT App,为什么还要做

如果 ChatGPT App 或其他客户端已经满足你的需要,当然没必要换。PandaForce 不是为了证明另一个聊天界面更好看。

我长期做企业级信息系统的设计与交付。企业无法把一个独立 AI App 直接当成业务系统交付:AI 要进入已有 Web 应用,接入登录、权限、项目流程、文件存储和审计。于是我更需要一个能自己部署、连接和改造的工作台。Web 不是目的,只是最容易融入现有系统的交付界面。

第二部分 · 让 AI 到数据那里去

03不要把几十 GB 素材塞进聊天窗口

比如我想让 AI 帮忙整理和剪辑视频,几十 GB 的素材已经在工作站、NAS 或自己的云空间里。把它们重新上传到聊天 App,既慢,也打断原来的目录和作业流程。更自然的方式,是让 Agent 在素材旁工作:网页只负责浏览、选择、下达任务和查看结果。企业数据也是一样,与其反复把数据送出边界,不如让受控的工具靠近数据。

左侧的人费力把大型视频素材塞向远端云端,右侧的人让 AI 工具直接在本地素材库旁工作

图 1 · 让 AI 到素材所在的地方。 省去重复上传,也保留原有的目录、权限和处理链路。

04PandaForce 现在能做什么

PandaForce Free 的源码在 GitHub:hiforce/panda-force-free,公开 Docker 镜像是 hiforceai/panda-force。实际能力和安装方式以仓库中的当前说明为准。

我先把“项目”和“会话”分开了。项目是人理解工作的方式,可以有名称、Code 和描述;会话则是 Codex 的原生执行记录。一个项目可以关联多次会话,未关联的历史也能按最近记录、工作目录和关键词查找。这样过几天再回来时,我找的是“那个项目”,而不是在一长串 Session ID 里碰运气。

一次任务所需的交互也尽量留在同一个页面。开始前可以选择工作目录、上传文件或粘贴截图;运行后可以查看状态、Token 用量、模型、推理强度和权限。Codex 请求执行命令、修改文件或提出结构化问题时,网页会给出可以操作的审批和问卷,而不是只显示一段看得见、点不了的日志。

工作台还包括文件浏览、代码预览、Git 变更、终端、会话 Goal 与工具面板。长会话按页读取,用户停在底部时会跟随新消息,向上阅读时则尽量保持原来的位置。桌面和手机使用同一套工作台,支持中英文、主题与阅读宽度。它还不是一个什么都能做的平台,但已经覆盖了我日常使用 Codex 最频繁的那段路。

手机端不是把 PC 页面简单缩小。输入区保留附件、权限、模型、排队和发送等高频入口;会话信息则以底部面板展示用量、执行状态和文件、变更、终端等快捷工具。Light、Graphite、Silk 和 Aurora 四种外观都可以直接切换。后面的快速上手会用 Aurora 手机界面,把第一次安装到进入会话的路径完整走一遍。

第三部分 · 从个人工具开始

05它不是从零开始的项目

PandaForce 并不是我从零写出的。它基于 lezi-fun 开源的 Codex WebUI,上游项目用 MIT 许可证提供了最初的 Web 界面和代码基础。在这里,我想明确感谢原作者和所有上游贡献者。PandaForce 的源码中也保留了原始版权、MIT 许可证和第三方声明。

随着自己的使用越来越深,我对项目组织、移动端、附件、认证、国际化、交互完整性和工程质量有了更多要求,于是逐步走上了独立演进的路线。现在的项目加入了新的产品设计,也做了较大范围的模块拆分、状态边界和发布验证;但这些工作不应抹去它从哪里出发。开源项目的价值,本来就包括让后来者可以站在已有成果上继续走。

06以后,它可能成为企业 AI 工作台

PandaForce 目前真正接入的只有 Codex,首先解决的也是我自己的问题。我不想把“未来可以做”写成“现在已经有”。但团队迟早会需要成员权限、共享项目、统一认证、审计和成本统计,企业也会接入自己的模型、知识库与业务工具。

我希望 PandaForce 最后不只是“Codex 的 Web 版本”,而是连接人、AI、数据和工作流程的开放工作台。它的起点很小:让我不必随时抱着一台不能合盖的笔记本。至于它能走到哪里,我想一边使用,一边把答案做出来。

第四部分 · 从安装到第一次会话

07用 Docker 启动 PandaForce

最快的方式是使用 Docker Compose。目前公开镜像面向 Linux amd64,需要先安装 Git、Docker 和 Compose。下面不是一个只写到“容器已启动”的命令清单,而是从空环境一直走到第一条会话。

1. 启动容器

先克隆上面提到的 GitHub 开源仓库:

git clone https://github.com/hiforce/panda-force-free.git
cd panda-force-free
docker compose pull panda-force
docker compose up -d
docker compose logs panda-force

最后一条命令除了便于检查启动状态,也可能给出首次安装所需的一次性安装码。先不要把这个日志窗口关掉。

默认是 isolated 模式:PandaForce 和 Codex 都运行在容器里,不要求主机预先安装 Codex,也不会直接借用主机的登录文件。

2. 创建第一个管理员

打开 http://localhost:8899。第一次访问不会直接进入工作台,而是先创建 PandaForce 管理员:

这个账号只用于保护 PandaForce 工作台,与后面登录的 Codex 或模型服务账号不是一回事。不要把安装码、管理员密码或工作台端口公开贴到互联网上。

PandaForce 的两张 Aurora 手机界面:左侧是首次安装时填写安装码、管理员账号和密码,右侧是登录后的工作台准备进度

图 2 · 先建立访问边界,再加载工作环境。 左侧完成一次性的管理员初始化;右侧逐项连接工作区、读取设置、项目、会话、模型和权限。它显示的是真实加载进度,不是一张只会转圈的遮罩。

提交后,系统会出现“正在准备工作台”的进度页。这里会依次准备界面、连接服务、读取设置、项目、最近会话、可用模型和权限。这样第一次进入或网络较慢时,我至少知道卡在了哪一步;非关键数据读取失败时,页面也会给出重试或继续进入的选择,而不是让人猜网页是不是已经死掉。

3. 连接 Codex 账号

管理员解决的是“谁能进入 PandaForce”,接下来还要让容器里的 Codex 获得模型服务授权。在主机终端执行:

docker compose exec -it panda-force codex login --device-auth
docker compose restart panda-force

按照终端给出的地址和设备码完成登录,再重启容器并刷新网页。设备登录状态与 PandaForce 管理员仍是两套边界:前者让 Codex 调用模型,后者决定谁能打开这个工作台。

4. 从工作台首页进入第一条会话

准备完成后,首先看到的是工作台首页。你可以先建立项目,也可以暂时使用“未关联项目”;然后选择已经挂载进容器的工作目录,在输入框描述任务。需要额外上下文时,可以上传文件、粘贴截图,或者从工作台里浏览已有素材。

PandaForce 的两张 Aurora 手机界面:左侧是选择项目、工作目录和任务的工作台首页,右侧是进入会话后处理命令审批的页面

图 3 · 首页负责发起工作,会话页负责把工作做完。 左侧选择项目和目录并描述目标;右侧在任务执行过程中查看消息、识别等待原因并处理命令审批。图中使用真实前端与脱敏演示数据。

任务开始后,审批、结构化问题、执行状态和文件变化都会回到同一条会话。点开会话信息,可以看到上下文用量、当前状态,以及文件、Git 变更、终端等工具入口;常用工具可以启用、固定和排序。外观则可以在 Light、Graphite、Silk 与 Aurora 之间切换。

PandaForce 的两张 Aurora 手机界面:左侧是包含用量、运行状态和快捷工具的会话面板,右侧是 Light、Graphite、Silk 与 Aurora 外观选择

图 4 · 手机端不是只读遥控器。 左侧集中显示会话状态和常用工具,右侧展示多套外观;这里选中的是冷色暗调的 Aurora。

如果主机上已经有持续运行的 Codex,PandaForce 还提供 shared 模式:容器通过 Unix Socket 连接那一个现有服务,并挂载相同的工作目录,从而继续使用原生会话。这里共享的是正在运行的服务,不是简单复制一个认证文件;Socket、用户权限和目录路径都需要正确配置。完整命令和 Kubernetes 模板放在仓库的安装文档中。

默认端口只绑定本机。远程使用可以通过 SSH 隧道,或者自行配置 HTTPS 反向代理和认证。不要把工作区、终端或 Codex 的原生控制 Socket 直接暴露到公网。PandaForce 提供了更多自由度,这份自由也意味着部署者要认真对待自己的数据和权限边界。

项目与延伸阅读

  1. PandaForce Free:源码、安装说明与更新记录
  2. PandaForce Docker 镜像
  3. lezi-fun/codex-webui:PandaForce 所基于并致谢的 MIT 开源项目。