/ʤiː piː tiː miː/
它代表什么?
📜 一个个人AI代理,可在**任何有终端的地方运行**——你的笔记本电脑、SSH会话、tmux、无头服务器、CI流水线。
提供商无关、本地优先且不受限制:内置Shell、Python、Web、视觉以及代理所需的一切。
一个出色的编码代理,但功能通用,足以协助各种知识性工作。
免费且开源。兼容Anthropic、OpenAI、Google、xAI、DeepSeek、OpenRouter,或通过 llama.cpp 完全本地运行——你的数据、你的模型、你的终端。
一个功能强大的 替代方案 ,可替代Claude Code、Codex、Cursor和Warp——首批代理CLI之一(2023年春),至今仍在非常积极地开发中。
[!NOTE]
下面的屏幕录制来自2023年。gptme 从那以后已经发展了很多!
有关最新的示例和截图,请参阅 文档。
我们正在努力实现自动化演示生成: #1554。
| 斐波那契 | 贪吃蛇(curses) |
|---|---|
[](https://asciinema.org/a/606375)
步骤
|
[](https://asciinema.org/a/621992)
步骤
|
| 曼德勃罗(curses) | 从URL回答问题 |
[](https://asciinema.org/a/621991)
步骤
|
[](https://asciinema.org/a/621997)
步骤
|
| 终端 UI | Web UI |
特性
|
特性
|
llama.cpp 本地服务。GPTME_TOOL_SOUNDS=true 启用。gptme 为 AI 配备了丰富的内置工具:
| 工具 | 描述 |
|---|---|
shell |
直接在终端中执行 Shell 命令 |
ipython |
运行 Python 代码,可访问你已安装的库 |
read |
读取文件和目录 |
save / append |
创建或更新文件 |
patch / morph |
对现有文件进行增量编辑 |
browser |
通过 Playwright 搜索和浏览网页 |
vision |
处理和分析图像 |
screenshot |
捕获桌面截图 |
rag |
从本地文件检索上下文(检索增强生成) |
gh |
通过 GitHub CLI 与 GitHub 交互 |
tmux |
在持久终端会话中运行长时间运行的命令 |
computer |
用于 GUI 交互的完整桌面访问 |
subagent |
生成子代理以执行并行或隔离任务 |
chats |
引用和搜索过去的对话 |
在对话中使用 /tools 可查看所有可用工具及其状态。
gptme 拥有一个分层可扩展性系统,允许你根据工作流程进行定制:
[插件][docs-plugins] — 通过 Python 包使用自定义工具、钩子和命令扩展 gptme:
# gptme.toml
[plugins]
paths = ["~/.config/gptme/plugins", "./plugins"]
enabled = ["my_plugin"]
技能 — 轻量级工作流捆绑包(Anthropic 格式),在提及名称时自动加载。非常适合打包可重复使用的指令和辅助脚本,而无需编写 Python。
课程 — 基于关键词、工具和模式自动注入到对话中的上下文指导。编写你自己的课程以捕获团队最佳实践或领域知识。
[钩子][docs-hooks] — 在关键生命周期事件(工具调用前后、对话开始时等)运行自定义代码,而无需完整插件。
gptme-contrib — 社区贡献的插件、包、脚本和课程:
| 插件 / 包 | 描述 |
|---|---|
| gptme-codegraph | 使用 tree-sitter 进行结构化代码检索:9 个用于解析、调用图、爆炸/影响分析的 MCP 工具 |
| gptme-consortium | 多模型共识决策 |
| gptme-imagen | 多提供商图像生成 |
| gptme-lsp | 语言服务器协议集成 |
| gptme-ace | ACE 启发的上下文优化 |
| gptme-gupp | 跨会话的工作状态持久化 |
[MCP (模型上下文协议)][docs-mcp] — 使用任何 MCP 服务器作为工具源:
pipx install gptme # 默认包含 MCP 支持
gptme 可以发现并动态加载 MCP 服务器,使代理能够访问数据库、API、文件系统以及任何其他 MCP 兼容工具。有关服务器配置,请参阅 [MCP 文档][docs-mcp]。
[ACP (代理客户端协议)][docs-acp] — 直接从编辑器使用 gptme 作为编码代理:
pipx install 'gptme[acp]'
这使 gptme 可作为 Zed 和 JetBrains IDE 中的即插即用编码代理。你的编辑器发送请求,gptme 使用其完整的工具集(Shell、浏览器、文件等)执行,并将结果流式传回。
gptme 不仅设计为交互式运行,还能作为持久的自主代理运行——一个持续运行、记住一切并随着时间的推移变得更好的 AI。 gptme-agent-template 提供了完整的支架:
# 创建并运行你自己的代理
gptme-agent create ~/my-agent --name MyAgent
gptme-agent install # 按计划运行
gptme-agent status # 检查状态
Bob 是参考实现——一个自 2024 年底以来持续运行的生产级自主代理。Bob 打开 PR、审查代码、修复 CI、管理自己的任务队列、维护不断增长的行为课程,在 Twitter 上发帖,在 Discord 上回复,并撰写 博客文章。
多个专门代理可以并行运行——例如 Bob(工程)和 Alice (个人助理与编排)——通过共享基础设施进行协调。
请参阅 自主代理文档 获取完整指南。
持久的代理需要在整个循环中设置护栏,而不仅仅是工具权限:
这个栈简单且可组合:选择器改进工作选择,课程引导行为,检查验证结果。你可以稍后在此基础上添加评估,但基线护栏循环已经存在。
mypy、ruff 和 pyupgrade 进行检查和格式化。gptme-server + gptme-webui 来自托管)/account setup openrouter 使用浏览器 OAuth 入职进行交互式配置。ANTHROPIC_API_KEY), OpenAI (OPENAI_API_KEY), OpenRouter (OPENROUTER_API_KEY) 和其他提供商的 API 密钥。llama.cpp 的本地模型不需要密钥——请参阅 提供商文档。有关完整的设置说明,请参阅 快速开始指南。
# 使用 pipx (推荐,需要 Python 3.10+)
pipx install gptme
# 使用 uv
uv tool install gptme
# 使用可选附加组件
pipx install 'gptme[browser]' # 用于网页浏览的 Playwright
pipx install 'gptme[all]' # 所有功能
# 从 git 安装最新版本(包含所有附加组件)
uv tool install 'git+https://github.com/gptme/gptme.git[all]'
gptme
你会看到一个提示符。输入你的请求,gptme 将使用工具进行响应。
# 创建一个粒子效果可视化
gptme '使用 three.js 编写一个令人印象深刻且丰富多彩的粒子效果到 particles.html'
# 生成视觉艺术
gptme '将曼德勃罗集渲染到 mandelbrot.png'
# 获取配置建议
gptme '建议对我 vimrc 的改进'
# 处理媒体文件
gptme '转换为 h265 并调整音量' video.mp4
# 来自 git diff 的代码辅助
git diff | gptme '完成此 diff 中的 TODO'
# 修复失败的测试
make test | gptme '修复失败的测试'
# 自动批准工具确认(用户仍可观看和中断)
gptme -y '运行测试套件并修复任何失败的测试'
# 完全非交互/自主模式(无法进行用户交互,适用于脚本/CI)
gptme -n '运行测试套件并修复任何失败的测试'
# 机器可读的自动化输出(标准输出上的 JSONL)
gptme --non-interactive --output-format json '总结当前的 git diff'
创建 ~/.config/gptme/config.toml:
[user]
name = "用户"
about = "我是一个好奇的人类程序员。"
response_preference = "不要解释基本概念"
[prompt]
# 始终包含为上下文的附加文件
# files = ["~/notes/llm-tips.md"]
[env]
# 设置你的默认模型
# MODEL = "anthropic/claude-sonnet-4-20250514"
# MODEL = "openai/gpt-4o"
所有选项请参阅 配置文档。
$ gptme --help
用法: gptme [OPTIONS] [PROMPTS]...
gptme 是一个 LLM 的聊天 CLI,赋予它们运行 shell 命令、执行代码、读取和操作文件等能力。
如果提供了 PROMPTS,将使用它开始一个新的对话。可以使用 '-' 分隔符链接 PROMPTS。
界面提供可用于与系统交互的用户命令。
可用命令:
/undo 撤销上一个操作
/log 显示对话日志
/edit 在编辑器中编辑对话
/rename 重命名对话
/fork 创建对话副本
/summarize 总结对话
/replay 重放工具操作
/export 将对话导出为 HTML
/model 显示或切换当前模型
/models 列出可用模型
/tokens 显示 Token 使用和成本
/context 显示上下文 Token 细分
/tools 显示可用工具
/commit 要求助手进行 git 提交
/compact 压缩对话
/impersonate 模拟助手
/restart 重启 gptme 进程
/setup 设置 gptme
/help 显示此帮助消息
/exit 退出程序
查看所有命令的文档:https://gptme.org/docs/commands.html
键盘快捷键:
Ctrl+X Ctrl+E 在编辑器中编辑提示
Ctrl+J 插入新行而不执行提示
选项:
--name TEXT 对话名称。默认为生成随机名称。
-m, --model TEXT 要使用的模型,例如 openai/gpt-5, anthropic/claude-
sonnet-4-20250514。如果只给定了提供商,则使用默认模型。
-w, --workspace TEXT 工作区目录路径。传递 '@log' 以在日志目录中创建工作区。
--agent-path TEXT 代理工作区目录路径。
-r, --resume 加载最近的对话。
-y, --no-confirm 跳过所有确认提示。
-n, --non-interactive 非交互模式。隐含 --no-confirm。
--output-format [text|json]
非交互模式的输出格式。'json' 在标准输出上每行发出一个 JSON 对象。
--system TEXT 系统提示。选项:'full', 'short', 或自定义内容。
-t, --tools TEXT 允许的工具,用逗号分隔。可用:
append, browser, chats, choice, computer, gh,
ipython, morph, patch, rag, read, save, screenshot,
shell, subagent, tmux, vision。
--tool-format TEXT 使用的工具格式。选项:markdown, xml, tool
--no-stream 不流式传输响应
--show-hidden 显示隐藏的系统消息。
-v, --verbose 显示详细输出。
--version 显示版本和配置信息
--help 显示此消息并退出。
当标准输出需要机器可读时(例如在 CI 或监控进程中),请将 --non-interactive 与 --output-format json 配对。使用 --resume 继续现有的自动化对话或在不传递新提示的情况下拾取排队中的后续提示。
gptme 不仅仅是一个 CLI——它是一个拥有不断发展的生态系统的平台:
| 项目 | 描述 |
|---|---|
| gptme-webui | 现代 React Web 界面,可在 chat.gptme.org 获取 |
| gptme-contrib | 社区插件、包、脚本和课程 |
| gptme-codegraph | 使用 tree-sitter 的结构化代码检索(用于代码图分析的 9 个 MCP 工具) |
| gptme-agent-template | 用于构建持久化自主代理的模板 |
| gptme-rag | 用于对本地文件进行语义搜索的 RAG 集成 |
| gptme.vim | 用于编辑器内 gptme 集成的 Vim 插件 |
| gptme-tauri | 桌面应用 (WIP) |
| gptme.ai | 托管云服务 (WIP) |
由 gptme 驱动的社区代理:
- Bob — 自主 AI 代理,自 2024 年底以来持续运行,为开源项目做贡献并管理自己的任务
- Alice — 个人助理和代理编排器,基于相同架构分支
欢迎贡献!请参阅 贡献指南。