Files
2025-11-29 18:24:37 +08:00

5.6 KiB
Raw Permalink Blame History

name, description
name description
external-tools-reference 完整的外部CLI工具参考指南 - 包含所有工具的安装、配置和使用示例

外部工具完整参考指南

核心理念: 整合 > 创造

外部CLI工具是成熟的、社区验证的工具,我们不应重新实现而应直接集成到ai-runtime工具装备系统中。

工具分类

基础必备(所有用户都应安装)

这些工具提供日常开发的核心功能,建议优先安装

工具 ID 用途 安装难度 推荐度
fzf EXT-FZF-001 模糊查找和交互 简单
eza EXT-EZA-001 文件列表替代ls 简单
zoxide EXT-ZOXIDE-001 智能目录跳转 简单
fd EXT-FD-001 文件搜索替代find 简单
bat EXT-BAT-001 文件查看替代cat 简单
ripgrep EXT-RG-001 代码搜索替代grep 简单
starship EXT-STEAMSHIP-001 Shell提示符 简单

进阶推荐(提升效率)

工具 ID 用途 推荐度
jq EXT-JQ-001 JSON查询和处理
zellij EXT-ZELLIJ-001 终端复用替代tmux
procs EXT-PROCS-001 进程查看替代ps

专家级(特定场景)

工具 ID 用途 推荐度
just EXT-JUST-001 任务运行器替代make
hyperfine EXT-HYPERFINE-001 性能基准测试
delta EXT-DELTA-001 Git diff美化
xh EXT-XH-001 HTTP客户端替代curl

一键安装脚本

macOS (使用Homebrew)

brew install fzf eza zoxide fd bat ripgrep jq just hyperfine git-delta xh

Ubuntu/Debian

# 基础工具
sudo apt-get install fzf ripgrep jq

# eza需要添加源
sudo apt-get install -y gpg wget
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/gierens.gpg
echo "deb http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
sudo apt-get update
sudo apt-get install -y eza

# zoxide
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh

# fd
sudo apt-get install fd-find
ln -s $(which fdfind) ~/.local/bin/fd

# bat
sudo apt-get install bat

# just
cargo install just

# hyperfine
cargo install hyperfine

个人工具箱建议

最小工具箱4个

适合新手,提供基础文件和导航功能:

fzf + eza + zoxide + fd

完整工具箱10个

适合日常开发覆盖90%场景:

fzf + eza + zoxide + fd + bat + ripgrep + starship + jq + xh + delta

终极工具箱15+个)

适合高级用户和工具链爱好者:

所有上面工具 + zellij + just + hyperfine + procs + ...

整合到ai-runtime

1. 在discover-toolkit.py中添加检测

扩展discover-toolkit.py使其能够检测系统已安装的CLI工具

# 在discover-toolkit.py中添加
EXTERNAL_TOOLS = {
    'fzf': {'category': 'search', 'priority': 'essential'},
    'eza': {'category': 'file-listing', 'priority': 'essential'},
    'zoxide': {'category': 'navigation', 'priority': 'essential'},
    # ...
}

def detect_external_tools():
    """检测已安装的外部工具"""
    installed = []
    for tool, meta in EXTERNAL_TOOLS.items():
        if shutil.which(tool):
            installed.append({
                'name': tool,
                'category': meta['category'],
                'priority': meta['priority'],
                'installed': True
            })
    return installed

2. 在脚本中使用

示例在runtime-explore.sh中

# 使用fzf选择文件
FILE=$(fd .py | fzf --preview 'bat -n --color=always {}')
read_file_content "$FILE"

3. 配置检查

在系统初始化时检查关键工具是否安装:

# check-tools.sh
for tool in fzf eza zoxide fd bat rg jq; do
    if ! command -v $tool &> /dev/null; then
        echo "❌ $tool 未安装 - 运行: brew install $tool"
    else
        echo "✅ $tool 已安装 ($(which $tool))"
    fi
done

维护策略

定期检查

建议每月检查一次:

  • 工具是否有新版本发布
  • 安全漏洞通告
  • 社区推荐变化

更新策略

  • 基础工具fzf, eza, zoxide, fd: 建议始终使用最新版
  • 进阶工具jq, bat, ripgrep: 根据需求更新
  • 专家工具zellij, just: 有新功能时再更新

废弃管理

  • 记录工具替代关系如ripgrep → grep
  • 在元数据中标记"replaced_by"
  • 保持向后兼容

参考资源

相关文档

  • 查看工具详情: @docs/tools/external/fzf.md
  • 查看创建工具指南: @docs/guides/creating-tools.md
  • 查看工具分类说明: @docs/references/tool-categories.md

最后更新: 2025-11-14 下次审查: 2025-12-14 维护者: CodeConscious 状态: Active