Model or dataset
sentrux/sentrux avatar
sentrux/sentrux

sentrux: a structural sensor for AI coding agents, reviewed for adoption

Real-time architectural sensor that helps AI agents close the feedback loop, enabling recursive self-improvement of code quality. Pure Rust.

3,265 stars296 forksRustMIT

At a glance

What is it?
sentrux is a Rust binary that scans a repository, produces a single quality score, and exposes that score to AI agents over MCP. The idea is sound and the install path is short, but the scoring formula is opaque and the project is three days into its 0.5.x release cycle.
Who is it for?
Adopt sentrux if you already run an agent in a terminal and have lost track of module boundaries; start with sentrux gate --save before a session and sentrux gate . after, and treat the score as a relative signal, not an absolute grade. Do not adopt it as a CI gate for a polyglot repository until you have confirmed tree-sitter coverage for your languages and read what the score actually aggregates.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Activity is slowing. The repository last received commits 6 months ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The failure mode sentrux is built around

The README makes a specific argument rather than a general one about code quality. When a developer worked in an IDE, the file tree and the act of opening files produced a mental model of which module does what and where new code belongs. The claim in the README is that agent-driven development removed that governor: the agent modifies dozens of files per session, the human sees a stream of Modified src/foo.rs lines, and the spatial relationship between those files is never observed. The stated consequences are cycles, modules depending on files meant to be internal, and duplicate function names with different purposes, which then degrade the agent's own search results in later sessions. Whether or not you accept the framing, the target user is narrow and identifiable: someone running Claude Code, Cursor or a similar agent against a repository they no longer read file by file. If you review every diff before it lands, the sensor is redundant.

Scan, score, rescan: the mechanism as documented

The architecture diagram in the README describes a loop: scan, score, agent improves, rescan, better score, repeat. The scanner is built on tree-sitter plugins, and the README states 52 languages are supported, with COBOL and Object Pascal named in the topic list and the v0.5.5 release notes respectively. The output is a single number. v0.5.5 is titled One True Score, which suggests earlier versions exposed several metrics and that these were consolidated. The README shows one concrete figure: a live Claude Code session building a FastAPI project lands at 6772, described as the result even with good prompts. That number is presented without a scale, a maximum, or a breakdown of what it aggregates, and the supplied material does not explain the formula. Treat the score as a relative measure between two runs of the same repository, which is exactly how the gate workflow uses it, rather than as a grade comparable across projects.

Installation and the four commands that matter

The binary ships through Homebrew on macOS (brew install sentrux/tap/sentrux), a curl-piped shell script on Linux, and a direct executable download on Windows. The README states it is pure Rust with no runtime dependencies, which keeps the install surface small. Four invocations cover the documented workflows. sentrux with no arguments opens a GUI treemap; sentrux /path/to/project opens the same GUI against a specific directory. sentrux check . runs the rules engine and exits 0 or 1, which is the CI-friendly mode. The pair that matters most for agent work is sentrux gate --save . before a session and sentrux gate . afterwards, which the README describes as catching degradation by comparing against a saved baseline. For MCP clients the config is a command and an args array pointing at sentrux --mcp; Claude Code users get a plugin marketplace route instead. One operational detail worth noting: on Linux the GUI tries Vulkan, then GL, then a fallback, and WGPU_BACKEND=vulkan or WGPU_BACKEND=gl forces a specific backend if startup fails.

What the gate workflow does not tell you

The gate command answers one question: did the score go down. It does not, on the evidence supplied, tell you which file caused the drop or which dependency edge was added. An agent given only the number can iterate toward a higher score without understanding what changed, and a rising score is not the same as a correct architecture. The README itself frames the value as closing a feedback loop, and a loop with a scalar signal is the weakest form of feedback. Two further gaps are visible in the material. First, the score's composition is undocumented in what was provided, so you cannot tell whether a drop reflects a new cycle, a new cross-module dependency, or something else entirely. Second, the demo caption notes quality landing at 6772 without saying what a good score looks like, which means the first thing any evaluator needs is a baseline from their own repository. Neither gap is fatal, but together they mean sentrux is a drift detector, not a diagnosis tool.

The rules engine, the GUI, and where each fits

sentrux is two products sharing a scanner. The GUI is a live treemap, which is the direct answer to the lost-spatial-awareness problem: it restores a visual of where files sit relative to each other. The rules engine behind sentrux check is the machine-readable half, and it is the half that fits into CI or into an agent's tool list. The README's own framing pushes toward the second: the problem statement is about agents degrading architecture silently, and an agent cannot see a treemap. The GUI is for the human who wants to rebuild the mental model the README says was lost. If you adopt sentrux only for the treemap, you have bought a visualization tool; if you adopt it only for check and gate, you have bought a regression alarm. The MCP integration is what connects the alarm to the thing causing the drift.

Spec Kit as the contrasting approach

The README names GitHub's Spec Kit as the alternative it is arguing against, and the comparison is specific rather than rhetorical. Spec Kit's approach is to generate detailed specifications and plans before code is written; the README cites a critique describing it as reinventing waterfall, producing large volumes of markdown with no visibility into the code that actually gets produced. The difference in mechanism is the direction of the loop. Spec Kit constrains the input and checks nothing about the output. sentrux ignores the input entirely and measures the output, then feeds that measurement back. Both are attempts to govern agent-generated code, and they fail in opposite ways: a spec can drift from an implementation nobody measures, while a score can rise while the architecture gets worse in ways the score does not capture. For a team that already writes design documents, sentrux does not replace that practice. It measures a different thing.

Release cadence, licence, and what to verify before committing

The version history is the clearest signal about maturity. Three releases landed between 17 and 18 March 2026: v0.5.5 (One True Score plus Object Pascal), v0.5.6 (UI scale, font upgrade, open source build fix), and v0.5.7 (WCAG colour system, universal resolver, plugin versions). A build fix shipping in a patch release, and a scoring model renamed in a minor release, both suggest the interfaces and the metric are still moving. The project is MIT licensed, which permits commercial and closed-source use and modification, but the supplied material does not state whether the tree-sitter language plugins carry separate licences or where they are sourced, and that is the one thing worth checking before redistributing a build. Upgrade cost is low by design: the Homebrew path is brew update && brew upgrade sentrux, the curl installer always pulls the latest release, and the single binary means no dependency graph to reconcile. The real cost is not upgrading, it is re-baselining: if the score definition changed in v0.5.5, any gate baseline saved before that release is not comparable to one saved after.

Editorial conclusion

Adopt sentrux if you already run an agent in a terminal and have lost track of module boundaries; start with sentrux gate --save before a session and sentrux gate . after, and treat the score as a relative signal, not an absolute grade. Do not adopt it as a CI gate for a polyglot repository until you have confirmed tree-sitter coverage for your languages and read what the score actually aggregates. Before wiring it into an agent loop, run sentrux check . on a codebase whose architecture you already understand and see whether the number matches your own judgement.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. sentrux/sentrux on GitHub
Community notes

Community notes