shell-gpt
find-xposed-magisk/shell-gpt加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
"你还在开着浏览器问 ChatGPT 怎么写 sed 命令?终端里直接
sgpt --shell "批量重命名 foo 为 bar"就完事了。"
每个程序员都有过这样的经历——
写一个复杂的 find + grep 管道命令,翻遍 Stack Overflow 看了三页才拼凑出一个半信半疑的答案。查一个生僻的系统调用,光打开浏览器、等页面加载、输入搜索词就要耗掉 30 秒,结果 top3 的回答还是 2015 年的旧帖子。
Shell-GPT(简称 sgpt)解决的就是这个「终端上下文切换损耗」问题。它把 GPT-4 / Claude 等大语言模型的能力直接嵌入了 Linux / macOS / Windows 的命令行,你不需要离开终端,不需要切换窗口,AI 就在你敲命令的那一行里。
典型使用场景:
| 操作 | 传统方式 | Shell-GPT 方式 |
|---|---|---|
| 写一个正则替换 | 打开浏览器 → 搜索 → 复制 | sgpt --shell "删除所有空行" |
| 查某个 Linux 命令 | 浏览器搜索 → 翻页 → 试错 | sgpt --describe-shell "查看磁盘占用" |
| 生成代码片段 | 复制 prompt → 粘贴到 ChatGPT → 复制回来 | sgpt --code "Python 读取 CSV 前 100 行" |
| 多轮调试 | 反复在编辑器/终端/浏览器间切换 | sgpt --chat debug 记住上下文 |
Shell-GPT 是一个 Python 实现的纯 CLI 工具,由 Farkhod Sadykov 开发维护,GitHub stars 18,采用 MIT 许可证。
它的核心定位是「终端里的 AI 第二大脑」——不是替代 IDE,而是填补命令行场景下 AI 辅助的空白。项目支持多个后端:
gpt-5.4-mini 为默认模型,可配置)这种多后端设计意味着:如果你有本地运行的 LLaMA/Mistral,或者公司内部的模型服务,只需要改一个 API_BASE_URL 环境变量,就能让 Shell-GPT 连上去,无需修改任何代码。
--shell:生成并直接执行 Shell 命令这是 Shell-GPT 最受欢迎的功能。你用自然语言描述需求,它生成 Linux/macOS 命令,可以直接执行(需加 --execute 或开启 SHELL_INTERACTION)。
# 示例:批量将 .txt 文件编码转为 UTF-8
sgpt --shell "将当前目录下所有 .txt 文件转为 UTF-8 编码"
# 输出(示例):
find . -name "*.txt" -exec iconv -f GBK -t UTF-8 {} -o {} \;
系统会自动分析你的操作系统(Linux/macOS/Windows),生成对应平台的命令。生成的命令会显示给用户确认,不会静默执行——这是一个重要的安全设计。
--describe-shell:解释命令含义把一段你不认识的命令粘贴进去,它会告诉你这段命令在做什么:
sgpt --describe-shell "find . -type f -name '*.tmp' | xargs rm -f"
# 输出:这段命令会在当前目录递归查找所有 .tmp 文件并删除它们
这个功能对于阅读他人脚本、排查生产环境问题时尤其有用。
--code:只生成代码,不执行生成代码片段并输出 markdown 格式化,适合粘贴到编辑器中:
sgpt --code "用 Python 读取 CSV,按第 3 列排序后输出前 10 行"
--chat:持久化多轮对话每个 chat 有唯一 ID,对话历史保存在 ~/.config/shell_gpt/chats/ 下,下次启动同一 ID 继续上下文:
sgpt --chat my-task "帮我分析这个日志文件的错误分布"
# 之后继续:
sgpt --chat my-task "按小时统计错误数"
sgpt/ # 主包
├── app.py # CLI 入口,Typer 定义所有命令
├── config.py # 配置管理(环境变量 + 配置文件)
├── cache.py # 响应缓存(避免重复 API 调用)
├── role.py # System Role 管理(自定义角色提示词)
├── function.py # OpenAI Function Calling schema
├── printer.py # 输出格式化(markdown/纯文本)
├── utils.py # 工具函数(shell 集成、安装脚本等)
├── handlers/ # 请求处理器
│ ├── chat_handler.py # --chat 模式
│ ├── default_handler.py # 默认(单次)模式
│ ├── repl_handler.py # REPL 交互模式
│ └── handler.py # 基类
└── llm_functions/ # 函数库(可扩展的 Tool)
├── init_functions.py # 函数安装
└── common/mac/ # 平台特定函数
关键依赖:
| 库 | 用途 |
|---|---|
openai | LLM API 调用 |
typer | CLI 参数解析(比 Click 更好用) |
rich | 富文本输出、进度条 |
prompt_toolkit | REPL 模式下的键盘交互 |
distro | 检测操作系统类型 |
架构亮点:
~/.config/shell_gpt/.sgptrc 支持热修改,无需重启~/.cache/chat_cache/ 自动去重,节省 API 调用成本方式一:pip(推荐)
pip install sgpt
方式二:Docker
docker run -it ghcr.io/the.../shell_gpt sgpt --chat
方式三:源码
git clone https://github.com/TheR1D/shell_gpt.git
cd shell_gpt && pip install -e .
安装后运行任意 sgpt 命令,会提示输入 OpenAI API Key:
sgpt "你好"
# 首次会提示:Enter OpenAI API Key:
# 输入后保存到 ~/.config/shell_gpt/.sgptrc
或者手动设置环境变量:
export OPENAI_API_KEY="sk-..."
export OPENAI_API_BASE_URL="https://api.openai.com/v1" # 或自定义代理地址
Shell-GPT 本质上是一个 API 调用包装器,每次请求都要消耗 LLM API 配额。项目中内建了缓存机制(~/.cache/),相同问题不会重复请求——但对于大量临时性探索任务,累计成本仍然可观。建议配合使用价格更低的模型(如 gpt-4o-mini)作为日常主力。
--shell 模式生成的命令虽然有确认提示,但在高权限环境下仍然存在误执行风险。项目有 DEFAULT_EXECUTE_SHELL_CMD 配置选项,强烈建议保持关闭,仅在明确知道命令含义时手动复制执行。
虽然项目 README 有中文翻译,但默认模型是英文优化的 GPT-5-mini,部分复杂中文技术描述的生成质量不如纯英文 prompt。对于中文技术场景,可能需要额外在 --chat 中设定中文 system role。
Shell-GPT 代表了一个明确的趋势:AI 能力向开发者工作流的核心区域(终端)渗透。随着 Code Agent 技术的发展,未来这类工具可能会进化成能够:
当前版本(18 stars,MIT 许可证,Python 3.10+,活跃维护)处于早期社区阶段,代码质量良好(结构清晰、有 pytest 测试覆盖),但生态规模和用户基数还有很大增长空间。
| 维度 | 评分 | 说明 |
|---|---|---|
| 功能实用性 | ⭐⭐⭐⭐⭐ | 解决真实痛点,上手即用 |
| 技术实现 | ⭐⭐⭐⭐ | 架构清晰,模块化好 |
| 部署难度 | ⭐⭐⭐⭐⭐ | pip 一键安装,无依赖 |
| 文档完善度 | ⭐⭐⭐⭐ | README 详细,支持中文 |
| 社区活跃度 | ⭐⭐⭐ | stars 较少,更新频率一般 |
| AI 相关性 | ⭐⭐⭐⭐⭐ | 纯 AI 应用,LLM 集成完善 |
一句话评价:Shell-GPT 是终端重度用户的 AI 瑞士军刀,适合经常写脚本、查命令、调试代码的开发者。安装简单、上手快,值得作为命令行常驻工具。
本文由 PIFS 智能分析系统生成 | 分析时间:2026-08-14