KyZN
KyZN 3.0 · Six language ecosystems · Linux and macOS

Improve your codebase. Keep the final say.

KyZN runs real linters, coordinates specialist reviews, and applies fixes in independently verified batches. You review before anything merges.

~/your-projectIllustrative
$ kyzn measure
 
Project Health Score: 68 / 100
 
security ████████████████░░░░ 80%
testing ██████████░░░░░░░░░░ 50%
quality ██████████████░░░░░░ 72%
performance ████████████████████ 100%
documentation ████████████░░░░░░░░ 60%
 
$ kyzn fix --allow-unsafe-host-execution
 
! UNSAFE HOST EXECUTION ENABLED for analyze --fix.
! KyZN has no container/VM isolation yet.
 
→ Profiler: scanning repo conventions...
→ 4 specialists dispatched (security | correctness | performance | architecture)
→ Consensus: deduplicating and ranking findings...
→ HIGH batch... verified ✓ committed
→ MEDIUM batch... verified ✓ committed
→ LOW batch... verified ✓ committed
 
→ PR opened for review — merge is always manual
AISpecialist reviews
6Languages
2CI OS targets
0Auto-merges
Requires Claude Code + GitHub CLI + Bash 4.3+ · Linux & macOS

The Problem

Improving code with AI is still manual

KyZN coordinates the workflow with one command. The final diff review stays yours.

8Manual steps every time

Run linters, type checkers, and security audits
Read the output, decide what matters
Paste findings into Claude with enough context
Hope Claude doesn't burn tokens on cosmetic renames
Review the diff for regressions and leaked secrets
Run tests yourself
Check the health score didn't drop
Create a PR with a summary

1One coordinated workflow

$ kyzn fix --allow-unsafe-host-execution

Profile the repo. Run specialist reviews. Build consensus. Apply and verify fixes in severity batches. Review the resulting changes before merging.

ProfileSpecialist reviewsConsensusFixVerifyReview

Get Started

Install with one command

One command. Works on macOS and Linux.

Install
$ curl -fsSL https://raw.githubusercontent.com/bokiko/KyZN/main/install.sh | bash

First run

kyzn doctor
kyzn measure
kyzn analyze
kyzn fix --allow-unsafe-host-execution

Why the flag: KyZN has no container or VM isolation yet. A mutating run executes your repository’s own build and test commands, and AI-generated changes, with your user permissions. The acknowledgement applies to that single invocation and is not stored — no config setting or environment variable can grant it.

Requires: git, gh (GitHub CLI), claude (Claude Code), jq, yq, Bash 4.3+, plus the toolchain for your language. macOS users need brew install bash. Optional: kyzn init saves settings — interactive runs prompt without it.

Pipeline

How it works

From detection to verified changes. Mutating runs need an explicit per-run acknowledgement, and merging remains manual.

1

Detect

Identifies project type from package.json, pyproject.toml, Cargo.toml, go.mod, .csproj/.sln, pom.xml or build.gradle — with a generic fallback

2

Measure

Static repository signals always; with the host-execution flag, real tools too (eslint, ruff, clippy, go vet, dotnet, Maven/Gradle)

3

Analyze

Specialist reviews examine security, correctness, performance and architecture; consensus deduplicates and ranks findings

4

Fix

Sonnet implements fixes in severity batches — CRITICAL first, LOW last — with build verification after each

5

Verify

Each severity batch is verified independently. A failed batch gets one repair attempt, then is reverted. If verification cannot run, KyZN stops without opening a PR

6

Open a PR

KyZN pushes verified changes to an isolated kyzn/ branch and opens a pull request when GitHub access is available. Merging remains manual

Efficiency

More value per token

Every Claude invocation is budgeted, scoped and stateless by design. These are the mechanisms.

Structured JSON input

Linter output is parsed into scored JSON — Claude gets signal, not 200 lines of raw tool output

Mode constraints

Deep mode instructs the model to prefer a few high-impact fixes over cosmetic churn like renames and reformatting

Read-only analysis

Specialist agents only get Read/Glob/Grep — zero tokens spent on exploratory edits during analysis

Cached profiler

Repo conventions are profiled once per commit SHA and reused across runs

Consensus dedup

Specialist reviews may flag the same issue — consensus removes duplicates before the fix phase starts

Hard budget caps

Every Claude invocation has --max-budget-usd and --max-turns enforced

Stateless sessions

--no-session-persistence on every call — no cross-run context bloat accumulating

Structured fix plans

A finding may carry a fix plan — target file, function and pattern to follow — giving the fix agent a concrete starting location

Features

Everything you need

From health scoring to pull requests ready for review. Pure Bash, driven by Claude Code.

Health Scoring

5 weighted categories out of 100: security (25%), testing (25%), quality (25%), performance (15%), documentation (10%). Static repository signals by default; real language tooling once you allow host execution.

Deep Analysis

The standard profile runs four Opus specialist reviews in parallel — security, correctness, performance, and architecture. Single-reviewer and focused modes are also available. Consensus deduplicates and ranks findings.

Auto-Fix

Sonnet implements fixes in severity batches with build verification after each. If a fix breaks the build, reflexion retry gives it a second chance with error output.

Safety Model

Layered by design: branch isolation, per-language tool allowlists, file restrictions, budget caps, verification gates and secret detection.

Host-Execution Gate

quick, improve, fix and doctor --install refuse to start unless that run passes --allow-unsafe-host-execution. No config setting or environment variable can grant it, because KyZN has no container or VM isolation yet.

Review Workflow

kyzn history lists recorded runs, kyzn diff shows what a run changed, and kyzn approve/reject records your verdict; a rejection can include a reason.

Languages

Built-in support for 6 ecosystems

Real tools, not LLM guesses. Each language uses its native linters, type checkers, and test runners.

Node.js

eslint, tsc, vitest/jest, npm audit

Python

ruff, mypy, pytest, pip-audit

Rust

clippy, cargo test, cargo audit

Go

go vet, go test, govulncheck

C# / .NET

dotnet build, dotnet test, dotnet list package

Java / JVM

Maven or Gradle build/test, dependency-check

Plus a generic measurer that works on any project type for general analysis.

Safety

Layered protection

KyZN runs AI with real tool access on your code, on your host. These are the constraints that apply.

Host-Execution Gate

  • No container or VM isolation yet — this is the reason for the gate
  • quick, improve, fix / analyze --fix and doctor --install refuse to start without --allow-unsafe-host-execution
  • The acknowledgement is per invocation and is never stored
  • kyzn analyze and static kyzn measure run without it and change no source
  • Recurring mutating schedules cannot be created; kyzn schedule off still removes legacy ones

Isolation

  • All changes on kyzn/ branches — never touches main
  • Git hooks disabled via core.hooksPath=/dev/null
  • Rejects repos with symlinks escaping the repo root
  • Autopilot is disabled — every generated PR waits for human review

Access Control

  • Per-language tool allowlists tightened to specific subcommands
  • Claude cannot read ~/.ssh, ~/.aws, .env, key files, Terraform state
  • CI workflow files unstaged by default
  • Secret detection unstages .env, .pem, .key, and credential patterns

Budget & Limits

  • quick/improve caps its configured budget at $25 and turns at 100 per Claude invocation; self-repair is a separate half-budget invocation. The accumulated run diff is capped at 10,000 lines.
  • fix takes its own analysis and fix budgets, defaulting to $5 for the fix phase
  • Every Claude invocation carries --max-budget-usd and --max-turns
  • Configurable timeouts — 600s default for quick/improve, 900s for analysis and fix

Verification Gates

  • quick/improve: red final verification never takes the success path — it routes to the configured on_build_fail strategy, plus an aggregate score gate and a 5-point per-category floor
  • fix: each severity batch is verified independently, gets one repair attempt, and is reverted if still red
  • on_build_fail: draft-pr may open a clearly marked draft PR of a red result — but never when verification could not run at all
  • Pinned binary downloads are SHA256-verified where a published checksum exists for the platform; packages installed via apt or brew are verified by those tools, not by KyZN

Full threat model available in SECURITY.md

Open Source

Contribute to KyZN

KyZN is early-stage and actively developed. Whether it's a bug fix, a new language measurer, or a pipeline idea — contributions are welcome.

Quick dev setup — no build step, pure Bash
$ git clone https://github.com/bokiko/KyZN.git
$ cd KyZN
$ bash tests/selftest.sh
# quick suite; --full adds stress tests

New Languages

Add measurers for Ruby, PHP, Elixir, and more

measurers/ — follow python.sh as a template

Measurers

Improve scoring accuracy, integrate new tools

measurers/*.sh

Analysis Prompts

Better specialist prompts, fewer false positives

templates/

Safety

New edge cases, threat model gaps

lib/execute.sh + SECURITY.md

Tests

Cover untested paths, add new edge cases

tests/selftest.sh

Docs

Improve guides, add examples and tutorials

README.md + docs/

Found a bug or have an idea?

Use our issue templates to report bugs or request features.

See CONTRIBUTING.md for conventions, commit format, and PR guidelines.

Start improving your codebase today

Measure for free, analyse without touching your source, and review verified fixes before anything merges.

MIT Licensed|Self-tested on Linux + macOS CI|Published threat model