General
What is CodeCharter?
A deterministic code quality tool for .NET teams with a small LINQ-like DSL for custom rules and 120+ built-in rules. More at What is CodeCharter?.
Does CodeCharter make code review obsolete?
CodeCharter enforces conventions that can be described deterministically — naming, architecture, layering, complexity thresholds, and async correctness. Code review remains for logic substance and edge cases.
Pricing
What does CodeCharter cost?
From €599 per team per year — see Plans overview for the full table including team sizes and Enterprise. Monthly billing is also available in the portal checkout.
Is there a trial?
Yes, 7 days full access, no credit card required. See Trial.
How do my team members get licensed?
One person buys the plan through their portal account and copies the
downloaded codecharter.license (or the licensed CLI archive) to each developer
machine within the seat count. The license file is not bound to a machine. CI
pipelines use an API key from the buying account instead. Browser sign-in with
codecharter login works only for machines of the buying account itself, since
the account confirming the sign-in is the one that needs the subscription. See
Rolling out CodeCharter to your team.
How do I add team members?
Work in an organization and invite your colleagues into it. Every member holds exactly one role that decides what they may do, see Roles and permissions. If you verify your email domain and switch on auto-join, colleagues registering with an address on that domain are offered membership during onboarding, see Email domains. Billing follows the occupied seats, see Seat definition.
Does the subscription renew automatically?
Yes. Self-service subscriptions renew automatically through Stripe for the same period. You can cancel at any time in the portal, see Cancellation. Enterprise contracts expire after the contractually agreed minimum term without automatic renewal.
Source code and privacy
Does my source code go into your cloud?
No. Analysis runs entirely locally, on your machine or the CI runner. See How we handle source code.
Are your servers in Germany?
Yes, all data is stored on servers in Germany. More at Privacy and GDPR.
How do I delete my account?
On the profile page in the "Delete account" section. Details at Delete account.
How do I add extra protection to my account?
Set up an authenticator app (TOTP) as a second factor under "Account and security"; you also receive recovery codes for when the app is unavailable. Every account is additionally protected by a lockout after repeated failed attempts and a sign-in log. See Login and Logout.
Technical
Which platforms does the CLI support?
Windows x64, Linux x64, macOS x64, and macOS arm64, so on Linux use x64 runners. The standalone archives are self-contained — no separate .NET runtime installation needed. Analyzing a solution does require a .NET SDK installed on the machine. On Windows there is also an installer (setup.exe), and for VS Code an extension (VSIX) — both on the portal Downloads page. See Windows installer and VS Code extension.
How do I write a custom rule?
A LINQ query in a .ccr file under rules/. See Hello World DSL.
Which properties does the schema have?
Full list at Syntax overview. Top-level collections are Types, Methods, Properties, Fields, Events, Namespaces, Assemblies, TypeDependencies, AllBodies, and Files.
Which CI systems are supported?
GitHub Actions with a native action, plus GitLab CI, Azure DevOps, Bitbucket, TeamCity, Jenkins, and any system with shell access. Details at CI/CD integration.
How do I integrate CodeCharter into a self-hosted CI?
Download the standalone CLI and run it in a build step. See CLI as standalone binary.
How does the CLI get a license on a CI runner?
Store an API key from the portal in the CODECHARTER_API_KEY environment variable on the runner. The CLI then automatically fetches a short-lived CI license from the portal when needed. See API keys in secrets and License.
Can I use CodeCharter from AI tools?
Yes. The CLI includes an MCP server (codecharter mcp), and codecharter mcp install registers it for Claude Code, Cursor, Claude Desktop, Windsurf, and Gemini. See MCP rule authoring.
Requirements
Does this replace our issue tracker?
No. CodeCharter has no assignment, no status workflow across columns, no estimate, and no board. Keep Jira, Azure Boards, or whatever you use. A requirement enters the corpus only once it is agreed and someone will later want to know whether it was fulfilled. The full boundary is covered in Scope and effort.
What happens when a requirement or the code changes?
On acceptance, codecharter req accept pins the evidence the approval rests
on: a fingerprint of the anchored code region, plus the hash of the test
method for a test criterion. If that evidence changes, the pin no longer
matches and the requirement renders as stale instead of silently continuing
to count as fulfilled. You then accept again, deliberately.
How much effort is this?
Creating a requirement takes minutes; writing honest criteria takes longer, because that is where the real decision happens: what tells you the commitment is met. You do not save that time, you move it from acceptance to the start. Three recurring costs appear in day-to-day work, see Scope and effort.
What does an auditor see in the end?
Versioned files in the repository: the text of the commitment, the place in
the code it is bound to, and per acceptance check who approved it when and on
what evidence. Through documents.yml that can be arranged into a
requirements specification, a functional specification, or an acceptance
protocol.
Does every method need a [Satisfies] attribute?
No. Coverage measures how much code is reachable from a requirement through a justification walk, so an attribute at the entry point also covers the call graph behind it. Infrastructure can be exempted explicitly, and the report is a report first: it only fails once you enable the gate. See Requirements coverage.
Can an AI agent accept requirements on its own?
No, and that is deliberate. Over MCP an agent may read, check, measure,
draft, bind, and request acceptance. Acceptance itself exists only on the
command line through codecharter req accept, so an agent cannot sign off on
its own work. See
Requirements over MCP.
How do we bring in our existing specification document?
By hand, and deliberately only the part that needs proving. In a
specification with two hundred sentences that is rarely more than twenty or
thirty. An AI agent can prepare the transfer with req_draft and req_bind;
the review stays with you. The steps are described in
Scope and effort.
Support
How do I reach you?
At support@codecharter.tools, response time on business days typically within 24 hours. For security vulnerabilities, include "Security" in the subject line — we respond within 48 hours. More at Support and contact.