Source code quality evaluation platform powered by AI
Project description
The quality code compass
Your guide to drive any codebase to excellence.
v0.8.0
Quodeq scans any codebase with AI and scores it across six quality dimensions — Security, Reliability, Maintainability, Performance, Flexibility, and Usability — based on ISO 25010. Get grades, find violations, fix what matters.
Requirements
| Dependency | Version | |
|---|---|---|
| Python | 3.12+ | Runtime |
| Node.js | 18+ | Dashboard UI |
| npm | 9+ | Bundled with Node.js |
| Claude Code | latest | AI analysis engine |
Install
Recommended:
pipx install quodeq
Homebrew:
brew install quodeq/tap/quodeq
pip:
pip install quodeq
Dashboard
The Quodeq Dashboard is the recommended way to use Quodeq. It lets you launch evaluations, browse results, and track quality over time — all from a single web UI.
quodeq dashboard
Opens at http://localhost:4173 with:
- Overall grade & score — A-F letter grade, numeric score /10, trend across runs
- Dimension breakdown — individual scores per quality dimension with severity counts
- Violations explorer — drill into findings by file, principle, or CWE classification
- Top offending files — ranked list of where to focus remediation
- Run history — track how your codebase evolves over time
Click any dimension, file, or principle to explore the details.
QuodeqBar (macOS)
On macOS, QuodeqBar lives in your menu bar and manages the dashboard for you — start/stop the server, see evaluation status at a glance, and open the dashboard in one click.
CLI-only usage
You can also run evaluations directly from the terminal without the dashboard:
quodeq evaluate /path/to/project
Run quodeq evaluate --help for all options.
The Q² Scoring Formula
Quodeq scores each principle on a 0–10 scale using four independent constraints:
- Violation Base — hyperbolic curve where the first violations hurt most (
10 / (1 + K * weighted_violations)) - Compliance Lift — evidence of good practices fills the gap between the base and 10
- Violation Ceiling — log₂-based cap prevents compliance from overriding significant violations
- Severity Grade Floor — grade labels match reality (only critical violations can produce a "Critical" grade)
The final score: max(floor, min(ceiling, base + (10 - base) * lift))
Full details in src/quodeq/core/scoring/README.md.
Supported Languages
Quodeq can evaluate any codebase in any language. The AI analysis engine reads and understands code regardless of the tech stack.
How It Works
- Detect — identifies the languages and structure of the codebase
- Analyze — spawns an AI CLI with read-only tools to explore the code
- Collect — findings stream as structured JSONL via tool calls
- Score — maps findings to ISO 25010 principles with CWE classifications
- Report — produces per-dimension reports with grades, violations, and compliance
Results are stored in ~/.quodeq/evaluations/ and persist across sessions.
CLI Reference
quodeq evaluate
| Flag | Default | Description |
|---|---|---|
repo |
(required) | Path or URL to the repository |
-o, --output |
~/.quodeq/evaluations |
Reports output directory |
-d, --dimensions |
all | Comma-separated dimensions to evaluate |
--incremental |
off | Only re-analyze changed files (requires previous run) |
--pool-budget |
600 | Subagent pool time budget in seconds |
--max-turns |
200 | Max AI conversation turns per dimension |
--max-duration |
1800 | Max seconds per dimension |
quodeq dashboard
| Flag | Default | Description |
|---|---|---|
--port |
4173 | Dashboard server port |
--evaluations |
~/.quodeq/evaluations |
Evaluations directory |
--open |
true | Open browser automatically |
Development
git clone https://github.com/quodeq/quodeq.git && cd quodeq
uv sync
uv run pytest
Changelog
See CHANGELOG.md for release history.
License
See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quodeq-0.8.1.tar.gz.
File metadata
- Download URL: quodeq-0.8.1.tar.gz
- Upload date:
- Size: 386.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f1670f9a01c73f5c6d44b2b658f36c58589a56ec874881884313e2e6282054f
|
|
| MD5 |
454c317f306904d276505f04165464f5
|
|
| BLAKE2b-256 |
6ff61ff44dc79951abcab39c35232221d732150a7083c599cd6ea8c79f832d82
|
Provenance
The following attestation bundles were made for quodeq-0.8.1.tar.gz:
Publisher:
publish.yml on quodeq/quodeq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quodeq-0.8.1.tar.gz -
Subject digest:
0f1670f9a01c73f5c6d44b2b658f36c58589a56ec874881884313e2e6282054f - Sigstore transparency entry: 1185308184
- Sigstore integration time:
-
Permalink:
quodeq/quodeq@b95dd01b4aee4b1793f1ad12f01a61c20b62ce25 -
Branch / Tag:
refs/tags/v0.8.1 - Owner: https://github.com/quodeq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b95dd01b4aee4b1793f1ad12f01a61c20b62ce25 -
Trigger Event:
release
-
Statement type:
File details
Details for the file quodeq-0.8.1-py3-none-any.whl.
File metadata
- Download URL: quodeq-0.8.1-py3-none-any.whl
- Upload date:
- Size: 529.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e35328fdd9609f73c0d804eecc66e048742e9cb636b73fdc34e4b88a70e54549
|
|
| MD5 |
db32b4a599ffcc615a9b425833dfa21a
|
|
| BLAKE2b-256 |
c1c02f0632d40ce0c0196689a061869e27e2c51a715d1feef8996116ae0b14cf
|
Provenance
The following attestation bundles were made for quodeq-0.8.1-py3-none-any.whl:
Publisher:
publish.yml on quodeq/quodeq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quodeq-0.8.1-py3-none-any.whl -
Subject digest:
e35328fdd9609f73c0d804eecc66e048742e9cb636b73fdc34e4b88a70e54549 - Sigstore transparency entry: 1185308193
- Sigstore integration time:
-
Permalink:
quodeq/quodeq@b95dd01b4aee4b1793f1ad12f01a61c20b62ce25 -
Branch / Tag:
refs/tags/v0.8.1 - Owner: https://github.com/quodeq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b95dd01b4aee4b1793f1ad12f01a61c20b62ce25 -
Trigger Event:
release
-
Statement type: