Sentrux(sentrux/sentrux・GitHubスター3,062・MIT)は、コードの構造を0〜10000点のスコアで測るRust製のツールです。行数でもテストカバレッジでもなく、「依存が絡まっていないか」「責務が散っていないか」という設計面を数値にします。

ただしこのツールを紹介するとき、機能の説明より先に伝えるべきことがあります。開発が2026年3月19日で止まっています。 それでもスターは3,062まで伸び続けており、GitHubの見た目からは気づきにくい状態です。この記事は「凍結されたバージョンを、いま入れる価値があるか」という一点に絞って、公式バイナリを実際に落として動かした結果から判断します。

Sentruxの現況。37リリースが全て2026年3月に集中し以降ゼロ、バイナリは動く、checkは規則ファイル無しで終了コード0、analyticsは既定で有効
2026年9月2日に実測した現況。開発は止まっているが配布物は生きており、実行そのものは今も成立する

30秒でわかる Sentrux

何ができるか:52言語のコードを5指標(モジュラリティ/非循環性/深さ/均等性/冗長性)で解析し、0〜10000点のスコアとTreemapで構造を可視化する
何を解決するか:AIエージェントが大量にコードを書く環境で、「動くけれど構造が壊れていく」変化を数値で捉える
実際に動いたか動いた。v0.5.7の公式バイナリは今日も起動し、check も走る
注意すべき点check規則ファイルが無いと終了コード0で素通りする。匿名の利用統計が既定で有効。有料版の購入ページは404

この記事のポイント

・37本のリリースがすべて2026年3月に集中し、以降ゼロ。稼働期間は実質8日間だった
・それでもバイナリは今も動く(v0.5.7・23,014,208バイト・初回にグラマーを自動取得)
・CIゲートとして入れるなら .sentrux/rules.toml が必須。無いと常に成功する(実測)

開発ツール全般の見取り図はAI自動化ツール|ノーコードからコードまで2026年版の比較と選び方にまとめてあります。Sentruxはその中でも「コードの構造だけを測る」という狭い一点に特化した道具です。

Sentruxとは——構造だけを測るセンサー

多くの静的解析ツールは「この行が危ない」を指摘します。Sentruxが見るのはもっと粗い粒度で、ファイルとモジュールの関係です。

modularity(モジュラリティ):責務がまとまっているか
acyclicity(非循環性):依存が循環していないか
depth(深さ):依存の階層が深すぎないか
evenness(均等性):一部のファイルに偏っていないか
redundancy(冗長性):似たものが散らばっていないか

この5つを合成して0〜10000点を出します。解析にはtree-sitterを使っており、52言語に対応します。単一バイナリで、データベースもランタイムも要りません。

MCPサーバーとしても起動でき(sentrux mcp)、Claude Codeのようなエージェントから構造スコアを直接引けます。「エージェントが書いたコードの構造が劣化していないかを、エージェント自身に確認させる」という発想です。

Sentruxの現況——37本のリリースが2026年3月に集中し、以降ゼロ

機能の話より先にここです。2026年9月2日に実測しました。

観測項目 実測値
ブランチ数 main の1本のみ(隠れた開発ブランチ無し)
最終コミット 2026-03-196f8ff3c1
リリース総数と分布 37本すべてが2026年3月。4月以降ゼロ
最新版 v0.5.7(2026-03-18)
リポジトリ作成 2026-03-11(=稼働期間は実質8日間
スター / フォーク 3,062 / 277
ライセンス MIT(22行の標準文面・追加条件なし)

月別のリリース数は自分で数えられます。このコマンドは実際に実行して結果を確認しています。

# リリースの公開月を数える(37本すべてが 2026-03 に入る)
gh api 'repos/sentrux/sentrux/releases?per_page=100' --jq '.[].published_at' \
  | cut -c1-7 | sort | uniq -c

# 既定ブランチの最終コミット日
gh api repos/sentrux/sentrux/commits/main --jq '.commit.committer.date'

star が伸びていることは、開発が続いている証拠にならない:Sentruxは8日間で37本のリリースを出して止まりました。star はその後も積み上がっていますが、これは注目の残り火です。GitHub APIの pushed_at も既定ブランチ以外へのpushで動くため生存判定には使えません(このリポジトリはブランチが main 1本なので、たまたま両者が一致しました)。観測すべきはリリースの分布と既定ブランチの最終コミット日です。

もうひとつ、最後のコミットの中身が示唆的です。メッセージは “Add Pro CLI commands: login, pro activate/status/deactivate/update” ——有料版を有効化するCLIコマンドの追加でした。収益化に着手した直後に手が止まっています。

5つの指標は「どこを直せばいいか」に翻訳できる

スコアが0〜10000という粒度で出るため、最初は「で、何をすればいいのか」と戸惑います。実務では5指標を個別に見るほうが行動に繋がります。

acyclicity(非循環性)が低い:モジュール同士が相互参照している状態です。片方向に整理するか、共通部分を third module に切り出す判断になります。AIエージェントが「近くにある似た関数」を掴んで実装した結果、双方向の依存が生まれるパターンが典型です
evenness(均等性)が低い:特定のファイルに機能が集中しています。いわゆる神クラス・神モジュールで、そこを触るたびに広範囲へ影響が出ます
redundancy(冗長性)が高い:似た役割のコードが複数箇所にあります。エージェントが既存の実装を見つけられず同じものを書き直したときに増えます
depth(深さ)が大きい:依存の階層が深く、末端の変更が上まで波及しやすい状態です
modularity(モジュラリティ)が低い:責務の境界が曖昧で、上の4つの結果として下がることが多い指標です

このうち redundancy と acyclicity は、AIエージェントに大量にコードを書かせたときに特に悪化しやすい指標です。人間なら「これ前に書いたな」と気づくところを、エージェントは文脈が切れると気づけません。Sentruxのようなツールが注目された背景はここにあります。

凍結版であることの実務的な意味

「開発が止まっている」と聞くと反射的に避けたくなりますが、道具の種類によって意味が変わります。

サーバとして常駐し、外部と通信し続けるもの(脆弱性が致命傷になる)→ 凍結は重い問題
手元で一度走らせて結果を読む道具(入力も出力も自分の手の内)→ 凍結の影響は小さい

Sentruxは後者に近い性質です。単一バイナリでローカルのコードを読んでスコアを返すだけなので、上流が更新されなくても昨日と同じ結果が出ます。むしろ「基準が変わらない」ことは、継続的に比較する用途ではメリットにすらなります。

問題になるのは、壊れたときに直せないことと、新しい言語・文法に追随しないことの2点です。前者はMITライセンスとRust実装なのでフォークして直す道が残っており、後者は自分が使う言語がv0.5.7時点で対応済みかどうかで判断できます。

実測:凍結版のバイナリは、今日も動く

「止まっている」と「使えない」は別です。実際に落として動かしました。

# v0.5.7 の公式バイナリを取得して実行
curl -sL -o sentrux \
  https://github.com/sentrux/sentrux/releases/download/v0.5.7/sentrux-darwin-arm64
chmod +x sentrux
./sentrux --version

結果は次のとおりです。

・バイナリのサイズは 23,014,208バイト(darwin-arm64)。Mach-O 64bit実行ファイル1つだけ
初回起動時に言語グラマーを自動ダウンロードする。1回目の --versionDownloading language grammars for v0.5.7... と表示して終わり、2回目に sentrux 0.5.7 を返した
・グラマーは同じリリースに grammars-darwin-arm64.tar.gz(8,949,349バイト)等として置かれており、Linux(x86_64 / aarch64)・Windows向けも揃っている

つまりインストールは今も成立します。上流が止まっていても、配布物がGitHub Releasesに残っている限り実行はできます。

--help を見ると、実際のコマンド構成が分かります。

Commands:
  check      Enforce architectural rules defined in .sentrux/rules.toml
  gate       Structural regression gate — compare against a saved baseline
  scan       Open the GUI with a pre-loaded directory
  mcp        Start the MCP (Model Context Protocol) server for AI agent integration
  plugin     Manage language plugins
  analytics  Control anonymous aggregate usage analytics
  login      Upgrade to Sentrux Pro

実測で分かった2つの落とし穴

ここからが、READMEを読むだけでは分からない部分です。

check は規則ファイルが無いと「成功」してしまう

CIに入れて構造を守らせる、というのがこのツールの主要な使い方です。実際に規則ファイルを置かないディレクトリで走らせてみました。

# 規則ファイルを置かずに check を実行する
./sentrux check demo
#   No .sentrux/rules.toml found in demo
#   Create one to define architectural constraints.
# 終了コードは 0(=CIでは「成功」扱いになる)

終了コードは0でした。 メッセージは出ますが、失敗にはなりません。

これは実装として不合理ではありません(規則が無いのだから違反も無い)。しかし運用上は危険です。CIに sentrux check . を1行足しただけで安心してしまうと、規則ファイルを置き忘れている間ずっとゲートが素通りし続けます。しかもログには成功としか出ません。

入れるなら、まず「落ちること」を確認する:CIに組み込むときは、わざと違反するコードで一度赤くなることを確かめてください。緑のまま導入すると、それが「守れている」のか「何も見ていない」のか区別できません。.sentrux/rules.toml の存在自体をCIで検査するのも有効です。

② 匿名の利用統計が既定で有効

analytics サブコマンドがあることに気づいて、既定値を確認しました。

./sentrux analytics
#   Analytics are enabled.

既定で有効です。送信されるのは匿名の集計データという位置づけですが、社内の閉じた環境で使うなら把握しておくべき挙動です。無効化したい場合は analytics のサブコマンドで切り替えます。

あわせて、ネットワークに触れる箇所は最低3つあります——初回のグラマー取得、更新確認、そして利用統計です。更新確認先は自分で叩けます。

curl -s https://api.sentrux.dev/version
# {"latest":"0.5.7","download":"https://github.com/sentrux/sentrux/releases/tag/v0.5.7"}

このAPIは今も200を返しますが、値は0.5.7で固定です。サーバは生きているのに中身が更新されていない、という状態が見て取れます。

この記事で検証していないこと:解析対象のソースコードそのものが外部へ送られるかどうかは、通信を傍受して確認していません。未検証です。機密性の高いコードベースに導入するなら、実際の通信を自分で観測してから判断してください。

有料版(Pro)には手を出さないほうがよい

--helplogin Upgrade to Sentrux Pro が示すとおり、有料版の導線は実装されています。しかし案内先を確認すると次のようになります。

URL 応答
sentrux.dev HTTP 200(サイトは稼働中)
sentrux.dev/pro HTTP 404
api.sentrux.dev/version HTTP 200(ただし値は0.5.7で固定)

購入ページが404です。開発が止まっている状態で、ライセンス認証サーバに依存する機能に課金するのは避けたほうが安全でしょう。無料のコア機能(scan / check / gate / mcp)だけを使う前提で評価するのが現実的です。

いま入れるべきか——判断の分かれ目

実測を踏まえた結論です。

flowchart TD A["Sentruxを入れたい"] --> B{"用途は?"} B -->|"手元で構造を
可視化したい"| C["凍結版で十分
scan / mcp を使う"] B -->|"CIのゲートに
据えたい"| D{"rules.toml を
用意できるか"} D -->|"用意しない"| E["常に終了コード0
=何も見ていない"] D -->|"用意する"| F{"上流が直らない
前提を飲めるか"} F -->|"飲める"| G["導入可
ただし自前で保守"] F -->|"飲めない"| H["別ツールを選ぶ"]

入れてよいケース

手元で構造を可視化して当たりを付ける用途。Treemapとスコアを見て「どこが絡まっているか」を掴むだけなら、凍結版でも十分に働きます
MCPサーバーとしてエージェントに繋ぐ用途。スコアを引くだけなら上流の更新は不要です
MITなので、必要ならフォークして直せる。Rust実装で、フォークは277件あります

避けたほうがよいケース

長期運用するCIゲートの前提にする。バグを踏んでも直りません。オープンなIssueは34件あり、その多くは開発停止後に積み上がったものです
新しい言語や文法への対応を期待する。tree-sitterベースとはいえ、v0.5.7に同梱された範囲で固定です
有料版を前提にした設計。前述のとおり購入導線が切れています

同じ「セルフホストで動かす道具」でも、常駐サーバ型は上流が止まると重い問題になります。証明書の自動更新のように外部と繋がり続ける基盤は、Certimateとは|SSL証明書の発行・配置・更新を自動化するセルフホストACMEツールを実測のように更新が続いているかを重視して選ぶべきで、Sentruxのような「一度走らせて結果を読む」道具とは判断軸が違います。

要するに 「凍結されたバージョンを、そのまま受け入れられるか」 が判断軸です。使い捨ての分析道具として割り切るなら今も有用で、組織の品質基盤として長く据えるなら向きません。同種のセルフホスト系ツールを棚卸しする観点はawesome-sysadmin 解説でも整理しています。

参照ソース

sentrux/sentrux — GitHub リポジトリ(README・LICENSE・README.ja.md。本記事のコミット数・ブランチ・ライセンスはここを参照)
sentrux v0.5.7 リリース(本記事で実行したバイナリと言語グラマーの配布元)
Sentrux 公式サイト(稼働中。ただし /pro は404)