Skip to content

Repository files navigation

CodexPro Multi-Project

一个 ChatGPT 插件连接多个本机项目:用简洁网页选择文件夹、独立启动 CodexPro、按项目授权,然后通过统一 MCP 入口并行查看项目。

这是 CodexPro 的独立控制界面和多项目只读网关,不是 OpenAI 官方产品,也不是 CodexPro 上游仓库。

功能

  • Finder 选择项目文件夹,无需手填路径;项目清单保存在本机。
  • 多个 CodexPro 实例并行运行,各自使用独立根目录、端口和认证令牌。
  • 一个固定工具列表的 MCP 连接,增加、启用或撤销项目不需要重新创建插件。
  • 每次调用显式指定 project_id,不共享“当前项目”,避免并发串项目。
  • 新项目默认不开放。网页单独勾选后才允许 ChatGPT 访问,取消勾选会阻止后续调用及尚未返回的结果。
  • 只读模式:目录、文本文件、Git 变更、最多八个项目的并行概览。不执行命令,不修改代码,不自动运行编程任务。

环境

  • macOS(Finder 文件夹选择使用 AppleScript)。Windows/Linux 桌面选择器尚未实现。
  • Node.js 20 或更新版本、npm。
  • 建立公网连接需要 cloudflared 和 curl,以及可访问 Cloudflare 的网络。
  • ChatGPT 账户须能创建自定义 MCP 插件;账户侧权限和功能可用性由 ChatGPT 决定。

安装与启动

git clone https://github.com/marongwork/codexpro-multi-project.git
cd codexpro-multi-project
npm ci
brew install cloudflared
npm start

打开 http://127.0.0.1:8890。首次启动为空项目列表,不需要配置文件。

  1. 点击「选择文件夹…」,选择具体项目文件夹。
  2. 对需要使用的项目点击「启动」,等状态显示本机就绪。
  3. 勾选「允许 ChatGPT 访问此项目」并确认权限范围。
  4. 点击「建立统一连接」,复制私密 MCP 地址。
  5. 在 ChatGPT 自定义插件中创建 CodexPro · 多项目,填入地址;认证选 None/无身份验证。这里并非匿名服务:认证令牌已包含在私密 URL 中。
  6. 在聊天中选择插件,然后说「列出可用项目」「并行查看 A 和 B 的目录结构」或「读取 A 项目的 README」。

以后只需在网页中启动、启用新的项目,无需为每个项目重复添加插件。

工具

工具 用途
list_projects 列出已启用项目及状态
project_overview 指定项目的概览和目录树
read_project_file 指定项目内的文本文件
project_changes 指定项目的 Git 变更
inspect_projects 最多八个项目并行概览;单项目失败独立返回

配置

无需复制 projects.example.json;通过网页添加项目时自动生成 projects.json。该文件含本机路径,已被 Git 忽略,请勿提交。

可选环境变量:

变量 默认值 用途
CODEXPRO_WEB_PORT 8890 本机控制网页端口
CODEXPRO_BIN 本仓库安装的 node_modules/.bin/codexpro 覆盖 CodexPro 可执行文件
CLOUDFLARED_BIN PATH 中的 cloudflared 覆盖隧道客户端路径
PLAYWRIGHT_EXECUTABLE_PATH Playwright 默认浏览器 仅浏览器测试使用

例如:CODEXPRO_WEB_PORT=9000 npm start。控制网页始终监听回环地址,不对局域网公开。

安全与限制

  • Cloudflare 临时隧道只转发 /mcp 和 /healthz,不公开控制 API 或 CodexPro 设置页。
  • 默认只读、禁用 bash。网关不提供通用工具转发、切换根目录或远程添加项目功能。
  • 每个项目的真实目录与只读策略通过认证健康检查及 MCP 调用验证后才标记就绪。
  • 私密连接相当于访问凭证:不要放进 GitHub、截图、公开聊天或日志。持有统一连接的人可以读取所有当前已启用项目。
  • 启用项目后,其允许读取的内容可能经 Cloudflare 传给 ChatGPT。只选择你有权共享的具体目录,不要选择整个主目录。
  • 路径和受保护文件检查依赖 CodexPro,另有网关相对路径限制。不要把这些检查理解为对所有业务秘密的自动识别。
  • 服务重启会重置启用清单和运行令牌;临时隧道重建可能更换域名。届时仍需更新一次统一插件连接。本项目不提供永久公网域名。
  • 这不是常驻生产托管服务。关闭控制器会停止它启动的项目进程与隧道。
  • 依赖包含上游 CodexPro 及其传递依赖;安装前请自行评估供应链风险。

测试

npm ci
npx playwright install chromium
npm test

也可以分别运行 npm run test:unit、npm run test:integration、npm run test:ui。

集成测试只启动两个临时本机项目,校验独立读取、并行概览和越界/软链接拦截后清理。测试不会创建实际公网隧道,也不会读取个人项目。运行环境需要允许回环端口监听和子进程启动。

架构

ChatGPT 插件 → 认证 HTTPS 隧道 → 统一 MCP 网关
                                  ├─ 已启用项目 A → 独立 CodexPro
                                  └─ 已启用项目 B → 独立 CodexPro

本机网页 → 带认证的本地控制 API → 添加 / 启动 / 启用 / 撤销

依赖版本由 package-lock.json 锁定。本仓库暂未授予开源许可证(UNLICENSED);公开可见不等于授予再分发许可。上游依赖保留各自的许可证。

About

A local multi-project dashboard and read-only MCP hub for CodexPro and ChatGPT

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages