Source code quality evaluation platform powered by AI
Project description
AI-powered code quality and security scanner
v1.0.7
Watch the 2-min demo · Website · Blog · Releases
AI models can now autonomously find and exploit zero-day vulnerabilities across operating systems, browsers, and web applications. Thousands of previously unknown flaws uncovered in weeks, not years.
The code you ship today will be read by models that can spot what humans miss. But the tools to prepare for this are locked behind enterprise contracts and partner programs.
Quodeq exists to change that.
Open source. MIT license. Runs locally. No telemetry. No account. No servers.
Scans any codebase with AI across six quality dimensions from ISO 25010: Security, Reliability, Maintainability, Performance, Flexibility, and Usability.
Every finding maps to a CWE identifier. You get grades, violations with line numbers, and a fix plan. Cloud providers (Claude, Gemini, Codex) for speed. Local models via Ollama for privacy.
What It Finds
CRITICAL src/db.py:15 SQL Injection via string concatenation CWE-89
query = f"SELECT * FROM users WHERE id = {user_id}"
HIGH src/auth.py:42 Hardcoded credentials in source code CWE-798
credentials = {"user": "admin", "pass": "secret123"}
MEDIUM src/api.py:88 Missing rate limiting on login endpoint CWE-307
@app.route("/login", methods=["POST"])
MINOR src/utils.py:23 Bare except clause hides errors CWE-396
except: pass
Each finding includes a reason, the offending code, and a fix plan. Results are stored as JSON on your machine.
Getting Started
1. Prerequisites
| OS | Command |
|---|---|
| macOS | brew install python node pipx |
| Debian / Ubuntu | sudo apt install -y python3.12 python3-pip pipx nodejs npm |
| Fedora / RHEL | sudo dnf install -y python3.12 python3-pip pipx nodejs npm |
| Arch | sudo pacman -S python python-pipx nodejs npm |
Debian/Ubuntu heads-up:
nodejsandnpmare separate packages.apt install nodejsalone is not enough. If you also use the native desktop window (not--browser), you'll needsudo apt install -y python3-gi gir1.2-webkit2-4.1too — otherwise quodeq will auto-fall-back to opening the dashboard in your default browser.
Minimum versions: Python 3.12+, Node.js 18+, npm 9+.
2. Install quodeq
pipx install quodeq # isolated, recommended
# or: pip install quodeq
3. Pick an AI provider
Quodeq needs an LLM to do the evaluation. You have two options:
Local, free, private — Ollama with Gemma 4:
# install ollama from https://ollama.com/download, then:
ollama pull gemma4-26b-32k
ollama serve # runs in the background
Cloud, faster — one of the agentic CLIs (at least one):
- Claude Code —
npm install -g @anthropic-ai/claude-code - Codex CLI —
npm install -g @openai/codex - Gemini CLI —
npm install -g @anthropic-ai/gemini-cli
4. Launch the dashboard
quodeq
The dashboard opens at http://127.0.0.1:4173. Use Settings → AI Provider to select the one you installed in step 3, then Evaluate to point at a project and start your first scan.
If the native window doesn't show up (common on Linux without GTK), run quodeq --browser instead.
macOS App (beta)
Download the .dmg from Releases, open it, and drag Quodeq.app to Applications. On first launch:
xattr -cr /Applications/Quodeq.app # Required for unsigned apps
Or right-click the app, select Open, then click Open in the dialog.
Dashboard
- Grades and scores per dimension with A-F letter grades, numeric scores, and trends across runs
- Violations explorer to drill into findings by file, principle, or CWE classification
- Code map showing a visual heatmap of where issues concentrate in your codebase
- Custom standards to create your own evaluation dimensions or import from the library
Click any dimension, file, or principle to explore the details. Dismiss false positives directly from the UI.
Running quodeq is equivalent to quodeq dashboard. Both open the same UI.
CLI
quodeq evaluate /path/to/project
quodeq evaluate /path/to/project --scope src/api # Scoped to a subdirectory
quodeq evaluate /path/to/project -d security # Single dimension
AI Providers
Choose what fits your workflow. Configure in Settings from the dashboard.
| Provider | Type | Getting started |
|---|---|---|
| Ollama | Local | Free, private, code never leaves your machine |
| Claude Code | Cloud | Best balance of speed, quality, and cost |
| Codex CLI | Cloud | OpenAI models |
| Gemini CLI | Cloud | Google models |
For local analysis we recommend Gemma 4 (
gemma4:26b). Reducing the context window to 32k still gives good results and allows running multiple subagents in parallel.
How It Works
- Detect languages, frameworks, and project structure
- Analyze with AI agents that read the code using read-only tools
- Collect findings as structured JSONL via tool calls
- Score against ISO 25010 principles with CWE classifications
- Report per-dimension grades, violations, compliance, and fix plans
Results are stored in ~/.quodeq/evaluations/ and persist across sessions. Works with any language. The AI analysis engine reads and understands code regardless of the tech stack.
Quodeq scores each principle on a 0 to 10 scale using four independent constraints. Full details in the scoring formula documentation.
Standards
By default, Quodeq evaluates the six ISO 25010 dimensions. It also ships with Clean Architecture and Domain-Driven Design standards. You can create your own from the dashboard, or ask any AI to generate one as a .json file and import it.
Development
Run from a fresh checkout:
git clone https://github.com/quodeq/quodeq.git && cd quodeq
uv sync # install Python deps into .venv/
uv run quodeq # launch the dashboard
uv run pytest # run the test suite
Same OS prerequisites apply as for the pipx install — Node.js 18+ + npm for the dashboard UI, and a configured LLM provider (Ollama or Claude Code / Codex CLI / Gemini CLI) before you can actually scan anything.
If the dashboard window doesn't appear on Linux, run uv run quodeq --browser (the native window needs python3-gi + gir1.2-webkit2-4.1, which aren't pulled in by the pip wheel).
Changelog
See CHANGELOG.md for release history.
License
MIT. 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-1.0.7.tar.gz.
File metadata
- Download URL: quodeq-1.0.7.tar.gz
- Upload date:
- Size: 32.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a9e2410759b548091f7acb4d8794ddcf655d81cf581a4c6f40ec6b1e864cb1e
|
|
| MD5 |
4e6ade901b402dad8b461ec5fcf33dbc
|
|
| BLAKE2b-256 |
08e032d14661a92858ba773949028b71cdc38da2a83c58fed6bc95708d3dfa10
|
Provenance
The following attestation bundles were made for quodeq-1.0.7.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-1.0.7.tar.gz -
Subject digest:
1a9e2410759b548091f7acb4d8794ddcf655d81cf581a4c6f40ec6b1e864cb1e - Sigstore transparency entry: 1375459118
- Sigstore integration time:
-
Permalink:
quodeq/quodeq@4ad508656d84a53736bafcf3736ccdd8b384a40d -
Branch / Tag:
refs/tags/v1.0.7 - Owner: https://github.com/quodeq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4ad508656d84a53736bafcf3736ccdd8b384a40d -
Trigger Event:
release
-
Statement type:
File details
Details for the file quodeq-1.0.7-py3-none-any.whl.
File metadata
- Download URL: quodeq-1.0.7-py3-none-any.whl
- Upload date:
- Size: 973.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0d5a29dd2616f076a58e75a16fcd0205192ff0fa38f97ec83917f232f9fddfe
|
|
| MD5 |
85696c4732b19be5d2e7887cb2bdbf41
|
|
| BLAKE2b-256 |
d2ac42fb065c4d6e0142ca96d8d507969463045c47a481325a43ac9ddc84e4d9
|
Provenance
The following attestation bundles were made for quodeq-1.0.7-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-1.0.7-py3-none-any.whl -
Subject digest:
e0d5a29dd2616f076a58e75a16fcd0205192ff0fa38f97ec83917f232f9fddfe - Sigstore transparency entry: 1375459165
- Sigstore integration time:
-
Permalink:
quodeq/quodeq@4ad508656d84a53736bafcf3736ccdd8b384a40d -
Branch / Tag:
refs/tags/v1.0.7 - Owner: https://github.com/quodeq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4ad508656d84a53736bafcf3736ccdd8b384a40d -
Trigger Event:
release
-
Statement type: