开发 AI Agent CLI,Python、TypeScript、Rust、Go 怎么选?12 款明星项目给出了答案
开发 AI Agent CLI,Python、TypeScript、Rust、Go 怎么选?12 款明星项目给出了答案
如果你准备开发一个面向 AI Agent 的命令行工具(CLI),第一个要做的技术决策就是选语言。选错了,后面每一步都是代价。
与其泛泛而谈各语言的优劣,不如直接看市场上跑出来的选手们选了什么、为什么这么选。我把 GitHub 上最火的 12 款 Agent CLI 拉了个清单,用数据说话。
本文提纲
- 12 款 Agent CLI 语言全景图
- TypeScript 阵营:从开发效率到分发体验的全能选手
- Python 阵营:AI 原住民的直觉选择
- Rust 阵营:性能至上主义者的逆袭
- Go:缺席的种子选手
- 四维度横向对比:生态、性能、分发、开发效率
- 选型决策树
12 款 Agent CLI 语言全景图
先上数据。以下是截至 2026 年 5 月 GitHub 上最具代表性的 Agent CLI 项目:
| 项目 | 开发者 | ⭐ Stars | 主语言 | 定位 |
|---|---|---|---|---|
| Claude Code | Anthropic | 128K | TypeScript | 终端编程 Agent |
| Gemini CLI | 105K | TypeScript | 官方命令行 Agent | |
| Codex CLI | OpenAI | 87K | Rust | 终端编程 Agent |
| OpenHands | All-Hands-AI | 75K | Python | 多 Agent 编排平台 |
| Cline | 社区 | 63K | TypeScript | VS Code Agent 插件 |
| goose | Block | 46K | Rust | 开源自主 Agent |
| Aider | Paul Gauthier | 46K | Python | 终端结对编程 |
| DeepSeek TUI | Hmbown | 36K | Rust | 终端编程 Agent |
| Continue | Continue.dev | 33K | TypeScript | IDE Agent 插件 |
| SWE-Agent | Princeton NLP | 19K | Python | 学术研究 Agent |
| avante.nvim | yetone | 18K | Lua | Neovim Agent 插件 |
| Amazon Q CLI | AWS | 2K | Rust | 官方命令行助手 |
按语言分组统计:
| 语言 | 项目数 | 总 Stars | 代表项目 |
|---|---|---|---|
| TypeScript | 4 | 329K | Claude Code、Gemini CLI、Cline、Continue |
| Rust | 4 | 171K | Codex CLI、goose、DeepSeek TUI、Amazon Q CLI |
| Python | 3 | 140K | OpenHands、Aider、SWE-Agent |
| Lua | 1 | 18K | avante.nvim |
| Go | 0 | — | 无主流项目 |
数据揭示了一个很明确的格局:TypeScript 是当前 Agent CLI 的头号语言,不仅在项目数上和 Rust 并列,总 Star 数更是遥遥领先。Python 在 AI 研究和快速原型场景依然强势,Rust 则是大厂追求性能和安全的首选。
TypeScript 阵营:从开发效率到分发体验的全能选手
TypeScript 是这轮 Agent CLI 浪潮的最大赢家。四个项目加起来超过 32 万 Star,Top 2 全是 TypeScript。
为什么选 TypeScript
Claude Code 是 Anthropic 的旗舰产品,128K Star 位居榜首。很多人以为它是 Python 写的——GitHub 仓库里确实有大量 Python 代码(评估框架和测试脚本),但 CLI 本体是 TypeScript,基于 Bun 运行时编译为原生二进制分发(240MB 单文件,通过 npm 安装)。这个架构选择透露了 Anthropic 的思路:
- TypeScript 的类型系统让复杂的 Agent 状态管理(工具调用链、上下文窗口、多轮对话)变得可靠
- 通过 Bun 编译成单二进制,兼顾了 JS 生态的开发效率和原生二极型的分发体验
- npm 作为分发渠道,覆盖了全球绝大多数开发者
Gemini CLI 是 Google 官方出品,105K Star。选 TypeScript 的理由同样直接:
npx @google/gemini-cli一行命令即可使用,分发体验极佳- TypeScript 的异步模型(
async/await)天然适合 Agent 的请求-响应循环 - Google 内部的前端工具链本身就是 TypeScript 生态
Cline(63K Star)和 Continue(33K Star)都是 IDE 插件型 Agent。TypeScript 是 VS Code 扩展的唯一选择——这代表了一类特殊的 Agent CLI:嵌入式 Agent,不是独立运行在终端,而是寄生在 IDE 里。核心逻辑在 VS Code 扩展和独立 CLI 之间共享,一套代码两种形态。
TypeScript 的架构进化
Claude Code 的 Bun 编译方案值得单独说。传统上,TypeScript CLI 最大的诟病是"需要 Node.js 运行时"——用户得先装 Node,再 npm install,启动还慢。Bun 的单二进制编译直接解决了这个问题:开发者用 TypeScript 写代码,用户拿到的是一个 240MB 的原生可执行文件,无需任何运行时。这是 TypeScript 在 CLI 领域的重要进化。
Python 阵营:AI 原住民的直觉选择
Python 阵营项目数从表面看少了,但每一个都是细分领域的王者。
为什么选 Python
Aider 是 Paul Gauthier 的个人项目,46K Star。它可能是最"纯粹"的 Python Agent CLI——单文件起步,快速迭代。Aider 的成功恰恰证明了 Python 在个人开发者场景下的优势:一个人、几周时间,就能做出一个能和 Anthropic、OpenAI 大型团队产品竞争的工具。
OpenHands(前身 OpenDevin)走的是平台化路线,75K Star。Python 的 Web 生态(Flask/FastAPI)让它在架构上天然支持前后端分离、多 Agent 编排。
SWE-Agent 来自 Princeton NLP,19K Star,学术出身。Python 在学术界的主导地位让它成为不二之选——论文的复现、数据集的处理、模型的调用,Python 一条龙。
Python 的核心优势
Python 的杀手锏是 AI/ML 生态的完整性。tiktoken 分词、anthropic/openai SDK、transformers 模型加载、langchain 编排——所有 Agent 开发需要的基础设施,Python 都是第一时间支持。对于研究型、实验型的 Agent 项目,Python 的开箱即用无可替代。
Python 的代价
Python 的短板在性能和分发。pip install 的体验不如 npx 稳定,Python 环境管理(venv、conda、pyenv)对新手是门槛。但对于 Agent CLI 来说,瓶颈永远在网络 I/O(等 LLM 返回),而不是本地计算——这让 Python 的性能劣势被大大稀释了。
Rust 阵营:性能至上主义者的逆袭
Rust 阵营是 2025-2026 年增长最快的,四个项目总计 171K Star。更值得关注的是——OpenAI 的 Codex CLI 是从 TypeScript 重写为 Rust 的,这是最强有力的技术选型信号。
为什么选 Rust
OpenAI Codex CLI 的语言分布数据很有意思:Rust 代码占 32.6MB,Python 占 0.99MB(测试/CI),TypeScript 仅 0.08MB。从 TypeScript 重写为 Rust,OpenAI 的理由:
- Agent CLI 需要处理大量本地文件操作(读代码、写代码、搜索文件),Rust 的零成本抽象让这些操作比 Node.js 快 10-100 倍
- 沙箱安全是 Agent 的核心需求,Rust 的内存安全保证了隔离层的可靠性
- 编译成单个二进制文件,无需运行时依赖,分发体验极佳
goose(Block/Square 出品,46K Star)的数据更耐人寻味:Rust 6.36MB + TypeScript 3.0MB。Rust 是核心引擎,TypeScript 负责 IDE 扩展——这是一个很聪明的混合架构。
DeepSeek TUI(36K Star)选 Rust 的原因很纯粹:终端 UI 渲染性能。一个流畅的 TUI 界面对用户体验的影响,远超大多数人的想象。
Amazon Q Developer CLI(AWS 出品,2K Star)选 Rust 则是出于企业级考量:在受限环境中部署,单二进制、无依赖、低内存占用是硬性要求。
Rust 的代价
开发效率。Rust 的学习曲线、编译时间、借用检查器,让快速迭代变得困难。对于需要频繁调整 Agent 策略、快速验证新想法的团队,Rust 的迭代速度可能成为瓶颈。
Go:缺席的种子选手
Go 在 CLI 工具领域有着辉煌的历史——Docker、Kubernetes、Terraform、gh(GitHub CLI)都是 Go 写的。但在 Agent CLI 领域,Go 几乎缺席。
这不是 Go 的问题,而是 Agent 场景的特殊性:
- AI/ML 生态薄弱:Go 没有 Python 那样的
transformers、langchain、tiktoken,也没有 TypeScript 的vscodeAPI - 字符串处理不擅长:Agent 80% 的工作是处理文本(prompt、response、diff),Go 的字符串处理不如 Python/TypeScript 方便
- 泛型来得太晚:Go 1.18 才有泛型,很多 Agent 框架需要复杂的类型抽象
但 Go 有一个被低估的优势:交叉编译。GOOS=linux GOARCH=amd64 go build 一行命令生成任何平台的二进制。如果 Agent CLI 需要在异构环境中大规模部署,Go 的分发能力仅次于 Rust。
我的判断:Go 不会成为 Agent CLI 的主流语言,但在基础设施层(Agent 编排、任务队列、API Gateway)会有一席之地。
四维度横向对比
1. 开发生态
| 维度 | Python | TypeScript | Rust | Go |
|---|---|---|---|---|
| LLM SDK | ★★★★★ | ★★★★☆ | ★★★☆☆ | ★★☆☆☆ |
| 文本处理 | ★★★★★ | ★★★★☆ | ★★★☆☆ | ★★★☆☆ |
| Web/API | ★★★★★ | ★★★★★ | ★★★☆☆ | ★★★★★ |
| IDE 集成 | ★★☆☆☆ | ★★★★★ | ★★☆☆☆ | ★★☆☆☆ |
| 包管理 | ★★★☆☆ | ★★★★★ | ★★★★☆ | ★★★★☆ |
Python 在 LLM SDK 和文本处理上遥遥领先。TypeScript 在 IDE 集成上有独占优势。Rust 和 Go 的 LLM SDK 生态还在追赶阶段。
2. 运行性能
| 维度 | Python | TypeScript | Rust | Go |
|---|---|---|---|---|
| 文件 I/O | ★★☆☆☆ | ★★★☆☆ | ★★★★★ | ★★★★☆ |
| 并发处理 | ★★☆☆☆ | ★★★☆☆ | ★★★★★ | ★★★★★ |
| 内存占用 | ★★☆☆☆ | ★★★☆☆ | ★★★★★ | ★★★★☆ |
| 启动速度 | ★★★☆☆ | ★★★☆☆ | ★★★★★ | ★★★★★ |
Rust 在性能维度全面领先。但再次强调——Agent CLI 的瓶颈在等 LLM 返回(通常 1-30 秒),本地计算的毫秒级差异用户感知不到。TypeScript 通过 Bun 编译后,启动速度和内存占用也有显著改善。
3. 分发体验
| 维度 | Python | TypeScript | Rust | Go |
|---|---|---|---|---|
| 安装便捷度 | ★★★☆☆ | ★★★★★ | ★★★★☆ | ★★★★★ |
| 交叉编译 | ★☆☆☆☆ | ★★☆☆☆ | ★★★★☆ | ★★★★★ |
| 二进制大小 | ★★☆☆☆ | ★★☆☆☆ | ★★★★☆ | ★★★★★ |
| 运行时依赖 | ★☆☆☆☆ | ★★★★☆ | ★★★★★ | ★★★★★ |
TypeScript 通过 npm 分发体验最好(Claude Code 的 Bun 编译方案解决了运行时依赖问题)。Rust 编译成单二进制,Go 天然支持交叉编译,两者在"零依赖"场景下胜出。Python 需要 Python 环境,是最大的扣分项。
4. 开发效率
| 维度 | Python | TypeScript | Rust | Go |
|---|---|---|---|---|
| 原型速度 | ★★★★★ | ★★★★☆ | ★★☆☆☆ | ★★★★☆ |
| 调试体验 | ★★★★★ | ★★★★☆ | ★★★☆☆ | ★★★★☆ |
| 团队扩展 | ★★★★★ | ★★★★★ | ★★☆☆☆ | ★★★★☆ |
| 招聘难度 | ★★★★★ | ★★★★★ | ★★☆☆☆ | ★★★★☆ |
Python 和 TypeScript 在开发效率上远超 Rust。Rust 招聘难、上手慢、迭代周期长,这对小团队是致命的。
选型决策树
废话少说,直接上结论:
你要做什么类型的 Agent CLI?
│
├─ 终端编程 Agent(类似 Claude Code/Codex)
│ ├─ 追求开发效率和生态 → TypeScript(Bun 编译分发)
│ ├─ 追求极致性能和安全 → Rust
│ └─ 快速验证/学术研究 → Python
│
├─ IDE 插件 Agent(类似 Cline/Continue)
│ └─ TypeScript(没有其他选择)
│
├─ 平台/服务型 Agent(类似 OpenHands)
│ ├─ 需要前后端 → Python(FastAPI + React)
│ └─ 纯后端服务 → Go 或 Rust
│
├─ 研究/实验型 Agent(类似 SWE-Agent)
│ └─ Python(学术生态 + 快速验证)
│
└─ 嵌入式/边缘部署 Agent
└─ Rust 或 Go(低资源、单二进制)我的建议
如果你是个人开发者或小团队:选 TypeScript 或 Python。TypeScript 的分发体验更好(npm + Bun 编译),Python 的 AI 生态更完整。两个都是快速迭代的利器。Aider 用 Python 做到了 46K Star,Cline 用 TypeScript 做到了 63K Star——语言不是决定性因素,产品力才是。
如果你是大厂团队:Rust 值得认真考虑。OpenAI 从 TypeScript 重写到 Rust,这个信号太强了。当项目进入成熟期,性能、安全、分发都会变成硬约束,Rust 的前期投入会在后期收回。
如果你做 IDE 插件:TypeScript 是唯一答案。
如果你做基础设施:Go 是最佳选择。Agent 编排、任务调度、API Gateway 这类底层服务,Go 的并发模型和部署便利性无可替代。
作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。