cli-power-tools について
cli-power-toolsは、検索、ファイル、構造化データ、HTTPツールを使ったコマンドライン作業を案内するスキルです。コードベースの分析やデータ変換などの端末ワークフローを支援します。
主な機能
- 01rgとfdによるテキスト・ファイル検索
- 02batとezaによるファイル表示
- 03jqとyqによるJSON・YAML変換
- 04Nushellによる構造化データパイプライン
- 05xhによるHTTPリクエスト
活用シーン
- 01リポジトリ全体の検索とコード追跡
- 02条件に合うファイルの一括リファクタリング
- 03JSONやYAMLデータの変換
- 04APIのデバッグとログ解析
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill cli-power-toolsインストール後、Claude Code で/cli-power-toolsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/advanced-regex-and-jq.mdmodern-unix-toolbox.mdnushell-structured-data.md詳細
Utility Pro
概要
未加工のテキストや非構造化データを実用的な知見へと変換し、コマンドライン環境を使いこなせるようにします。Rust 製の検索ツール(ripgrep、fd、bat)、構造化データ向けシェル(Nushell)、JSON 操作ツール(jq/yq)、最新の HTTP クライアント(xh)を組み合わせ、高性能な CLI ワークフローを実現します。
基本理念: 旧来のテキスト解析パイプライン(grep/awk/sed の連結)を、データ構造を理解する専用ツールに置き換えます。ripgrep は gitignore のルールを理解し、fd はファイルの種類を理解し、jq は JSON を理解し、Nushell はテーブルを理解します。
使用する場面: コードベース全体の検索と分析、複数ファイルのリファクタリング、JSON/YAML の変換パイプライン、API のデバッグ、ディレクトリの移動、ログの解析、ディスク使用量の監査、依存関係の追跡。
使用しない場面: GUI ベースのタスク、複雑なアプリケーションロジック(代わりにスクリプトを作成してください)、対話的なプロンプトが必要なタスク。
クイックリファレンス
| パターン | ツール/コマンド | 主なポイント |
|---|---|---|
| テキスト検索 | rg "pattern" -g "*.tsx" | grep より 10~100 倍高速で、.gitignore を尊重します |
| ファイル検索 | fd -e pdf or fd "pattern" | 賢いデフォルト設定を備えた、find の高速な代替手段 |
| 構文強調表示付きの読み取り | bat file.ts | 構文強調表示と git 統合に対応した Cat |
| ディレクトリへのジャンプ | z project-name | よく訪れるディレクトリを記憶します |
| あいまい検索 | fzf or CTRL-T / CTRL-R | ファイルや履歴を対話形式で選択できます |
| ツリー表示 | eza --tree --level=2 | ツリー表示に対応した、メタデータ豊富な ls の代替 |
| JSON クエリ | jq '.items[] | select(.active)' | JSON に対する完全な関数型プログラミング |
| YAML クエリ | yq '.config.database' file.yml | YAML ファイル向けの jq 風構文 |
| HTTP リクエスト | xh POST api.example.com/v1/data key=value | 色付きで使いやすい HTTP クライアント |
| 複数ファイルのリファクタリング | fd -e tsx -x sed -i 's/Old/New/g' {} | ファイルを検索してから変換を実行します |
| 構造化シェル | ls | where size > 1mb | sort-by size | テキスト解析の代わりに Nushell のテーブルを使用します |
| ログ解析 | rg "ERROR" --json | jq 'select(.type == "match") | .data.lines.text' | ripgrep の JSON 出力と jq のフィルターを組み合わせます |
| 検索付きファイルプレビュー | fzf --preview 'bat --color=always {}' | 構文強調表示付きのプレビューでファイルを閲覧できます |
| 最近変更されたファイルの検索 | fd --changed-within 1h | 指定した時間内に変更されたファイルを検索します |
| ファイルごとのエクスポート数 | rg -c "pattern" -g "*.ts" | sort -t: -k2 -rn | ファイルごとの一致数を数え、頻度順に並べ替えます |
| JSON 形式への変換 | yq -o json config.yml | YAML、JSON、CSV などの形式間で変換します |
| 高度な正規表現検索 | rg -P "(?<=function\s)\w+" --only-matching | 先読み/後読みパターンに PCRE2 を使用します |
| Git 対応ファイル一覧 | eza -la --git --icons | インラインの git ステータスとともにファイルのメタデータを表示します |
ツールの概要
| カテゴリ | モダンなツール | 置き換えるツール | 主な利点 |
|---|---|---|---|
| テキスト検索 | ripgrep (rg) | grep, ag, git grep | 速度、.gitignore の認識、Unicode |
| ファイル検索 | fd | find | スマートなデフォルト、正規表現、並列処理 |
| ファイルビューアー | bat | cat, less | 構文のハイライト、git diff マーカー |
| ディレクトリ移動 | zoxide (z) | cd, autojump | 頻度と新しさに基づくランキング、fzf によるフォールバック |
| あいまい検索 | fzf | 手動のパイプ処理 | あらゆるリストに使える汎用セレクター |
| ファイル一覧 | eza | ls, tree | ツリービュー、git のステータス、アイコン |
| JSON 処理 | jq | awk, python のワンライナー | 型付きの関数型 JSON 変換 |
| YAML 処理 | yq | YAML に対する sed | YAML 用の jq 互換構文 |
| HTTP クライアント | xh | curl, httpie | HTTPie 構文、Rust の速度、単一バイナリ |
| 構造化シェル | Nushell | bash + awk/sed | 型付きテーブル、ネイティブな形式変換 |
よくある間違い
| 間違い | 正しい方法 |
|---|---|
コードベースの検索に ripgrep ではなく grep を使う | rg を使います。10~100 倍高速で、デフォルトで .gitignore を尊重します |
ファイルを絞り込むために ls の出力を grep に渡す | ファイルの検出には fd を、一覧表示には eza -D または eza --ignore-glob を使います |
構造化データの処理に複雑な awk スクリプトを書く | JSON、CSV、YAML をネイティブに扱える Nushell または jq を使います |
ドライランなしでスクリプト内の rm -rf を実行する | 破壊的な操作の前に、必ず検証またはドライランの手順を追加します |
| 不要な場合にも正規表現でキャプチャグループを使う | 大規模なスキャンでのパフォーマンスを高めるため、非キャプチャグループ (?:...) を優先します |
node_modules または .git ディレクトリを検索する | デフォルトでこれらをスキップする rg を使うか、除外対象を明示的に設定します |
rg --json で select(.type == "match") を忘れる | ripgrep の JSON 出力には、begin、match、context、end、summary の各メッセージ型があります |
詳細なフラグ構文で curl を使う | 色付きの出力と HTTPie 互換のリクエスト項目構文を提供する xh を使います |
ツール間のテキスト出力を cut/tr で解析する | すべての段階で構造化データを保持する Nushell のパイプラインを使います |
正規表現の先頭に .* を付けて固定する | 可能な場合は ^ で固定します。固定されていない .* はバックトラッキングの負荷を高めます |
インストール
すべてのツールは一般的なパッケージマネージャーから利用できます。ほとんどのツールは、静的リンクされた単一のバイナリです。
| ツール | macOS(Homebrew) | Linux(apt/cargo) |
|---|---|---|
| ripgrep | brew install ripgrep | apt install ripgrep または cargo install ripgrep |
| fd | brew install fd | apt install fd-find または cargo install fd-find |
| bat | brew install bat | apt install bat または cargo install bat |
| zoxide | brew install zoxide | cargo install zoxide |
| fzf | brew install fzf | apt install fzf |
| eza | brew install eza | cargo install eza |
| jq | brew install jq | apt install jq |
| yq | brew install yq | snap install yq または go install |
| xh | brew install xh | cargo install xh |
| Nushell | brew install nushell | cargo install nu |
シェル連携(インストール後、シェルの設定に追加します):
| ツール | 必要なシェル連携 |
|---|---|
| zoxide | eval "$(zoxide init zsh)"(または bash/fish 用の同等のコマンド) |
| fzf | fzf のインストール時に、キーバインドと補完のスクリプトを読み込みます |
委任
- 大規模なコードベースの検索と分析:
Exploreエージェントを使って ripgrep クエリを実行し、依存関係をたどり、コードパターンを把握します - 複数ファイルにわたるリファクタリングのワークフロー:
Taskエージェントを使って、プロジェクト全体にわたる fd、sed、検証の手順を調整します - データ変換のパイプラインアーキテクチャ:
Planエージェントを使って、jq、Nushell、API ツールを組み合わせた構造化パイプラインを設計します
参考資料
- 最新の Unix ツールボックス -- ripgrep、fd、bat、zoxide、fzf、eza、ターミナルのセットアップ
- 高度な正規表現と jq -- 名前付きキャプチャ、先読み/後読み、jq フィルター、統合パイプライン
- Nushell による構造化データ -- テーブルパラダイム、API 連携、スクリプト作成、Unix 相互運用