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 – 现代 LLM 的终端前端

这是什么 – 一个单一二进制文件的命令行工具,让您直接从 shell 与各种大型语言模型提供商 (OpenAI、Azure、Perplexity、LLaMA 等) 对话。它支持纯文本查询、流式响应、交互式 REPL 会话,以及一组“代理”功能,让模型能够调用工具 (shell、文件系统、网络搜索、MCP 服务) 来解决多步骤任务。

核心功能

  • 流式与查询模式 – 实时逐字元输出或一次性请求与接收。
  • 基于线程的上下文 – 每个逻辑对话 (线程) 都保留各自的历史记录与滑动窗口字元限制;历史记录存储在 ~/.chatgpt-cli 下。
  • 提示文件 – --prompt <file> 在您的查询前注入可重复使用的指令文件。
  • 代理模式 – 实验性的 ReAct 或 Plan/Execute 循环,让模型使用内置工具 (shell 命令、文件操作、网络搜索) 进行思考、行动和观察。预算 (步骤、字元、时间) 与策略规则 (允许的工具、工作目录沙盒) 确保执行的安全性。
  • MCP (模型上下文协议) 集成 – 调用外部 HTTP 或 stdio 工具,将其 JSON-RPC 结果以 [MCP: <tool>] 上下文插入对话中。
  • 多媒体 I/O – 上传图片 (--image)、生成或编辑图片 (--draw)、上传音频 (--audio)、转录 (--transcribe) 以及合成语音 (--speak)。
  • 模型发现 – -l/--list-models 显示当前提供商提供的模型。
  • 分层配置 – 命令行参数 > 环境变量 > config.yaml > 默认值;每个提供商区块可让您存储 OpenAI、Azure、Perplexity、302 AI、Atlas Cloud 等的密钥。

安装

  • Homebrew (macOS): brew tap kardolus/chatgpt-cli && brew trust kardolus/chatgpt-cli && brew install chatgpt-cli
  • 预构建二进制文件 – 从最新的 GitHub release 中 curl 适当的 chatgpt-<os>-<arch>,使其具备可执行权限,并将其放置在您的 $PATH 中 (README 中有适用于 Apple Silicon、Intel macOS、Linux amd64/arm64/386、FreeBSD、Windows 的示例)。

入门指南

  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. 使用提示文件:git diff | chatgpt --prompt ./prompts/write_pull-request.md
  6. 运行代理:chatgpt "Why is my test failing?" --agent

配置重点

  • config.yaml 位于 ~/.chatgpt-cli 中 (或通过 --config-dir 指定自定义目录)。
  • 提供商专属区块可让您设置 API 密钥、基础 URL 和模型默认值。
  • 代理专属设置 (budget、policy、work-dir) 可在同一文件中或通过 --set-… 参数进行配置。
  • 可使用 --completion 辅助工具为 Bash/Zsh/Fish 启用自动补全。

为何您可能会关心

  • 让您保持在终端环境中,避免切换到网页 UI 的上下文。
  • 代理模式提供了一个轻量级的“auto-GPT”,可以在遵守安全限制的同时运行脚本、编辑文件或获取实时网络数据。
  • MCP 支持意味着您可以插入任何遵循模型上下文协议的自定义工具,而无需编写代码。

链接与资源

相关

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