Communitygithub.com

JSungMin/vs-token-safer

grepの代わりにclangd/Roslynインデックスを使用する、トークンセーフなC++/C#コード検索ツール。ローカル専用、IDE不要。Claude Codeプラグイン + vts CLI。

vs-token-safer とは?

**JSungMin/vs-token-safer**は、C++およびC#プロジェクトにおいて、従来の`grep`によるテキスト検索ではなく、clangd(C++向け)とRoslyn(C#向け)の構文解析インデックスを活用することで、トークンレベルでの正確なコード検索を実現するAIエージェントスキルです。これにより、変数名、関数名、型名などのシンボルを文脈に応じて正確に検索でき、ノイズの多いgrep結果に悩まされることなく、開発効率を大幅に向上させます。完全ローカル環境で動作し、IDEに依存しないため、ターミナルベースのClaude Codeエージェントシームレスな統合が可能です。`vts`(Visual Token Safer)CLIツールを同梱しており、コマンドラインから直接インデックス構築とクエリを実行できます。主なユースケースとしては、リファクタリング時のシンボル参照調査、コードレビュー、CI/CDパイプライン内での静的解析補助などが挙げられ、大規模なコードベースでも高速かつ正確な結果を提供します。現在のバージョンではClaude Codeプラグインとしての統合に最適化されていますが、`vts` CLI単体でも他のエージェントやスクリプトから利用可能です。

対応✓Claude Code~Codex CLI~Cursor
npx skills add JSungMin/vs-token-safer

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

vs-token-safer は何をしますか?

grepの代わりにclangd/Roslynインデックスを使用する、トークンセーフなC++/C#コード検索。ローカル専用、IDE不要。Claude Codeプラグイン + vts CLI。

概要

vs-token-saferは、Claude Codeエージェント(またはターミナルから直接)が、構文解析インデックス(C++はclangd、C#はRoslyn)に基づいてC++およびC#のシンボルを正確に検索できるようにするツールです。単純なテキスト一致(grep)ではなく、トークンレベルの認識を使用するため、エイリアスやコメントのノイズが減り、より正確な結果が得られます。

機能

  • トークンセーフな検索: テキストの部分一致ではなく、正確なシンボル名を検索します。
  • 言語対応: 現在はC++(clangd)とC#(Roslyn)に対応。
  • ローカル専用: インデックスはプロジェクト内にローカルに保存され、外部サービスにデータを送信しません。
  • IDE不要: コマンドラインで動作するため、CI/CDやエージェントフレンドリーです。
  • Claude Code統合: Claude Code内でvtsコマンドとして利用可能なプラグイン。

インストール

Claude Code(推奨)

Claude Code内でプラグインを有効にします:

claude code --plugin jsungmin/vs-token-safer

または、設定ファイルに追加します。

スタンドアロンCLI

リポジトリをクローンしてvts CLIをビルドします:

git clone https://github.com/JSungMin/vs-token-safer.git
cd vs-token-safer
# ビルド手順(プロジェクト固有)
cargo build --release  # または dotnet build など

使用方法

インデックスの構築

C++またはC#プロジェクトのルートディレクトリで以下を実行します:

vts index

これにより、compilation_database.json(C++)または.csprojファイル(C#)に基づいてインデックスが作成されます。

シンボルの検索

インデックスが構築されたら、次のコマンドでシンボルを検索できます:

vts search "MyClass"

または、完全修飾名で検索:

vts search "Namespace.Class.Method"

Claude Code内での使用

Claude Codeでは、プラグインが自動的にvtsコマンドを認識します。例えば:

Claude、MyClass の定義を vts で検索して

出力例

[
  {
    "symbol": "MyClass",
    "kind": "class",
    "file": "src/example.cpp",
    "line": 42,
    "column": 7
  }
]

設定

環境変数または設定ファイルで設定をカスタマイズできます:

変数説明デフォルト
VTS_PROJECT_ROOTプロジェクトのルートディレクトリカレントディレクトリ
VTS_INDEX_DIRインデックスストレージディレクトリ.vts/index
VTS_LANGUAGE言語の明示的な設定(cpp または csharp)自動検出

開発状況

  • 基本的なインデックス構築(C++)
  • 基本的なシンボル検索(C++)
  • Roslynインデックス(C#)のサポート
  • 複数プロジェクトのインデックス
  • あいまい検索オプション

アーキテクチャ

clangd / Roslyn
      |
   インデックスDB(SQLite)
      |
   vts CLI(Rust / C#)
      |
   Claude Code プラグイン

ライセンス

MITライセンス。詳細はLICENSEを参照してください。

貢献

プルリクエストと問題報告は歓迎します。大きな変更を加える前に、まずissueを開いて議論してください。

関連スキル