Two ways to start, depending on whether you want to sign up.
| CLI | Web app | |
|---|---|---|
| Sign-up needed | No | Yes |
| Finds issues | Yes | Yes |
| Suggests fixes | No | Yes |
| Keeps a history | No | Yes |
| Best for | Trying it out on local code | Ongoing work on a repository |
Option 1: CLI, no account
The fastest way to see what the tool finds. Nothing to install and nothing to sign up for:
npx code-evolution-lab analyze
That scans the current directory and prints a summary. It also writes a JSON
report, a Markdown report, and a score file to .codeevolution/.
Narrow it down when a whole project is noisy:
# Only high severity and above
npx code-evolution-lab analyze --severity high
# Only one category
npx code-evolution-lab analyze --category loop
# Print JSON instead of writing files
npx code-evolution-lab analyze --json --no-files
The CLI detects issues and reports them. It does not generate fixes — that happens server-side and needs an account. See CLI Commands for the full command set and Rule Reference for the 35 rules it runs.
Track improvement over time
Save a baseline, make changes, then compare:
npx code-evolution-lab scan # save a snapshot
# ... make your changes ...
npx code-evolution-lab compare # exits non-zero if the score dropped
Because compare fails on a regression, it works as a CI gate without any
account or API key.
Option 2: Web app, with an account
Registering gets you the parts the CLI cannot do: generated fixes, and a saved history.
- Register at codeevolutionlab.com.
- Point it at a repository.
- Watch the scan run — progress streams live as each file is analysed.
- Review the issues found, each with ranked candidate fixes.
Every analysis is saved: the run itself, the issues found, and the solutions generated for them. You can come back to a previous analysis rather than re-running it.
What you get on the free tier
| Free | Pro | |
|---|---|---|
| Analyses per day | 1 | 100 |
| Analyses per month | 30 | 100 |
| Connected repositories | 1 | Unlimited |
| Solutions per issue | 3 | 5 |
| Private repositories | No | Yes |
All 11 detectors run on both tiers — there is no detector-level gating. See Pricing Tiers for the full comparison.
What a finding looks like
Given this:
async function getOrdersWithUsers() {
const orders = await Order.findAll();
for (const order of orders) {
const user = await User.findByPk(order.userId);
order.user = user;
}
return orders;
}
Both the CLI and the web app flag an N+1 query — one query to fetch the orders, then one more per order. The CLI reports it with a severity and a location. The web app additionally offers candidate rewrites, such as batching the user lookup into a single query before the loop.
Next steps
- Detectors — what each of the 11 categories catches
- Detectors and Solution Generators: A Field Guide — every issue type with worked examples
- CLI Commands
- REST API — for Pro accounts automating scans