kardolus/chatgpt-cli

ChatGPT CLI is a powerful, multi-provider command-line interface for working with modern LLMs. It supports OpenAI, Azure, Perplexity, LLaMA, and more, with features like streaming, interactive chat, prompt files, image/audio I/O, MCP tool calls, and an experimental agent mode for safe, multi-step automation.

ChatGPT CLI – 现代大模型的终端前端

是什么 – 一个单二进制命令行工具,可直接从 shell 与多种大语言模型提供商(OpenAI、Azure、Perplexity、LLaMA 等)对话。支持普通查询模式、流式“实时打字”模式、交互式 REPL,以及可运行多步骤工具使用工作流的实验性 代理 模式。

核心功能

  • 供应商无关 – 通过 config.yaml 或环境变量配置任意支持的 LLM。
  • 流式与查询模式 – 可逐 token 输出,或获取单次响应。
  • 线程化上下文 – 每个 线程 保持独立的聊天历史,使用滑动窗口自动修剪以保持在 token 限制内。
  • 提示文件--prompt <file> 可在查询前注入完整文本提示(例如 Markdown 指南)。
  • 多媒体 I/O – 支持上传图片(--image)、生成图片(--draw)、上传音频(--audio)、转录(--transcribe)和语音合成(--speak)。
  • MCP(模型上下文协议) – 通过 HTTP 或 stdio 调用外部工具,CLI 管理会话,并将工具结果作为上下文注入对话。
  • 代理模式 – 支持 ReAct 或 Plan/Execute 循环,可运行 shell 命令、读写文件,并遵守可配置的 预算(步骤数、token 数、运行时间)和 策略(允许的工具、禁止的命令、工作目录沙箱)。
  • 网络搜索 – 模型支持时可选实时网络获取。
  • 自动补全 – 通过 chatgpt completion 生成 Bash/Zsh/Fish 补全。

安装

  • Homebrew(macOS)brew tap kardolus/chatgpt-cli && brew install chatgpt-cli(信任一次该 tap)。
  • 预构建二进制文件curl -L …/chatgpt-<os‑arch> 下载后 chmod +x 并移动到 PATH 中的目录(Apple Silicon、Intel macOS、Linux amd64/arm64/386、FreeBSD、Windows 的示例见 README)。

快速上手

  1. 导出 OpenAI 密钥:export OPENAI_API_KEY=sk‑…(或配置其他提供商)。
  2. 创建历史目录:mkdir -p ~/.chatgpt-cli
  3. 简单查询:chatgpt "what is the capital of the Netherlands"
  4. 交互式 REPL:chatgpt --interactive
  5. 使用提示文件:chatgpt --prompt my‑prompt.md "Summarize this code"
  6. 运行代理任务:chatgpt "why is my test failing?" --agent(或添加 --agent-mode plan)。

配置

  • 设置可通过 标志环境变量(以配置名前缀)、config.yaml 文件或回退到内置默认值提供。优先级为:标志 > 环境变量 > 文件 > 默认值。
  • 供应商特定部分(OpenAI、Azure、Perplexity、302 AI、Atlas Cloud)可存储 API 密钥、端点 URL、模型默认值等。
  • 代理特定选项可设置默认策略、预算限制和沙箱工作目录。
  • --target 标志可切换多个配置文件。

典型用例

  • 无需打开浏览器即可快速查询。
  • 脚本化:将文件内容或命令输出通过管道传入 CLI,获取模型生成的回答。
  • 自动化工作流:使用代理模式让模型安全地运行一系列 shell 命令。
  • 通过 MCP 扩展自定义工具 – 例如调用天气爬虫服务并将结果反馈给模型。

更多资源


以上所有细节均直接来自项目的 README;未推断任何额外功能。

相关

  • 项目
  • Dispatch
  • 项目
  • 项目
  • 项目