CodeTitan

§ 01About

An immune system,not a scanner.

CodeTitan was built because generic scanners plateau after a week. They never learn what your repo actually cares about. Every merged PR, every dismissed finding, every applied fix is recorded into a profile that lives inside your repository and is applied to the next review.

Rules shipped
266
Languages live
JS/TS
Taint passes
3
Engine price
$0

§ 02Letter
From the founder · 2026

Every scanner I've used treats week one and week fifty the same. Generic rules plateau. The signal that matters — the pattern your team almost merged but caught in review, the dismissed finding, the fix that got reverted — all of it gets thrown away.

I built CodeTitan to keep that signal. Every PR merged, dismissed, or fixed is recorded into a per-repo profile stored in .codetitan/learned-profile.json. The profile is yours. It lives in your repo. You can grep it, fork it. If you leave, you take it with you.

Deterministic rules come first, because when a tool interrupts your PR, you deserve to know why. --no-ai is the default. The AI pass is something you switch on yourself, with your own API key — never something that turns up uninvited.

The goal is a codebase immune system. Something that records context per PR, applies that context to future reviews, and stays out of the way the rest of the time. Whether it outperforms generic scanners over a month is what the beta will measure.

Irfan Topalović · Founder

§ 03Beliefs
  1. Belief 01

    A scanner you do not own is a scanner you cannot trust.

    The learned profile lives inside your repo. Portable between teams, hostile to lock-in.

  2. Belief 02

    Review belongs on the PR, not in a dashboard.

    Every finding lands where the decision is made. No "switch to a tool" flow.

  3. Belief 03

    Generic rules plateau. Specific profiles can do more.

    Repo-local profile is implemented and locally verified. Whether the learning meaningfully changes outcomes over a month is what the beta will test.

  4. Belief 04

    Ship deterministic first. AI second.

    --no-ai is the default. Probabilistic tools belong where humans can audit them.


§ 04Join

Give your repo a memory.