Codex-CLI

GitHub
2.4k 223 简单 1 次阅读 昨天MIT语言模型插件
AI 解读 由 AI 自动生成,仅供参考

Codex-CLI 是一款创新的命令行辅助工具,它利用 OpenAI 的 Codex 大语言模型,将用户输入的自然语言指令实时转换为 Bash、Zsh 或 PowerShell 等 Shell 的具体执行命令。

长期以来,命令行界面(CLI)虽然功能强大,但要求用户必须精准掌握复杂的计算机语法和指令,这对非专业人士构成了较高的使用门槛。Codex-CLI 正是为了解决这一痛点而生,它让用户能够像日常对话一样输入“查看我的 IP 地址”或“切换时区”,只需按下快捷键,工具便会自动生成符合当前 Shell 习惯的标准命令供用户确认执行,极大地降低了操作难度。

这款工具特别适合希望提升工作效率的开发者、系统管理员,以及想要尝试命令行操作但苦于记不住复杂指令的技术爱好者。其独特的技术亮点在于支持“多轮对话”模式:它能记忆上下文信息,允许用户在后续指令中使用代词(如“把它改回太平洋时间”),模型能准确理解指代对象并生成对应命令,使交互过程更加流畅自然。

需要注意的是,Codex-CLI 生成的命令基于概率预测,偶尔可能出现偏差。因此在执行自动生成的命令前,建议用户先审阅确认,以确保操作安全。作为一个开源项目,它为探索大模型在终端交互中的应用提供了极佳的实践参考。

使用场景

一位刚接手 Linux 服务器的运维新手,需要在复杂的文件系统中快速定位并清理特定类型的日志文件,但他对繁琐的 Bash 参数记忆模糊。

没有 Codex-CLI 时

  • 必须频繁切换浏览器标签页,在 StackOverflow 或官方文档中搜索 find 命令结合 mtimesize 等参数的具体写法。
  • 极易因记错正则表达式语法或漏写转义字符,导致命令执行报错,甚至误删非目标文件。
  • 面对多步骤操作(如先查找再确认最后删除),需要手动拆分多条命令执行,上下文切换成本高且效率低下。
  • 遇到不熟悉的 Shell 特性时,只能依靠试错法修改命令,不仅耗时还增加了生产环境的风险。

使用 Codex-CLI 后

  • 直接在终端输入自然语言注释"# 找出过去 7 天大于 100M 的 .log 文件并删除”,按下 Ctrl + G 即可自动生成精准的 Bash 命令。
  • Codex-CLI 自动处理复杂的参数组合与语法细节,生成的命令符合当前 Shell 规范,大幅降低语法错误率。
  • 开启多轮对话模式后,可紧接着输入"# 把刚才的操作改成只列出文件不删除”,工具能理解上下文意图并即时调整命令逻辑。
  • 在按下回车执行前,用户可直观审查生成的命令,既保留了人工确认的安全机制,又省去了查阅文档的时间。

Codex-CLI 通过将自然语言实时转化为专业壳层命令,让开发者无需死记硬背语法即可安全、高效地驾驭命令行界面。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具基于云端 API 运行,无需本地 GPU。必须拥有 OpenAI 账户、API Key、Organization Id 以及具有 Codex 引擎访问权限的 Engine Id(如 code-davinci-002)。需根据使用的 Shell(PowerShell, Z shell, Bash)执行特定的安装脚本。首次使用需配置默认组织以获取 Codex 引擎访问权。
python3.7.1+
openai
Codex-CLI hero image

快速开始

Codex CLI - 自然语言命令行界面

该项目使用 GPT-3 Codex 将自然语言命令转换为 PowerShell、Z shell 和 Bash 中的命令。

Codex Cli GIF

命令行界面(CLI)是我们最早用于与机器交互的主要用户界面。它功能强大,几乎可以完成任何任务,但要求用户以极其精确的方式表达意图。用户需要 掌握计算机的语言

随着大型语言模型(LLMs)的出现,尤其是那些经过代码训练的模型,现在可以使用自然语言(NL)与命令行界面进行交互。实际上,这些模型对自然语言和代码的理解都足够好,能够实现两者之间的翻译。

本项目旨在提供跨 Shell 的自然语言到代码的体验,让用户能够用自然语言与他们喜欢的命令行界面互动。用户输入一个命令,比如“我的 IP 地址是多少”,然后按下 Ctrl + G,就会得到一条针对当前 Shell 的惯用命令建议。该项目直接使用了 GPT-3 Codex 模型,这意味着该模型并未专门针对此任务进行过训练。相反,我们依靠一种称为提示工程的技术(见下文 [提示工程与上下文文件] 部分),来引导 Codex 生成正确的命令。

注意:该模型仍可能出错!如果您不理解某个命令,请不要执行它。如果您不确定某个命令的作用,请按 Ctrl + C 取消执行。

该项目在技术上受到了 zsh_codex 项目的启发,并扩展了其功能,使其能够支持多种 Shell,同时还可以自定义传递给模型的提示(详见下方的提示工程部分)。

项目目的

本仓库旨在通过提供一个实现示例以及相关参考资料,帮助大家更好地理解如何在应用程序中使用 Codex,并为 2022 年微软 Build 大会 提供支持。本项目并非计划发布的正式产品。因此,本仓库不用于讨论 OpenAI API 或请求新功能。

系统要求

安装

请按照 此处 的说明,为 PowerShell、Bash 或 Z shell 进行安装。

使用方法

配置好您偏好的 Shell 后,您可以通过在 Shell 中输入以 # 开头的注释,然后按下 Ctrl + G 来使用 Codex CLI。

Codex CLI 支持两种主要模式:单轮对话和多轮对话。

默认情况下,多轮对话模式是关闭的。您可以通过输入 # start multi-turn# stop multi-turn 命令来切换该模式。

如果启用多轮对话模式,Codex CLI 会“记住”与模型之前的交互记录,允许您引用之前的操作和实体。例如,如果您让 Codex CLI 将时区更改为山地时间,然后又说“把它改回太平洋时间”,模型会根据之前的交互内容知道这里的“它”指的是用户的时区:

# 将我的时区更改为山地时间
tzutil /s "Mountain Standard Time"

# 把它改回太平洋时间
tzutil /s "Pacific Standard Time"

该工具会创建一个 current_context.txt 文件来记录过去的交互,并在每次后续命令时将其传递给模型。

当多轮对话模式关闭时,该工具不会保留交互历史。使用多轮模式有利有弊——虽然它可以实现强大的上下文解析能力,但也增加了额外的开销。例如,如果模型生成了错误的脚本,用户就需要从上下文中移除该脚本,否则未来的对话很可能会再次生成错误的脚本。而在多轮模式关闭的情况下,模型的行为将是完全确定性的——相同的命令总是会产生相同的结果。

每当模型似乎持续输出错误的命令时,您可以使用 # stop multi-turn 命令来停止模型记住之前的交互,并加载默认的上下文。或者,您也可以使用 # default context 命令,在保持多轮模式开启的同时达到同样的效果。

命令列表

命令 描述
start multi-turn 开启多轮对话模式
stop multi-turn 关闭多轮对话模式并加载默认上下文
load context <filename> contexts 文件夹加载指定的上下文文件
default context 加载默认的 Shell 上下文
view context 在文本编辑器中打开上下文文件
save context <filename> 将上下文文件保存到 contexts 文件夹;若未指定文件名,则使用当前日期和时间作为文件名
show config 显示当前与模型交互的配置
set <config-key> <config-value> 设置与模型交互的配置

您可以使用 set 命令调整令牌限制、引擎 ID 和温度等参数,以优化使用体验。例如,# set engine cushman-codex# set temperature 0.5# set max_tokens 50

提示工程与上下文文件

本项目采用一种称为“提示工程”的技术,引导 GPT-3 Codex 根据自然语言生成命令。具体来说,我们会向模型提供一系列自然语言到命令的示例,以便它了解应该生成哪种类型的代码,并促使它生成符合您当前 Shell 习惯的命令。这些示例存储在 contexts 目录中。以下是 PowerShell 上下文的一个片段:

# 纽约的天气怎么样?
(Invoke-WebRequest -uri "wttr.in/NewYork").Content

# 创建一个包含 node_modules 和 src 的 .gitignore 文件
"node_modules
src" | Out-File .gitignore

# 在记事本中打开它
notepad .gitignore

请注意,该项目将自然语言命令建模为注释,并提供了我们期望模型编写的 PowerShell 脚本示例。这些示例包括单行补全、多行补全以及多轮补全(“在记事本中打开它”的例子指的是上一轮生成的 .gitignore 文件)。

当用户输入一条新命令(例如“我的 IP 地址是多少”)时,我们会简单地将该命令作为注释追加到上下文中,并让 Codex 生成接下来应该执行的代码。通过查看上述示例,Codex 就会知道应该编写一段满足该注释要求的简短 PowerShell 脚本。

构建您自己的上下文

本项目预装了适用于每种 Shell 的上下文,以及一些具有其他功能的附加上下文。除此之外,您还可以构建自己的上下文,以引导模型产生您期望的行为。例如,如果您希望 Codex CLI 生成 Kubernetes 脚本,您可以创建一个新的上下文,其中包含命令示例以及模型可能生成的 kubectl 脚本:

# 创建一个名为 my-cs 的 K8s 集群 IP,运行在 5678:8080 端口
kubectl create service clusterip my-cs --tcp=5678:8080

将您的上下文添加到 contexts 文件夹中,并运行 load context <filename> 来加载它。您也可以在 src\prompt_file.py 中更改默认上下文文件。

需要注意的是,Codex 经常能够在没有任何示例的情况下生成正确的脚本。由于它接受了大量代码语料的训练,通常能够知道如何生成特定的命令。不过,构建您自己的上下文有助于引导模型生成您所期望的特定类型脚本——无论是长脚本还是短脚本,是否声明变量,是否引用之前的命令等。您还可以提供自己 CLI 命令和脚本的示例,以向 Codex 展示它应该考虑使用的其他工具。

需要特别注意的一点是,如果您添加了一个新的上下文,请保持多轮模式开启,以避免自动回退到默认设置(这一机制是为了防止错误的上下文破坏您的使用体验而引入的)。

我们还添加了一个 认知服务上下文,该上下文使用认知服务 API 提供文本转语音类型的响应作为示例。

故障排除

使用 DEBUG_MODE 可以使用终端输入代替标准输入,并调试代码。这在添加新命令以及理解工具为何无响应时非常有用。

有时,openai 包会抛出工具无法捕获的错误。您可以在 codex_query.py 文件末尾添加一个捕获块来处理此类异常,并打印自定义错误信息。

常见问题解答

我可以使用哪些 OpenAI 引擎?

根据您的 OpenAI 组织,您可能可以访问不同的 OpenAI 引擎。要检查您可用的引擎,可以查询 列出引擎的 API 获取可用引擎列表。以下是相关命令:

  • Shell

    curl https://api.openai.com/v1/engines \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      -H 'OpenAI-Organization: YOUR_ORG_ID'
    
  • PowerShell

    PowerShell v5(Windows 自带的默认版本)

    (Invoke-WebRequest -Uri https://api.openai.com/v1/engines -Headers @{"Authorization" = "Bearer YOUR_API_KEY"; "OpenAI-Organization" = "YOUR_ORG_ID"}).Content
    

    PowerShell v7

    (Invoke-WebRequest -Uri https://api.openai.com/v1/engines -Authentication Bearer -Token (ConvertTo-SecureString "YOUR_API_KEY" -AsPlainText -Force) -Headers @{"OpenAI-Organization" = "YOUR_ORG_ID"}).Content
    

我能在 Azure 上运行这个示例吗?

目前,该示例代码可以与 OpenAI 的 API 上的 Codex 一起使用。在未来几个月内,该示例将会更新,以便您也可以将其与 Azure OpenAI 服务 一起使用。

常见问题

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

154.3k|★★☆☆☆|今天
开发框架Agent语言模型

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|4天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|1周前
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|3天前
图像数据工具视频