2026年GitHub CLI工具推荐:从Token优化到模糊搜索的三把利器
命令行是开发者的主战场。在2026年,随着AI编程Agent的普及和终端工具链的持续进化,CLI工具生态迎来了新一轮繁荣。从专门为AI Agent节省Token的代理工具,到经典的模糊搜索神器,再到现代化的文件查找替代品——优秀的CLI工具正在重新定义开发者的终端体验。
今天我们精选三个在GitHub上备受推崇的CLI工具,它们分别代表了终端工具链的三个关键方向:AI时代的成本优化、交互式搜索体验和经典命令的现代化重写。
一、RTK(Rust Token Killer):为AI Agent省Token的CLI代理
- GitHub: https://github.com/rtk-ai/rtk
- Stars: 47K+
- 语言: Rust
- 定位: AI编程Agent的CLI输出过滤代理
核心功能
RTK是一个用Rust编写的单二进制CLI工具,它透明地拦截AI编程Agent执行的Shell命令,在输出返回给LLM之前进行过滤,从而减少60-90%的Token消耗。
工作原理非常精巧:
- CLI代理模式:当Agent执行
git status时,RTK拦截该命令,运行真实命令,过滤掉噪音输出,只返回LLM需要的核心信息 - 重写注册表:70+个预定义模式将原始命令映射为RTK等价命令,这是所有Agent钩子的单一真相来源
- Agent钩子:为Claude Code、Copilot CLI、Gemini CLI、Cursor等提供轻量级钩子脚本,自动将命令重写为RTK版本
- rtk discover:扫描过去的Agent会话,找出未使用RTK的命令并估算错过的Token节省量
- rtk gain:展示当前项目的Token节省汇总
- rtk learn:检测会话中重复的CLI错误并建议修复
RTK支持100+个常见命令,开销不到10ms,对Agent和用户的工作流程完全透明。
安装方式
# 一键安装
curl -fsSL https://rtk-ai.app/install.sh | sh
# 初始化(自动检测并安装所有已安装Agent的钩子)
rtk init
# 只为特定Agent安装钩子
rtk init --agent claude
# 验证效果
rtk git status # 过滤后的输出
rtk cargo test # 过滤后输出,约90% Token减少
rtk rewrite "git log" # 打印: rtk git log
使用示例
# 直接在命令前加rtk前缀
rtk cargo test -- --nocapture
rtk pytest -x tests/
rtk git log --oneline -20
rtk tsc --noEmit
# 查看节省了多少Token
rtk gain
# 扫描过去30天未使用RTK的会话
rtk discover --days 30 --format json
适用场景
- 使用Claude Code、Copilot CLI、Gemini CLI等AI编程Agent的开发者
- 需要控制LLM API成本的团队(Token消耗直接关系到费用)
- 大型项目中
cargo test、git log等命令输出过长导致上下文溢出的场景
简要评价
RTK是2026年AI工具链中最巧妙的设计之一。它不试图改变Agent的工作方式,而是在Agent和Shell之间插入一层透明的过滤层——Agent看到的还是同样的工作流,但Token消耗大幅下降。对于一个每天跑数百次 cargo test 或 git status 的AI Agent来说,这意味着真金白银的成本节省。47K+的星标数证明了这个痛点足够真实,也足够普遍。
二、fzf:命令行模糊搜索的王者
- GitHub: https://github.com/junegunn/fzf
- Stars: 81K+
- 语言: Go
- 定位: 通用命令行模糊查找器
核心功能
fzf是一个通用的交互式命令行模糊查找器。它可以对任何输入流进行模糊搜索和选择,是终端工作流中不可或缺的"瑞士军刀"。
核心能力包括:
- 交互式模糊匹配:支持多种匹配算法,包括精确匹配、前缀匹配、子串匹配和模糊匹配
- Shell集成:深度集成bash、zsh、fish,提供
Ctrl+R历史命令搜索、Ctrl+T文件搜索、Alt+C目录跳转 - Vim/Neovim集成:作为插件提供文件查找、缓冲区切换、标签跳转等功能
- tmux集成:在tmux popup窗口中弹出fzf界面
- 可扩展性:支持自定义预览命令、自定义动作、自定义外观主题
- 高性能:用Go编写,即时响应,即使在数十万条记录上也能流畅搜索
安装方式
# macOS
brew install fzf
# Linux (Ubuntu/Debian)
sudo apt install fzf
# 通过git安装(获取最新版本)
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
# 启用Shell集成(在 ~/.bashrc 或 ~/.zshrc 中添加)
source <(fzf --bash)
使用示例
# 搜索文件并打开
vim $(fzf)
# 模糊搜索历史命令(交互式)
# 按 Ctrl+R 后输入关键词
# 搜索Git分支并切换
git checkout $(git branch -a | fzf | sed 's/[* ] //g')
# 用fzf搜索并kill进程
kill -9 $(ps aux | fzf | awk '{print $2}')
# 自定义预览:搜索文件时预览内容
fzf --preview 'bat --color=always {}'
# 搜索目录并cd进入
cd $(find . -type d | fzf)
适用场景
- 日常文件查找和打开(比
find+grep快得多) - 命令历史搜索(再也不用狂按上箭头)
- Git分支管理(在数百个分支中快速切换)
- 进程管理(快速定位并终止进程)
- 任何需要从列表中选择一个条目的场景
简要评价
fzf是那种"用了就回不去"的工具。81K的星标数在CLI工具中遥遥领先,原因很简单:它解决了一个普遍而频繁的痛点——从列表中快速找到目标。无论你是搜文件、搜命令、搜分支还是搜进程,fzf都能用极低的认知成本完成任务。如果你的终端还没装fzf,那你的效率至少打了八折。
三、fd:find命令的现代化替代品
- GitHub: https://github.com/sharkdp/fd
- Stars: 43.4K+
- 语言: Rust
- 定位: 现代、快速的文件查找工具
核心功能
fd是一个用Rust编写的 find 命令替代品。它不是为了完全复刻find的每个参数,而是提供一种更直观、更快速、更符合直觉的文件查找体验。
核心特性包括:
- 直观的语法:
fd pattern替代find . -name '*pattern*',无需通配符包裹 - 默认正则匹配:支持现代正则表达式,大小写不敏感(除非pattern中包含大写字母)
- 尊重.gitignore:自动跳过.gitignore中排除的文件,搜索结果更干净
- 彩色输出:不同类型文件以不同颜色显示,一目了然
- 并行目录遍历:利用Rust的多线程能力,比find快数倍
- 智能默认值:不搜索隐藏文件(除非加
-H),不搜索.gitignore排除的文件(除非加-I) - 内置命令执行:
fd -x command可以对每个搜索结果执行命令
安装方式
# macOS
brew install fd
# Linux (Ubuntu/Debian)
sudo apt install fd-find
# 注意:在Ubuntu上二进制名为fdfd,需要alias
alias fd=fdfd
# Arch Linux
sudo pacman -S fd
# 通过Cargo安装
cargo install fd-find
# Windows
scoop install fd
使用示例
# 基本搜索:查找包含"config"的文件
fd config
# 按扩展名搜索
fd -e py # 查找所有.py文件
fd -e js -e ts # 查找所有.js和.ts文件
# 按类型搜索
fd -t f pattern # 只搜文件
fd -t d pattern # 只搜目录
fd -t l pattern # 只搜符号链接
# 包含隐藏文件和gitignore排除的文件
fd -H -I pattern
# 对搜索结果执行命令
fd -e jpg -x convert {} {.}.png # 批量转换图片格式
# 限制搜索深度
fd -d 2 pattern # 最多搜索2层深度
# 修改时间过滤
fd --changed-within 1week # 最近一周修改的文件
fd --changed-before 2026-01-01 # 2026年1月1日前修改的文件
适用场景
- 日常文件查找(替代find的90%使用场景)
- 项目中快速定位配置文件、源码文件
- 批量文件操作(配合
-x参数执行命令) - 脚本中的文件查找逻辑(语法比find简洁得多)
- CI/CD流程中的文件查找
简要评价
fd完美诠释了"更好的默认值"这一设计哲学。它把find那些反直觉的参数(-name需要通配符包裹、默认大小写敏感、默认搜索隐藏文件)全部翻转过来,给用户一个"开箱即合理"的体验。43.4K的星标数在工具类项目中已经非常优秀,而且作为Rust生态的明星项目,它也推动了"用Rust重写经典CLI工具"这一潮流。
总结
| 工具 | Stars | 语言 | 核心价值 | 解决的痛点 |
|---|---|---|---|---|
| RTK | 47K+ | Rust | AI Agent Token过滤 | LLM成本高昂、上下文溢出 |
| fzf | 81K | Go | 交互式模糊搜索 | 从列表中快速选择目标 |
| fd | 43.4K | Rust | 现代化文件查找 | find语法反直觉、速度慢 |
这三个工具分别代表了CLI生态的三个进化方向:
- AI适配层:RTK代表了CLI工具向AI时代演进的新物种——它不是给人用的,而是给AI Agent用的,帮它们更高效地消费Shell输出
- 交互革新:fzf把"搜索"从静态过滤变成了交互式体验,大幅降低了从大量结果中找到目标的认知成本
- 经典重写:fd用Rust重新实现了find,更好的默认值、更快的速度、更现代的语法
值得一提的是,这三个工具中有两个用Rust编写——RTK和fd。Rust正在成为新一代CLI工具的首选语言,其内存安全性、零成本抽象和出色的多线程能力,使其在系统级工具领域有着天然优势。
如果你还没尝试过这些工具,强烈建议今天就开始。终端是开发者每天花时间最多的地方,投资CLI工具的回报率远超你的想象。
本文工具信息基于2026年9月的GitHub数据,star数和功能可能已有更新,请以实际仓库为准。

评论(0)
暂无评论,来抢沙发~
请 登录 后发表评论