MY_GPT:把自己的电脑接入 ChatGPT,让 AI 真正操作你的电脑
一、为什么要做这个项目?
平时我们使用 ChatGPT,大多数时候都是“问一句,答一句”。它可以帮我们分析代码、写方案、解释报错,但它并不能直接看到你电脑里的项目,也不能主动读取本地文件,更不能帮你查看 Git 状态、搜索目录、检查运行环境。
所以我做了一个小项目:MY_GPT。
它的目标很简单:把自己的电脑安全地接入 ChatGPT,让 ChatGPT 从一个聊天助手,变成一个真正能理解你本机环境的电脑管家。
举个例子,以前你可能要这样做:
- 复制报错信息给 ChatGPT;
- 手动发项目结构;
- 手动复制某个文件内容;
- ChatGPT 给出修改建议;
- 你再手动回到电脑上改代码。
接入 MY_GPT 后,你可以直接对自己的 Custom GPT 说:
帮我看看这个项目结构。
帮我读一下 package.json 和 src/server.js。
帮我检查 Git 是否有未提交内容。
帮我搜索最近修改过的 Markdown 文件。
帮我看一下本机 Node、npm、Git 是否安装正常。
ChatGPT 不再只是“猜”,而是可以通过受控 API 调用你的电脑能力。
二、MY_GPT 是什么?
MY_GPT 本质上是一个运行在本机的Local Computer Manager Runtime。
它会在你的电脑上启动一个本地服务,例如:
http://127.0.0.1:8765然后通过 GPT Actions 或 MCP,把这个本地服务暴露给 ChatGPT 调用。为了让 ChatGPT 能从公网访问本机,还可以配合 frp、Nginx 和 HTTPS 域名做一层反向代理。
整体效果可以理解成:
ChatGPT -> GPT Action / MCP -> 公网 HTTPS 地址 -> frp / Nginx 隧道 -> 本机 MY_GPT Runtime -> 文件系统 / Git / PowerShell / 系统状态这个项目当前的核心能力包括:
| 能力分类 | 可以做什么 |
|---|---|
| 文件系统 | 列目录、读文件、写文件、替换文本、创建目录、删除文件、应用补丁 |
| Git | 查看 status、diff、log |
| 命令执行 | 运行 PowerShell 命令,带超时和输出限制 |
| 系统诊断 | 查看系统健康、进程、启动项、服务、端口、网络、磁盘、工具链 |
| 项目扫描 | 自动识别本地项目、判断 Node/Python/Rust 等项目类型 |
| 后台任务 | 启动任务、查看日志、停止任务 |
| 操作日志 | 记录工具调用,方便回溯 |
| MCP 预览 | 提供只读 MCP 工具,为后续 ChatGPT Apps 做准备 |
三、项目目录结构
MY_GPT 的目录结构大概是这样:
MY_GPT ├─ app │ ├─ control_panel.py # Windows 桌面控制面板 │ └─ assets # 图标资源 ├─ bin │ ├─ frp # frpc 客户端 │ └─ node # 可选的本地 Node 运行环境 ├─ config │ └─ frpc.toml # frp 配置,不建议公开 ├─ docs │ ├─ gpt-instructions-v2.md # 给 Custom GPT 的提示词 │ └─ chatgpt-apps-upgrade-plan.md ├─ scripts │ ├─ start-local.ps1 # 启动本地 Runtime │ ├─ start-frpc.ps1 # 启动 frp │ ├─ install-autostart.ps1 # 安装开机自启 │ ├─ uninstall-autostart.ps1 # 移除开机自启 │ ├─ print-action-config.ps1 # 打印 GPT Action 配置 │ └─ print-mcp-app-config.ps1 # 打印 MCP App 配置 ├─ src │ ├─ server.js # HTTP 服务入口 │ ├─ runtime.js # 工具调度和核心能力 │ └─ mcp.js # MCP 工具暴露 ├─ package.json └─ README.md项目基于 Node.js 开发,主要依赖包括:
{"express":"^4.19.2","helmet":"^7.1.0","zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.29.0"}其中:
express负责提供 HTTP API;helmet负责基础安全响应头;zod负责参数校验;@modelcontextprotocol/sdk用于 MCP 接入;runtime.js是整个项目最核心的工具调度层。
四、核心设计:只暴露一个 runTool
很多人在做 GPT Actions 的时候,会把每个能力都写成一个 API,比如:
/api/read-file /api/write-file /api/run-command /api/git-status这样做的问题是:接口越来越多,OpenAPI schema 会越来越复杂,GPT Builder 解析起来也容易出问题。
MY_GPT 采用了一个更稳定的设计:对 GPT 只暴露一个入口:
POST /api/tool请求格式是:
{"category":"files","tool":"recent","argumentsJson":"{}"}也就是说,GPT 只需要学会调用一个runTool,具体做什么由category + tool + argumentsJson决定。
例如查看工具目录:
{"category":"ops","tool":"catalog","argumentsJson":"{}"}读取文件:
{"category":"fs","tool":"read","argumentsJson":"{\"path\":\"D:\\\\MY_GPT\\\\package.json\"}"}查看项目 Git 状态:
{"category":"git","tool":"status","argumentsJson":"{\"cwd\":\"D:\\\\MY_GPT\"}"}运行命令:
{"category":"command","tool":"run","argumentsJson":"{\"cwd\":\"D:\\\\MY_GPT\",\"command\":\"npm run check\"}"}这种设计的好处是:
- OpenAPI schema 非常简洁;
- GPT 的工具调用格式稳定;
- 后端可以继续扩展工具,不需要频繁改 GPT Action;
- 所有工具都可以统一做权限、日志、超时和错误处理。
五、如何部署:本机启动 Runtime
先进入项目目录:
cd D:\MY_GPT安装依赖:
npm install启动本地服务:
.\scripts\start-local.ps1首次启动时,脚本会创建.env,并生成随机的ACTION_TOKEN。
启动成功后,可以用下面的命令检查健康状态:
Invoke-RestMethodhttp://127.0.0.1:8765/health如果返回类似下面的 JSON,就说明本地服务已经起来了:
{"ok":true,"version":"0.5.1","workspaceRoot":"D:\\","process":"local-codex-gpt-action"}六、如何让 ChatGPT 访问本机服务?
ChatGPT 无法直接访问你电脑上的127.0.0.1,所以需要一个公网 HTTPS 地址。
常见方案是:
ChatGPT -> https://your-domain.example/openapi.json -> Nginx -> frp server -> frpc -> 127.0.0.1:8765本项目已经准备了 frp 相关脚本:
.\scripts\start-frpc.ps1如果需要在远程服务器上配置 Nginx,可以使用:
.\scripts\setup-remote-nginx.ps1-Domain your-domain.example配置完成后,公网 OpenAPI 地址应该类似:
https://your-domain.example/openapi.json注意:这里不要直接照抄别人的域名,也不要把自己的真实 token、frp token、服务器 IP、.env内容写进公开文章里。
七、在 Custom GPT 中配置 Action
打开 ChatGPT,创建或编辑一个 Custom GPT。
进入 Configure 页面,找到 Actions,新增一个 Action。
认证方式建议选择:
Authentication: API Key Auth Type: Bearer Token: 你的 ACTION_TOKEN然后导入 schema:
https://your-domain.example/openapi.json如果在线导入失败,可以先导出 OpenAPI 文件,再复制粘贴进去:
.\scripts\export-openapi.ps1-PublicBaseUrl https://your-domain.example也可以使用项目内置脚本打印配置:
.\scripts\print-action-config.ps1-PublicBaseUrl https://your-domain.example配置好以后,可以在 GPT 的 Instructions 里写清楚工具使用规则,例如:
你是我的本地 Windows 电脑管家和 coding assistant。 你通过 GPT Actions 操作我的电脑。 当前 Runtime 的 OpenAPI 只暴露一个主 Action:runTool。 所有能力都通过 {category, tool, argumentsJson} 调用。 文件读写改删用 category=fs。 Git 状态、diff、log 用 category=git。 运行 PowerShell 命令用 category=command, tool=run。 系统诊断用 category=system。 文件查找、最近文件、元数据用 category=files。 项目扫描用 category=projects。 后台任务用 category=tasks。 工具目录和操作日志用 category=ops。 不要读取、输出、导出、提交密钥、token、.env、SSH key、cookie、凭据文件或其他敏感信息。 删除文件、覆盖重要文件、运行危险命令前,必须先请求确认。项目里的完整提示词可以参考:
docs/gpt-instructions-v2.md八、桌面控制面板:更适合普通用户使用
为了降低使用门槛,MY_GPT 还准备了一个 Windows 桌面控制面板:
dist\MYGPT-ControlPanel.exe它可以用来:
- 查看本地服务状态;
- 查看公网 Action 状态;
- 查看 frp 连接状态;
- 复制 OpenAPI 链接;
- 复制或轮换 MCP 私有链接;
- 开关 MCP、写文件工具、命令工具;
- 重启本地服务和 frp;
- 安装或移除开机自启;
- 查看最近运行日志。
这个控制面板的意义在于:后续不一定要让用户记 PowerShell 命令,很多事情可以直接点按钮完成。
九、MCP:下一步升级方向
除了 GPT Actions,MY_GPT 也在尝试 MCP 路线。
当前项目里已经有一个src/mcp.js,它会把部分工具注册成 MCP 工具,例如:
computer_health list_files read_file search_files file_metadata git_status list_projects inspect_project这些工具默认偏只读,更适合早期测试。写文件和命令执行工具应该谨慎开放,最好等 OAuth、权限分级、工具级确认机制完善以后再放出来。
为什么要做 MCP?
因为长期来看,MCP 更适合做“ChatGPT 里的原生应用/连接器”。它不仅可以暴露工具,还可以配合 UI 组件显示状态、任务日志、文件搜索结果、Git diff 等信息。
不过现阶段,如果只是想让自己的 Custom GPT 调用本机能力,GPT Actions 仍然是比较直接、稳定的方案。
十、安全提醒:这个项目很强,但也必须谨慎
MY_GPT 的能力非常接近“远程控制电脑”。它可以读文件、写文件、运行命令,所以安全设计一定不能省。
我建议至少遵守下面几条原则:
1. 不要公开你的 token
.env、ACTION_TOKEN、MCP_PATH_SECRET、frp token、SSH key 都不能公开。
尤其是写 CSDN、GitHub README、教程截图时,要检查有没有把敏感信息截进去。
2. 不要随便开放全盘读写
如果只是做演示,建议把工作区限制在某个目录,例如:
WORKSPACE_ROOT=D:\Projects ALLOW_OUTSIDE_WORKSPACE_READ=false ALLOW_OUTSIDE_WORKSPACE_WRITE=false COMMAND_RESTRICT_TO_WORKSPACE=true这样即使 GPT 能调用工具,也只能在指定目录内活动。
3. 命令执行要谨慎
命令执行是最强能力,也是风险最高的能力。
建议默认关闭危险命令,或者只在你自己的私有 GPT 中开启,并且所有删除、覆盖、安装依赖、修改系统配置等操作都要确认。
4. 保护敏感路径
项目中已经对下面这些内容做了保护:
.env .env.example .git .ssh cloud_server_key 私钥文件 浏览器 cookie 登录数据但这不代表可以完全放心。越强的工具,越要小心权限边界。
5. 公网只暴露 HTTPS
Custom GPT Actions 通常需要公网可访问的 HTTPS 地址。不要直接裸奔 HTTP,也不要把本机端口直接暴露到公网。
推荐结构是:
ChatGPT -> HTTPS 域名 -> Nginx -> frp -> 本机 Runtime十一、适合谁使用?
MY_GPT 比较适合这些人:
- 经常让 ChatGPT 帮自己看代码的开发者;
- 希望 AI 能直接理解本机项目结构的人;
- 想做“私人电脑管家”的玩家;
- 想研究 GPT Actions、MCP、Agent 工具调用的人;
- 想把 AI 编程助手接入本地 Windows 环境的人。
它不太适合:
- 完全不懂基本网络和安全配置的人;
- 想把自己的电脑能力开放给所有人的场景;
- 没有权限管理就想公开部署的场景;
- 对 token、反代、HTTPS、frp 完全没有概念的人。
十二、最后总结
MY_GPT 不是一个简单的 ChatGPT 插件,而是一个“本机能力桥接层”。
它把本机文件系统、Git、PowerShell、系统诊断、项目扫描等能力包装成受控工具,再通过 GPT Actions 或 MCP 暴露给 ChatGPT。
它带来的最大变化是:
ChatGPT 不再只能根据你复制的文本回答,而是可以在你的授权下,真正读取和理解你的本机环境。
对于开发者来说,这会让 AI 编程助手的体验更接近“本地 Agent”。
当然,能力越强,安全越重要。我的建议是:先从只读能力开始,把工作区限制在项目目录内,确认稳定后再逐步开放写入和命令执行。
后续我还会继续完善:
- 更友好的控制面板;
- 更细的权限开关;
- MCP OAuth;
- 工具级确认;
- 文件搜索 UI;
- Git diff 预览;
- 任务日志面板;
- 更适合普通用户的一键安装包。
如果你也想把自己的电脑接入 ChatGPT,可以关注 MY_GPT 这个项目。它也许不是最终形态,但它代表了一个很有意思的方向:让 AI 真正进入你的本地工作流。感兴趣的朋友可以私信或者留言,我会第一时间联系你。