Dirlens アイコン

Dirlens

ディレクトリを、読む

単一バイナリ・ゼロ依存の tree 互換ツール。
AI エージェントのための「プロジェクトの地図」を、コマンド1つで。

dirlens — zsh
scroll
0
単一バイナリ
ランタイム依存ゼロ
0
言語別 AST パーサ
によるアウトライン抽出
0
MCP ツール
エージェントからネイティブ呼び出し
0
対応 OS
macOS / Linux / Windows
STEP 1 / 4 — まずは普通のツリー
$ dirlens
スクロールすると、ツリーが「地図」になる
Project/ (2 dirs, 2 files, 29.31 KB, 1 week ago) ├── assets/ (0 dirs, 1 file, 7 bytes, 1 week ago) │ └── logo.png (7 bytes, 1 week ago, "feat: initial release") ├── src/ (0 dirs, 1 file, 478 bytes, 1 week ago) │ └── util.py (478 bytes, 1 week ago, ~115 tok, 21 lines, TODO×1, no test, def load_config, class Cache, used-by×1) ├── * main.py (219 bytes, 1 week ago, ~53 tok, 11 lines, no test, def main, imports×1) └── pyproject.toml (45 bytes, 1 week ago, ~17 tok, config) Total 2 directories, 4 files (.gitignore applied) Estimated tokens: ~185 tok TODO/FIXME items: 1 src/util.py:12 [TODO] # parallelize exports Files without tests: 2 files Entry point candidates: 1 found Suggested reading order: main.py → src/util.py

Interactive Playground

インストール不要。
いま、この場で叩ける。

これは飾りのスクリーンショットではありません。下のターミナルは本物のコマンドパーサーを積んだシミュレータです。架空の TypeScript プロジェクトを相手に、フラグを組み合わせて叩いてみてください。dirlens --help でヘルプが出ます。

myapp — dirlens playground
myapp %

Features

「ls と grep の往復」を、終わらせる。

Dirlens は tree 互換の表示ツールであると同時に、AI・コーディングエージェントがプロジェクトを一度で把握するための解析エンジンです。

🌳
tree 互換 + α
-a -d -f -L -P -I --prune など主要フラグが tree と互換。gitignore 除外は git check-ignore による厳密判定(2層構成で git 不在時は内蔵マッチャに自動縮退)。
🔢
BPE 正確トークン数
o200k_base による正確なトークン計数をバイナリに同梱。言語別内訳・永続キャッシュ付き。「このリポジトリ、コンテキストに入る?」が一目で分かる。
🧠
--agent 一発解析
トークン数・最終コミット・TODO・テスト未整備・エントリーポイント・アウトライン・import 依存グラフ・設定ファイル一覧を一括表示。カラーなし・クリップボード不使用で自律実行にも安全。
🌲
12言語 AST アウトライン
Python / JS・TS / Rust / Go / C / Java / Ruby / PHP / C# / Kotlin / Swift の AST パーサで関数・クラスを正確に抽出。構文エラー時は正規表現へ自動縮退し、どの層で取得したかも機械可読。
🕸️
import 依存グラフ
tsconfig paths・go.mod・Rust モジュールツリー等のマニフェストまで読んで解決。--focus FILE で「このファイルを変えたら何が壊れうるか」を推移閉包で即答。Mermaid / DOT 出力も。
🎯
トークン予算
--budget 3000 で出力自体を指定トークン数以内に自動調整。自前の BPE で実測しながら深さ→詳細→ツリー行の順に削減。--estimate で事前見積もりも。
📡
差分だけを取る
--since HEAD で前回コミット以降の変更ファイルだけのツリー。git diff --name-only | dirlens --stdin でパイプ連携。--api-diff で公開 API の破壊的変更も検出。
🧑‍💻
人間にも、ちゃんと便利
インタラクティブ TUI(-i)・git status オーバーレイ・ヒートカラー・重複検出(--dupes)・ディレクトリ比較(--compare)・HTML レポートまで搭載。
🛡️
正直な解析
解析は「最良の方式 → 縮退」の多層構成。いまどの方式が使われているかは --check で機械的に確認でき、JSON 出力は部分的な失敗があっても常に valid。

MCP Server

エージェントの、ネイティブツールに。

dirlens --mcp で MCP サーバーとして起動。Claude Code・Claude Desktop・Cursor から9つのツールをシェル往復なしで呼べます。トークン予算・コスト見積もり・出力上限対策まで組み込み済み。

analyze tree outline imports focus todos since history api_diff
claude mcp add dirlens -s user -- dirlens --mcp

設定に迷ったら dirlens --mcp-setup。ホスト別の登録手順を、バイナリの絶対パス入りで出力します。コピペで完了。

Install

30秒で、手元に。

機種別のネイティブバイナリ(macOS arm64/x64・Linux arm64/x64・Windows x64)。Python も Node ランタイムも不要です。

$npm install -g dirlens

全 OS 対応。機種別のネイティブバイナリが自動で選択されます。Windows でもネイティブな dirlens.exe が動作します。

$tar -xzf dirlens-*-aarch64-apple-darwin.tar.gz
$sudo install -m 755 dirlens /usr/local/bin/

GitHub Releases からお使いのプラットフォームのアーカイブを取得し、PATH の通った場所へ置くだけ。

$cargo install dirlens

crates.io からソースをコンパイルしてインストールします。

$cargo binstall dirlens

crates.io のメタデータから GitHub Releases のビルド済みバイナリを取得。コンパイル不要で cargo install より高速です。

あなたのプロジェクト/ ├── 今日から (~0 tok) └── dirlens と

まずは1回、叩いてみる。