1broseidon/cymbal
Language-agnostic code navigation CLI powered by tree-sitter
解決する課題
Cymbal は高速で言語に依存しないコードナビゲーターであり、手作業によるコードベースの探索という問題を解決します。grep、find、手動でのファイル読み取りを行ったり、それらを何度も切り替えるのではなく、ミリ秒単位でシンボル検索、クロスリファレンス分析、影響範囲評価を構造化された方法で実行できます。
動作方法
Cymbal は tree-sitter を使ってソースファイルを抽象構文木(AST)に解析し、シンボル、インポート、参照をローカルの SQLite インデックスに抽出します。FTS5 をバックエンドに使用した検索機能を備えています。変更されたファイルのみを再解析するインクリメンタル更新を実行し、複数の Git worktree を横断した検索も可能です。
対象ユーザー
- CLI ユーザー: 不慣れなリポジトリを素早く理解したい開発者
- AI エージェント: 長い検索/表示の連鎖を減らし、トークン消費を最適化するために構造化されたコードナビゲーション層を必要とする LLM ベースのエージェント
- ツール開発者: エディタ、ボット、自動化ツールにインデックス付きコードナビゲーションを組み込みたい Go 開発者
主な特徴
- 適応的探索:
investigateコマンドは、ソース、呼び出し元、影響範囲を1回のコールで一括表示します。 - グラフモード: カレーや影響範囲の分析に役立つ、視覚的な依存関係マップ(Mermaid、DOT、JSON)を生成します。
- エージェントネイティブ: OpenCode や Claude Code などのエージェントとの統合を最適化するために設計されています。
- 言語非依存: Go、Python、Rust、TypeScript、Java、C++ など、幅広い言語をサポートしています。
- 高パフォーマンス: シンボル検索やテキスト検索は通常 10–40ms で完了します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト