Real-time architectural sensor that provides AI coding agents with a feedback loop on code architecture quality through five graph-theoretic dimensions and MCP integration.
sentrux is a real-time architectural quality sensor written in Rust, designed for AI coding agents (Claude Code, Cursor, Windsurf, etc.). It analyzes project file dependencies and computes a non-gameable 0–10000 composite score (Quality Signal) based on five graph-theoretic dimensions—modularity, acyclicity, depth, equality, and redundancy—visualized through a real-time interactive Treemap.
Core capabilities include: an MCP Server with 9 built-in tools for AI agent feedback loop integration; session_start/session_end mechanisms to track per-session quality changes; a rules engine via .sentrux/rules.toml supporting constraints on cyclic dependencies, coupling levels, cyclomatic complexity, layering, and boundaries; sentrux check/gate commands for CI/CD quality gates. It supports 52 languages through a tree-sitter plugin system where the binary contains no language-specific code—custom language plugins require only plugin.toml and tags.scm. The GUI renders via wgpu with auto-adaptive Vulkan/GL backends on Linux. The project is MIT-licensed with a Pro tier using Ed25519 key verification.
Installation#
# macOS
brew install sentrux/tap/sentrux
# Linux
curl -fsSL https://raw.githubusercontent.com/sentrux/sentrux/main/install.sh | sh
# Windows
curl -L -o sentrux.exe https://github.com/sentrux/sentrux/releases/latest/download/sentrux-windows-x86_64.exe
# Build from source
git clone https://github.com/sentrux/sentrux.git
cd sentrux && cargo build --release
Quick Start#
- Run
sentrux /path/to/projectto open the GUI and view the Treemap and Quality Signal score. - Create
.sentrux/rules.tomlin the project root to define architecture constraints. - Run
sentrux check .to verify rule compliance. - Run
sentrux gate --save .to save a quality baseline. - Configure
sentrux --mcpin your MCP client to enable AI agent feedback loop integration.
MCP Configuration (Generic)#
{
"mcpServers": {
"sentrux": {
"command": "sentrux",
"args": ["--mcp"]
}
}
}
Rules Engine Example (.sentrux/rules.toml)#
[constraints]
max_cycles = 0
max_coupling = "B"
max_cc = 25
no_god_files = true
[[layers]]
name = "core"
paths = ["src/core/*"]
order = 0
[[layers]]
name = "app"
paths = ["src/app/*"]
order = 2
[[boundaries]]
from = "src/app/*"
to = "src/core/internal/*"
reason = "App must not depend on core internals"
Unconfirmed Information#
- Pro pricing details not publicly disclosed
- Team/company background unclear (4 contributors)
- Claimed 36K lines of Rust code not independently verified
- Specific MCP protocol version number not stated