
ShellGPT:在终端中直接使用 AI 命令行的生产力工具
ShellGPT 是一款基于 AI 大语言模型的命令行生产力工具,支持在终端中直接生成 shell 命令、代码片段、文档等,无需离开命令行即可调用 AI 能力。
概述
ShellGPT(GitHub: TheR1D/shell_gpt)是一款由 AI 大语言模型(LLM)驱动的命令行生产力工具。它能够直接在终端中生成 shell 命令、代码片段、文档和自然语言回答,让你无需离开终端去搜索 Google 或查阅文档。支持 Linux、macOS 和 Windows,兼容 PowerShell、CMD、Bash、Zsh 等主流 Shell。
默认情况下,ShellGPT 使用 OpenAI 的 API 和 GPT-4 模型。你也可以通过 Ollama 等后端使用本地开源模型(免费),不过本地模型可能需要额外配置。
核心功能
1. 智能 Shell 命令生成
忘记某个命令的语法时,无需再打开浏览器搜索。使用 --shell(或 -s)选项即可让 AI 根据你的自然语言描述生成对应的命令,并支持交互式执行、描述或中止。
# 查找当前目录下所有 JSON 文件
sgpt -s "find all json files in current folder"
# 输出: find . -type f -name "*.json"
# 交互: [E]xecute, [D]escribe, [A]bortShellGPT 会自动识别你的操作系统,生成适配的命令:
- macOS 上询问系统更新 → 生成
softwareupdate --list - Ubuntu 上询问系统更新 → 生成
sudo apt update && sudo apt upgrade -y
它还支持通过管道传递输入:
# 分析日志文件中的错误
cat server.log | sgpt "check logs, find errors, provide possible solutions"2. 纯代码生成
使用 --code(或 -c)选项可以生成纯代码输出,方便重定向到文件:
sgpt -c "solve fizz buzz problem using python" > fizzbuzz.py结合管道使用,可以为代码自动添加注释:
cat my_code.py | sgpt "Generate comments for each line of my code"3. 对话模式与 REPL
使用 --chat 选项可以开启持续对话,会话自动保存在 ~/.config/shell_gpt/chat_cache/ 中:
# 开启新会话
sgpt --chat session1 "please remember my favorite number: 4"
sgpt --chat session1 "what would be my favorite number + 4?"
# 输出: Your favorite number is 4, so if we add 4 to it, the result would be 8.使用 --repl 可以进入 REPL(读取-求值-输出循环)交互模式,像聊天一样持续与 AI 交流:
sgpt --repl temp
# 进入 REPL 模式,按 Ctrl+C 退出支持带 --shell 和 --code 选项的 REPL 模式,特别适合交互式生成和执行命令。
4. Function Calling(函数调用)
ShellGPT 支持 OpenAI 的 Function Calling 功能,允许 LLM 在你的系统中执行函数。你可以在 ~/.config/shell_gpt/functions/ 目录下创建自定义函数。
示例:内置的 execute_shell_command 函数让 LLM 可以直接执行系统命令。如果某个工具未安装,LLM 甚至可能尝试自动安装:
# 请求解析 JSON 文件
sgpt "parse /tmp/test.json file using jq and return only email value"
# 如果 jq 未安装,LLM 可能会自动执行 brew install jq支持链式函数调用:
sgpt "Play music and open hacker news"
# LLM 会依次调用播放音乐和打开浏览器的函数⚠️ LLM 可能执行破坏性命令,使用时请注意风险。
5. 自定义角色(Roles)
通过 --create-role 可以创建自定义角色,用于特定场景:
sgpt --create-role json_generator
# 输入角色描述: Provide only valid json as response.
# 之后使用: sgpt --role json_generator "random: user, password, email, address"使用 --list-roles(或 -lr)列出所有角色,--show-role 查看角色详情。
6. Shell 集成(Hotkey 模式)
运行 sgpt --install-integration 并重启终端后,你可以通过快捷键(默认 Ctrl+Space)在终端中直接调用 ShellGPT。它会替换当前输入行(buffer),让你可以即时编辑和执行建议的命令。
7. 缓存
ShellGPT 会对相同的查询进行缓存,下次同样的请求直接从缓存获取结果,速度更快。使用 --temperature 参数可以跳过缓存,获取新的回答。
安装与配置
安装
pip install shell-gpt配置 API Key
首次运行时会提示输入 API Key,存储在 ~/.config/shell_gpt/config.yaml 中。也可以通过环境变量 OPENAI_API_KEY 设置。
运行时配置
配置文件 ~/.config/shell_gpt/config.yaml 支持丰富的自定义选项:
# API 密钥
OPENAI_API_KEY: your-key-here
# 后端服务器地址
API_BASE_URL: default
# 聊天缓存路径
CHAT_CACHE_PATH: /tmp/shell_gpt/chat_cache
# 请求缓存路径
CACHE_PATH: /tmp/shell_gpt/cache
# Shell 命令默认颜色
COLOR: blue
# 默认执行 shell 命令(无需确认)
DEFAULT_EXECUTE_SHELL_CMD: false
# 函数路径
OPENAI_FUNCTIONS_PATH: ~/.config/shell_gpt/functionsDocker 使用
ShellGPT 也支持 Docker 运行:
docker run --rm \
--volume gpt-cache:/tmp/shell_gpt \
--env OPENAI_API_KEY \
--env OS_NAME=linux \
ther1d/shell_gpt "what are the colors of a rainbow"使用本地模型(Ollama)
如果需要使用本地模型(免费),需要配置 LiteLLM 和 Ollama:
# Dockerfile 示例
ENV DEFAULT_MODEL=ollama/mistral:7b-instruct-v0.2-q4_K_M
ENV API_BASE_URL=http://10.10.10.10:11434
RUN pip install --no-cache /app[litellm]⚠️ ShellGPT 对本地模型的优化有限,可能不如 OpenAI 模型稳定。
命令行选项一览
| 选项 | 说明 |
|---|---|
--model | 使用的 LLM 模型(默认: gpt-4o) |
--temperature | 输出随机性(0.0~2.0,默认: 0.0) |
--shell / -s | 生成并执行 shell 命令 |
--code / -c | 生成纯代码 |
--chat | 对话模式,指定会话 ID |
--repl | REPL 交互模式 |
--role | 指定系统角色 |
--cache | 缓存完成结果(默认开启) |
--md / --no-md | 美化 Markdown 输出 |
--editor | 用 $EDITOR 打开编辑器输入提示 |
适用场景
- 开发者:快速生成 Git 提交信息、Docker 命令、正则表达式等
- 运维工程师:分析日志、生成系统管理命令、排查网络问题
- 数据科学家:生成数据处理脚本、SQL 查询
- 技术写作者:生成文档示例、代码注释
- 所有人:在终端中快速获得技术问题的答案,无需中断工作流
总结
ShellGPT 将 AI 大语言模型的强大能力直接嵌入命令行终端,让开发者无需切换上下文即可完成从命令生成到代码编写的各种任务。它的 Shell 集成、对话模式、Function Calling 等功能设计实用,能够显著提升终端工作的效率和流畅度。如果你经常在终端中工作,ShellGPT 是一个非常值得尝试的生产力工具。
© 2026 四月 · CC BY-NC-SA 4.0
原文链接:https://aprilzz.com/tools/shellgpt-ai-terminal
相关文章
Deer-flow:字节跳动开源的长时程 AI Agent 框架
DeerFlow(Deep Exploration and Efficient Research Flow)是字节跳动开源的一款超级智能体编排框架,支持子智能体、长期记忆、沙箱执行和可扩展技能,可完成几乎任何复杂长时程任务。
ripgrep:比 grep 快 10 倍的命令行搜索工具
ripgrep (rg) 是一个用 Rust 编写的命令行搜索工具,比传统 grep 快 10 倍。本文深入分析其架构设计、正则引擎优化和 25 项基准测试,揭示它为何能同时实现极致性能和正确性。
JQ 入门:命令行 JSON 处理利器
JQ 是命令行处理 JSON 数据的瑞士军刀,本文从基础到进阶带你掌握这个必备工具。