Skip to main content

Structural code quality metrics for agent-written programs.

Project description

Topos

CI PyPI Python versions License topos MCP server

Structural code quality metrics for agent-written programs.
Docs · Quick Start · MCP Server · Issues

Topos is an operating layer for AI agents that provides structural (geometric & topological) metrics computed over program graphs, surfacing deep architectural debt that conventional linters can't compute. It delivers complexity, coupling, and security metrics for your agents to wield as tools, establishing a precise, medal-scored (SLOP → GOLD) feedback loop to autonomously write clean, highly composable code.


Quick Start

curl -fsSL https://docs.krv.ai/topos/install.sh | sh
topos evaluate src/ -r

evaluate -r scores every file in src/ and prints a ranked digest: which pillars pass, the worst-scoring files, and the cheapest fixes to flip a failing pillar. Add -h to any command for help, or --json for CI.

Other install paths (PyPI, source checkout) and the full command tour live at docs.krv.ai/topos/installation.

What you get

Topos checks three independent pillars and awards a Code Quality Medal for how many pass:

  • SIMPLE — avoids unnecessary complexity (AST entropy & CFG cyclomatic complexity)
  • COMPOSABLE — cleanly decoupled from other modules (MDG Martin instability via GitNexus)
  • SECURE — free of dangerous API reachability and taint paths (CPG analysis; optionally powered by Sighthound)

Topos is the operator over those graphs — not another one-off tree-sitter script. Specialist engines (GitNexus for the module graph, Sighthound for SAST) feed one medal lattice agents can optimize toward.

Medal Criteria
🥇 GOLD Passes all 3 (SIMPLE + COMPOSABLE + SECURE)
🥈 SILVER Passes 2 of 3
🥉 BRONZE Passes 1 of 3
SLOP Passes 0 (or fails to parse)

COMPOSABLE needs a cross-file dependency graph, which the CLI does not build automatically:

pnpm add -g gitnexus  # or: npm install -g gitnexus
topos depgraph generate
topos evaluate src/ -r --gitnexus-dir .gitnexus

Put Sighthound on PATH to deepen SECURE with Corgea's ruleset (auto-detected; local CPG probes still run without it).

Other commands: topos inspect for per-file metrics, topos compare for AST edit distance between two versions, topos coverage for structural test coverage, and --preferences simple,composable,secure to tell agents which pillar to protect first when 🥇 GOLD isn't reachable. Full reference: docs.krv.ai/topos/cli.

MCP server (for agents)

Give any MCP-compatible agent — Claude Code, Cursor, Gemini CLI, Windsurf — a live feed of Topos verdicts so it can evaluate and iterate on its own output.

claude mcp add --transport stdio topos -- topos mcp

Setup for Cursor, VS Code, Gemini CLI, Codex, and Windsurf, plus troubleshooting and the full MCP tool list: docs.krv.ai/topos/agents.


How it works

Topos measures code along the three pillars above and maps the result to an 8-element evaluation lattice — the three pillars are pairwise incomparable, and 🥇 GOLD is their intersection.

Evaluation lattice diagram
graph BT
    SLOP["❌ SLOP<br/>No Medal"]
    SIMPLE["🥉 BRONZE<br/>Simple"]
    COMPOSABLE["🥉 BRONZE<br/>Composable"]
    SECURE["🥉 BRONZE<br/>Secure"]
    SC["🥈 SILVER<br/>S ∧ C"]
    SSc["🥈 SILVER<br/>S ∧ Sc"]
    CSc["🥈 SILVER<br/>C ∧ Sc"]
    IDEAL["🥇 GOLD<br/>Quality Code"]

    SLOP --> SIMPLE
    SLOP --> COMPOSABLE
    SLOP --> SECURE
    SIMPLE --> SC
    SIMPLE --> SSc
    COMPOSABLE --> SC
    COMPOSABLE --> CSc
    SECURE --> SSc
    SECURE --> CSc
    SC --> IDEAL
    SSc --> IDEAL
    CSc --> IDEAL

    style SLOP       fill:#f8d7da,stroke:#842029,color:#000
    style SIMPLE     fill:#cd7f32,stroke:#5c3a1e,color:#fff
    style COMPOSABLE fill:#cd7f32,stroke:#5c3a1e,color:#fff
    style SECURE     fill:#cd7f32,stroke:#5c3a1e,color:#fff
    style SC         fill:#c0c0c0,stroke:#4a4a4a,color:#000
    style SSc        fill:#c0c0c0,stroke:#4a4a4a,color:#000
    style CSc        fill:#c0c0c0,stroke:#4a4a4a,color:#000
    style IDEAL      fill:#ffd700,stroke:#856404,color:#000

Set your Preferences (e.g. simple,composable,secure) to tell your coding agent which pillars to prioritize when aiming for GOLD under token and time budgets, and how to relax that goal when GOLD isn't reachable. Details: docs.krv.ai/topos/preferences · docs.krv.ai/topos/measures · docs.krv.ai/topos/concepts.

Contributing

Topos is used internally at Krv Labs to manage AI agent code output. We welcome bugs, ideas, and contributions.


Full Documentation · Measures & Metrics · Category Theory Concepts · Engineering notes

Built with ❤️ by Krv Labs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

topos_mcp-0.3.12.tar.gz (819.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

topos_mcp-0.3.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (667.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

topos_mcp-0.3.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (666.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

topos_mcp-0.3.12-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (961.0 kB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file topos_mcp-0.3.12.tar.gz.

File metadata

  • Download URL: topos_mcp-0.3.12.tar.gz
  • Upload date:
  • Size: 819.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for topos_mcp-0.3.12.tar.gz
Algorithm Hash digest
SHA256 30115b45fb1a9524b98d8a4a82b62bed7a1445e2ace859bf2be70846f07cfb36
MD5 1a25dc3ea2c14a9b39d612b805266301
BLAKE2b-256 416a890be79f9f9e2149b8a382e73a7ebeaffdac7b0be65394e1bfa6e3295fec

See more details on using hashes here.

Provenance

The following attestation bundles were made for topos_mcp-0.3.12.tar.gz:

Publisher: release.yml on Krv-Labs/topos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topos_mcp-0.3.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for topos_mcp-0.3.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f788ec049644c0e6c91757879c7b03869edb06a6108991df73ae9c63893f8b9
MD5 b69ef846b5cd9951bd337cca2878e325
BLAKE2b-256 961719fdabaa01e6804c8aaf276bc5b8c4bffbfb232fcde85ec31f1291bd5145

See more details on using hashes here.

Provenance

The following attestation bundles were made for topos_mcp-0.3.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Krv-Labs/topos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topos_mcp-0.3.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for topos_mcp-0.3.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2a34d89795a6df9bfd16199d639d3249ae1371772515f0100a461bbddb02c151
MD5 e82362fc2793e9d1960030a827712070
BLAKE2b-256 478a39507973040010fdf8d5fabd67b87fccbcecdd9e3f12b98f6a8641c4dc32

See more details on using hashes here.

Provenance

The following attestation bundles were made for topos_mcp-0.3.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Krv-Labs/topos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topos_mcp-0.3.12-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for topos_mcp-0.3.12-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 4c2b3d8bbdecbafbcc3912ebba351604dfe5153b072ba9732574ca099c7f5f4f
MD5 242c7c8993ec5ae5c05c9c5dd2b5603c
BLAKE2b-256 04dc817333eb9c5ccd7b2ced7a6701209d0663b81c1930fb593ed1678f717e3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for topos_mcp-0.3.12-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on Krv-Labs/topos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page