Featured image of post treemit: 拡張子でフィルタリングできるツリーコマンド

treemit: 拡張子でフィルタリングできるツリーコマンド

「tree」コマンドを拡張し,拡張子によるフィルタリング機能を追加したCLIツール

treemitとは?

treemitは,Unixのtreeコマンドを拡張したディレクトリ構造可視化ツールです. 従来のtreeコマンドでは扱えなかった「特定の拡張子のファイルだけを表示する」といった操作が行えます.

treemitが便利な場面

  • プロジェクトのファイル構造を一覧したいが,treeでは冗長なファイルが多すぎて見づらい時
  • findやawkを組み合わせたシェルスクリプトも出力がイマイチな時
  • プロジェクトの構造をLLMに伝えたいが,ファイル数が多すぎて上限に引っかかる時

treemitは,このようなAI時代における開発者の日常的なニーズに応えるために開発されました.

インストール(Homebrew)

brew tap Nagaemonn/treemit
brew install treemit

基本的な使い方

基本的なディレクトリツリーの表示

treemit [ディレクトリパス]

特定の拡張子ごとの表示数を制限

treemit -E 2  # 各拡張子ごとに2ファイルまで表示

ディレクトリの深さを制限して表示

treemit -L 2  # 深さ2階層まで表示

すべてのファイルを表示(隠しファイルを含む)

treemit -a

ディレクトリのみを表示

treemit -d

特定のファイルやディレクトリを除外して表示

treemit -I "*.md|venv"  # .mdファイルとvenvディレクトリを除外して表示

オプション一覧

オプション 説明
-a すべてのファイルを表示(隠しファイルを含む)
-d ディレクトリのみを表示
-L, –level ディレクトリツリーの最大深さを指定
-E, –extension 各拡張子ごとの表示数上限を指定
-I, –ignore 指定したパターンに一致するファイル・ディレクトリを除外(パイプで複数指定)
–help ヘルプメッセージを表示

使用例

Goプロジェクトのソースファイル構造を確認

treemit -E 2 ./src  # 各拡張子ごとに2ファイルまで表示

ドキュメントファイルの構造を2階層まで表示

treemit -E 1 -L 2 ./docs  # 各拡張子ごとに1ファイルまで,深さ2階層まで表示

開発背景

既存のtreeコマンドはディレクトリの構造を一覧するのに優れたツールですが,拡張子ベースで表示するファイル数を制限する機能が不足していました. treemitは,この機能を実装することで,より効率的なプロジェクト構造の把握を可能にします. さらに,コンパクトに構造を表示することでLLMに伝える際のトークン数削減に非常に効果的です.

今後の展望

  • より多くのフィルタリングオプションの追加
  • 出力形式のカスタマイズ機能
  • パフォーマンスの最適化

フィードバック

バグ報告や機能リクエストは,GitHubのIssueにお願いします.

ライセンス

このプロジェクトはMITライセンスの下で公開されています.

Built with Hugo
Theme Stack designed by Jimmy