It judges only the code you changed
Old issues stay visible, but they never block a merge. The gate looks at new code: new issues, coverage of new lines, duplication in new lines. Small changes don't fail on coverage percentages.
Qualor runs the analyzers you trust and gates the code you change. Its AI reviewer reads your merge requests like a careful colleague and comments on the lines, on a model you choose. Free, with no lines‑of‑code licence.
#2 Add CSV export to invoices
MergedQuality gate failed· 1 new issue
export.ts:9FixedYou apply it. Qualor never commits.
AI review· 1 finding
The final page of invoices is never exportedResolved
The scanner runs in your CI, collects what every analyzer finds, works out which lines the merge request changed, and sends one report to your server. It waits for the verdict and fails the job when the gate fails.
On GitLab, findings also show in the merge request widget and the security tab through the Code Quality and SAST reports. The CI/CD component is in the GitLab CI/CD catalog.
include:
- component: gitlab.com/qualor/qualor/qualor@0.14
inputs: { image-tag: "0.14" }- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- uses: qualor-dev/scan-action@v0.14
with:
server-url: ${{ vars.QUALOR_URL }}
token: ${{ secrets.QUALOR_TOKEN }}Your analyzers in one list, and a gate on the code you change, reported in your merge requests.
Old issues stay visible, but they never block a merge. The gate looks at new code: new issues, coverage of new lines, duplication in new lines. Small changes don't fail on coverage percentages.
Qualor runs proven open-source tools, adds its own security rules, and merges what they find. The same finding from two tools shows once.
Qualor's own rules follow request data into SQL, commands, file paths, URLs and templates in JavaScript, TypeScript, Python, Java, Go and C#. For ASP.NET Core, a deep analysis after your build follows it across files, projects and Razor views.
routes/invoices.tsreads the requestservices/invoices.tspasses it oninvoices/export.tsbuilds SQL with itHighSQL built from request data
Imports coverage from LCOV, Cobertura and JaCoCo, measures cognitive complexity and finds copy-pasted code. Keeps the history of every branch and merge request.
Mark a finding as a false positive or won't fix, and the gate is judged again at once, with no new pipeline. Qualor knows an issue by its code, not its line number, so the decision survives a refactor.
src/invoices/csv.ts:41 Cognitive complexity 21 is over 15The reviewer is shown what your analyzers found, so it doesn't repeat it.
Both kinds of finding land in one issue list, so your agent fixes both through MCP.
AI findings never fail the gate.
A reviewer on your model, in the merge request's threads.
It reads the change and opens any file of the repository it needs, not only the diff.
src/invoices/csv.tschangedsrc/db.tsopenedsrc/invoices/list.tsopenedIt starts threads on the changed lines. Where a fix fits, the thread carries it as a suggested change that a person applies in one click.
The final page of invoices is never exported
Reply in its thread and it answers. A member's reply can mark the finding won't fix or false positive.
Accounting exports a few dozen invoices a month. Can this wait for the next release?
I’d recommend fixing it before the next release: an export with 1–50 matching invoices contains no invoice rows, so accounting’s usual exports are likely affected. Changing the loop condition to page <= pages includes the final page; tests around the 50-invoice boundary would help prevent a recurrence.
After a push, only new changes raise new findings. Fixed findings close and their threads resolve.
ResolvedThe final page of invoices is never exported
A strong, a standard and a fast model: any OpenAI-compatible or Anthropic model with your key, or a local one through Ollama or vLLM.
Screens from a real pull request on GitHub: a thread with its suggested change, the summary comment, and an answer to a reply.



Connect Claude Code, Cursor or any MCP client with one URL. Your agent reads your analyzers' issues and the AI review's findings, each with its code, fixes them, and checks the gate again after CI. It signs in as you and can do only what you can.
In Qualor itself, the assistant explains an issue, suggests whether a finding is a false positive, and suggests a fix that a person can post to the merge request. On Enterprise, fix suggestions for new findings are posted without a click.
A web UI your whole team can read at a glance: which gate failed and why, what to fix first, and where the code is heading. Light or dark, on a laptop or a phone.
Click through the live demo: Qualor checking its own code. No sign-up.





Add a Slack or Microsoft Teams channel in a minute. When the main branch's quality gate fails, the channel hears about it with what failed and a button back to Qualor. When it passes again, it hears that too. Every Monday morning, a security digest shows what is new across your projects.

Point Qualor at your SonarQube server. It brings over your quality profiles, your quality gates and the status of every issue, so the false positives and won't-fix decisions your team already made stay made.
qualor import sonarqube \
--url https://sonar.example.com \
--token $SONAR_TOKENThe community edition is MIT licensed and free for commercial use, with no limit on lines of code, users or projects, and includes roles and project-level access. An enterprise licence adds single sign-on, automatic provisioning and an audit trail, with compliance exports and portfolio reports on Enterprise.

Free for any use, commercial included
Everything on this page except the Enterprise features, AI code review included, with all four roles and project-level access. Use it at your company, for client work and in closed-source projects. Unlimited lines of code, users, projects and organisations.
Get startedPriced per server, never by lines of code or by seat
Business adds single sign-on, a tamper-evident audit log and a dependency licence policy, with one licence key. Enterprise adds automatic provisioning, SIEM streaming, several identity providers and priority support. Compliance exports and portfolio reports are included with Enterprise.
The server is one container with its own PostgreSQL, or your PostgreSQL 16+. Use Docker Compose on a single machine, or the Helm chart on Kubernetes.
# compose.yml: copy it from qualor.dev/docs/install-server
echo "QUALOR_VERSION=0.14" > .env # plus two generated secrets
docker compose up -dThe images are on Docker Hub. The install guide has the compose file, TLS, backups and upgrades.
Sign in as admin, create a project, then an access token with the Upload analyses scope.
Set QUALOR_URL and QUALOR_TOKEN as CI variables and add the snippet above. For review comments, connect GitLab, or create a GitHub App, add it in Settings and install it on the repository.

Yes, for commercial use too. The community edition is MIT licensed: use it at your company and for client work, with no limit on lines of code, users, projects or organisations, and with roles and project-level access. Organisations that need single sign-on, SCIM provisioning, a tamper-evident audit log or a dependency licence policy can buy a Business or Enterprise licence, priced per server, never by lines of code or by seat. Plans and prices are on the Enterprise page.
For what most teams use SonarQube for, yes: issues, coverage, duplication, complexity, quality gates on new code, and review comments on merge requests. Qualor runs proven open-source analyzers plus its own security rules, so it does not aim for rule-by-rule parity.
TypeScript and JavaScript with ESLint, Python with Ruff, Java with PMD and SpotBugs, Kotlin with detekt, Swift with SwiftLint, PHP with PHPStan, Ruby with RuboCop, Go with staticcheck, go vet and gosec, C and C++ with cppcheck, C# with Roslyn analyzers and Roslynator in your own .NET build, CSS and HTML with stylelint and HTMLHint, Qualor's own security rules that follow request data into SQL, commands, file paths, URLs and templates in JavaScript, TypeScript, Python, Java, Go and C# (for ASP.NET Core, a deep analysis after your build follows it across files, projects and Razor views), security rules for more than 30 languages with OpenGrep, committed secrets with Gitleaks, and vulnerable dependencies and their licences with Trivy. Any other tool that writes SARIF plugs in too.
Any OpenAI-compatible or Anthropic model, hosted with your own key, or a local model through Ollama or vLLM. You can give the review a strong, a standard and a fast model.
Qualor stores everything on your server. AI review sends the merge request, the files the model reads and the findings on them to the model you chose, with secrets masked; the assistant sends the lines of the issue you ask about. With a local model, your code never leaves your network.
Nothing from us: it is in the free community edition. You pay your model provider, or nothing with a local model, and daily budgets keep spend in check.
Run one command with your SonarQube address and a token. It brings over your quality profiles, quality gates and issue statuses, so the false positives and won't-fix decisions your team made stay made.
Yes, GitHub.com and GitHub Enterprise Server. Each pull request gets a check run, review comments on the changed lines and one summary comment that stays up to date. On GitLab, merge requests get the same, plus findings in GitLab's own Code Quality and security reports.
The server is one container with its database included, or pointed at your own PostgreSQL. Use Docker Compose on a single machine or the Helm chart on Kubernetes. The scanner runs in your CI as a container image or a single binary.