各リリースにビルド済みバイナリが添付されており、これが最短の経路です。ダウンロードして展開すれば動きます。アーカイブに入っているのは codehelion という自己完結の実行ファイル 1 つで、SQLite は同梱されています。
| プラットフォーム | アーカイブ |
|---|---|
| Linux x86-64 | codehelion-<version>-linux-x86_64.tar.gz |
| Linux ARM64 | codehelion-<version>-linux-aarch64.tar.gz |
| macOS Apple silicon | codehelion-<version>-macos-aarch64.tar.gz |
| Windows x86-64 | codehelion-<version>-windows-x86_64.zip |
SHA256SUMS も併せて添付されるので、展開する前にアーカイブを検証できます。
Rust ツールチェインがあるなら、同じバイナリをソースからビルドできます。
cargo install codehelionチェックアウトからビルドする場合は次のとおりです。
cargo install --path crates/codehelion-cliビルドには、任意の Rust Semantic helper を含め Rust 1.98 以降が必要です。この下限は helper が使う解析ライブラリが決めており、コンポーネントごとに分かれてはいません。ダウンロードしたバイナリにはツールチェインは要りません。
codehelion scan引数を付けなければ、カレントディレクトリを Fast モードで読み、text レポートを出力します。ある程度以上の規模のツリーでは Structural モードを使ってください。欠落を伴うコピーを検出でき、抑制ポリシーが働くため、上から読んでいける一覧になります。
codehelion scan --mode structuralレポートは何を読んだかで始まり、上位のグループを列挙し、合計で終わります。
codehelion scan · structural mode · ~/src/codehelion
#1 0.56 type-1 ×2 109 tokens 64f5bc34
├─ ◆ corpus/synthetic/rust/seed.rs:30-49 values_equal
└─ corpus/synthetic/rust/type1.rs:35-54 values_equal
#2 0.54 type-1 run ×2 106 tokens 53c92308
├─ ◆ crates/codehelion-cli/src/scan/structural.rs:160-172 run_with
└─ crates/codehelion-cli/src/scan.rs:61-73 run
... and 1233 more groups (--limit 0 lists every one)
seams: frontend-c-cpp 12 asymmetric changes, 7 breaches (last 6e014d86), 394 findings
readme-en-ja 1 asymmetric change, 1 breach (last 634aa5c9)
artifact-fixture-scripts 3 asymmetric changes, 1 breach (last 6f5d63c3)
1,602 groups (type-1 83, type-2 198, type-3 1321) · 367 suppressed · sorted by priority
supplemental: 503 siblings (--show-siblings; 103 dropped by search ceilings), 1,000 near misses (--show-near-misses; 5,986 dropped by the retention cap)
560 files, 206,818 lines, 1,083,595 tokens · run 11 (replay: codehelion report --run 11)
◆ the occurrence a group is measured against · "run" a repeated stretch of statements, not a whole unit · ×N the number of occurrences
open one: codehelion explain 64f5bc34 · list every group: --limit 0
見出しの各フィールドの意味はレポートの読み方にあります。末尾の短い 16 進文字列がグループの安定 ID で、これは codehelion explain が受け付ける最短の prefix です。
codehelion explain 64f5bc34上限の発火や何にも一致しなかったルールなど、実行そのものを限定する情報は標準エラー出力に回るため、標準出力のレポートはパイプに流せる状態を保ちます。
各スキャンは、scan root を含む Git リポジトリ直下の .codehelion/ にローカルの SQLite データベースを作って記録します。サブディレクトリをスキャンしたときも新しいデータベースを作らず、リポジトリのものを使い続けます。リポジトリの .gitignore に .codehelion/ を追加してください。
実行が記録されているため、ツリーを読み直さずにレポートを描き直せます。
codehelion report # 最新の完了済みスキャンを再描画
codehelion report --run 1 # 特定の記録済みスキャンを再描画
codehelion report --format json --output report.jsonデータベースの場所と扱いは設定に、コマンドとフラグの一覧はコマンドラインにあります。
Semantic モードはコンパイラが解決した型と名前の情報を加えます。解析したい言語ごとに別途 helper を導入する必要があり、これが compiler API を CLI 自体から締め出しています。
cargo install codehelion-backend-rust
cargo install codehelion-backend-clang # システムの libclang も必要
codehelion doctordoctor は、このマシンにあるコンポーネント、各 helper が問い合わせに何を答えたか、実行が使うローカルデータベースはどれかを報告します。導入されていない helper は「任意で、いまは無い」として報告され、それによって失敗することはありません。
artifact コマンドは、コンパイル済み成果物(WASM・ELF・Mach-O・PE/COFF・静的アーカイブ)のバイト列を、ロードも実行もせずに読みます。
codehelion artifact analyze path/to/binaryソーススキャンはこれに一切依存しません。成果物解析を参照してください。