KATARINA_* v0.1 / in development

// YOUR CODE. UNDER CROSS-EXAMINATION.

Find the flaw.
Hear the defense.
Bring the evidence.

Security review for Solidity, Rust, C/C++ and backend code.
Small agents scout. Independent agents argue.
Every conclusion leaves a paper trail.

$ meet katarina

Go + pi via FFI / one binary / your model providers

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣠⣾⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢠⣾⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠈⠻⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠸⣦⣈⠙⠿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣿⣿⡇⠀⠈⢻⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢻⣿⠀⠀⠀⠀⠻⣿⣿⣿⣿⣶⣤⣤⣤⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⡄⠀
⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠈⣉⡉⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠃⠀
⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
FIG. 001 / A SHARP POINT OF VIEW

[ 01 / THE IDEA ]

Make the audit about the hard questions.

Prepare reviewed code, documented design decisions, tests, and a record of what needs attention. Give auditors the evidence and context to investigate potential issues.

Findings are hypotheses for human review. Detection quality and audit savings have not yet been established through independent evaluation.

[ 02 / THE REVIEW LOOP ]

No finding gets a free pass.

Unhinted agents develop their own hypotheses before guided research and source-wide review. Solidity reviews also examine incentives, capital costs, MEV, liquidation and governance. A mechanism can work exactly as written and still put its participants at risk. [ economic review ]

01

SCOUT

Cover every included file.
Follow callers and state.
Use inexpensive models.

02

DEBATE

Independent challenge.
Independent defense.
Then a rebuttal.

03

ASSESS

Check the evidence.
Check the intended design.
Use a stronger reviewer.

04

DECIDE

[+] log for review
[-] ignore with a reason
[!] write a test

[ 03 / FOLLOW THE INVESTIGATION ]

See the work.
Know what comes next.

An audit map follows the actual review stages, from unhinted discovery to proof verification. See which workers are active, which stages were skipped, and what is blocking progress.

Saved job counts and budget reservations survive a restart. The terminal adapts to its size, keeps recent activity in view, and leaves a session summary when work stops.

KATARINA / AUDIT CONTROLILLUSTRATIVE DASHBOARD / CURRENT SOURCE
running / session review-42source: ./protocol
MODEL CALLS ACTIVE
2 / 4
CALLS RESERVED
38 / 300
USD RESERVED
$1.25 / $12.00
JOBS COMPLETED
32

AUDIT ROUTE

  1. [-]Configured toolsskipped
  2. [x]Unhinted discoveryfinished
  3. [>]Guided researchactive
  4. [ ]Architecture + planningwaiting
  5. [ ]Source review + investigationswaiting
  6. [ ]Challenge / defend / judgewaiting
  7. [ ]Follow-ups + synthesiswaiting
  8. [ ]Proofs + verificationwaiting

ACTIVE WORK

investigator / configured model

exploration:2

context_read: collateral and oracle paths

investigator / configured model

exploration:3

Guided research / model call in progress

Workers, tools and test execution appear as they run. Follow-up work depends on the evidence.

RECENT ACTIVITY

stage_started guided / 2 discovery slots

context_read exploration:2 / source evidence

Keep the investigation. SQLite checkpoints retain completed work. Resume with the source snapshot checked before the next agent starts. Reservations are retained; they are not actual billing.

Keep the evidence. Run configured tests locally, on user-provided SSH machines, or on disposable EC2 hosts. Keep generated tests, review arguments, JSON reports and SARIF together.

[ dashboard guide ] / [ Solidity workflow ] / [ reports + recovery ]

The preview above illustrates the current source implementation. Use --tui for the dashboard; omit it for ordinary logs. Stage completion does not establish coverage or confirm security.

[ 04 / DOWNLOAD + RUN ]

A terminal. A repository. Your keys.

Download the pi-linked executable. Go, Rust and a database server are not needed to run it. Optional analyzers and project test tools are installed separately.

[ download Linux x86_64 ]
[ source archive ] / [ SHA-256 checksums ] / [ installation guide ]

The website and manual describe the current source tree. The dashboard and other recent additions may not be included in the linked preview downloads; build the current source to use them.

0.1.0-preview.1 / unsigned development preview / Linux x86_64 with glibc 2.35 or newer. Native macOS downloads are not included in this preview. [ macOS installation + security ]

# verify and extract the download first; see the installation guide
./katarina version
./katarina init
# set your API key in the environment or a private credentials file
./katarina doctor
./katarina start --tui ./your-project

Prefer to compile it? The source archive includes locked dependencies and build instructions.

OPENROUTER / CLAUDE / OPENAI / DEEPSEEK / OPENAI-COMPATIBLE

Use environment variables or a private credentials file. Pick a provider and model for each agent role. The TUI is opt-in.

OPTIONAL / DISPOSABLE AWS TEST HOSTS

[ download stack YAML ] / [ launch AWS stack ] / [ AWS setup guide ]

Open the prefilled stack in Asia Pacific (Seoul), supply the existing IAM principal and review the permissions. Configure credentials and a prepared test AMI separately. Local analysis does not need AWS.

[ 05 / MEASURE THE REVIEW ]

A review you cannot measure
is a review you cannot trust.

Katarina's own tests check orchestration, budgets and recovery. They do not check whether it finds anything. katarina-bench does, and ships in the source tree as its own module.

Pinned cases with answer keys. Repaired controls and benign lookalikes, so false alarms are counted instead of assumed. A held-out family that stays out of the tuning loop.

NOTHING PASSES ON WORDING

No finding is matched to an answer key by its text. An issue counts as recovered only when a person says so — optionally blind, optionally twice, with disagreement recorded rather than averaged away.

NOTHING PASSES ON EXIT CODE

A generated test that exits zero is command success. It becomes evidence only when the same test fails on the repaired sibling, for a reported reason.

NOTHING RUNS LOOSE BY ACCIDENT

Snapshot and generated code run in a throwaway LXD instance with no network and no host mounts. A missing runtime fails the run; it never quietly downgrades.

# a benchmark run, start to finish
cd benchmark && make build
./bin/katarina-bench validate --suite cases/suite.yaml --profile profiles/discovery-lxd.yaml
./bin/katarina-bench plan     --suite cases/suite.yaml --profile profiles/discovery-lxd.yaml --run r1
./bin/katarina-bench oracle   --suite cases/suite.yaml --profile profiles/discovery-lxd.yaml --run r1
./bin/katarina-bench run      --suite cases/suite.yaml --profile profiles/discovery-lxd.yaml --run r1
./bin/katarina-bench adjudicate list --run r1 --suite cases/suite.yaml --blind
./bin/katarina-bench differential --suite cases/suite.yaml --run r1
./bin/katarina-bench metrics  --run r1 --suite cases/suite.yaml
# gate on criteria agreed before the run; nonzero exit for CI
./bin/katarina-bench gate     --run r1 --suite cases/suite.yaml --thresholds thresholds.yaml

$ how to bench

[ benchmark reference ] / [ comparative evaluation ] / [ writing a case ]

Two case families ship, one held out, both synthetic. A result measures this suite, not software in general. Detection quality against another harness has not been measured.

[ 06 / THE MANUAL ]

Know what is running.

START + CONFIGURE

[ getting started ]
[ product specification ]
[ configuration ]
Scope, providers, models and budgets.

REVIEW + RESUME

[ terminal dashboard ]
[ Solidity workflow ]
[ architecture ]
[ behavior + definitions ]
[ knowledge + evidence ]
[ reports + recovery ]
Components, requirements and evidence.

TEST + SHIP

[ running tests ]
[ AWS infrastructure ]
Local tests and disposable infrastructure.

MEASURE + PROVE

[ benchmark ]
[ research design ]
Detection, false alarms, evidence and review cost.

[+] Quick reference
katarina init                 write an example configuration
katarina doctor               check providers and tools
katarina index ./project      inspect file coverage
katarina start --tui ./project  start with the audit dashboard
katarina sessions --state ./project/.katarina
katarina resume --state ./project/.katarina SESSION
katarina report --state ./project/.katarina SESSION
katarina aws template         write the CloudFormation YAML

benchmark, from ./benchmark
katarina-bench validate       check the suite and pinned snapshots
katarina-bench oracle         verify each case's reference tests
katarina-bench run            run the harness against fresh workspaces
katarina-bench adjudicate     record independent human verdicts
katarina-bench differential   grade generated tests against a repair
katarina-bench metrics        recall, precision, evidence and cost
katarina-bench gate           apply agreed thresholds; nonzero on failure

Use the resume command printed at startup to retain the selected configuration and limits.

[ Read the complete manual ] / [ download the preview ]