Documentation that is true, because it is generated.
Kuuhaku scans your repositories, finds how they talk to each other and keeps the result as a site: a map of every connection with its evidence, a page per repo, docs that update on every import.
One site for the architecture, not a wiki about it.
Every screen is built from the last import. The numbers are the code's numbers, with the file and line that produced them.
Repos are nodes; REST, queues, sockets and shared databases are the edges. Pan, zoom, expand a node in place.
Routes with callers, models, queues, env keys, dependencies, deploy and git.
What the scan could not resolve, grouped by kind, each with a suggested answer. Your click becomes a declaration.
Each import is compared with the previous one. The dashboard shows what moved.
A connection shows the file and line on both sides and is graded by the kind of proof behind it.
Know what a pull request breaks before it merges.
The check scans the branch and its base side by side and compares every call between your repos. What stops working lands on the pull request, with the file and line of each caller.
- A route removed or its method changed while something still calls it
- A new call to a route that does not exist, with the nearest ones
- A queue that loses its publisher while consumers wait
- A model field dropped while another repo still reads it
- A rule from architecture.yaml broken: "the front never talks to the database"
- One CI job on GitHub Actions or Bitbucket Pipelines, or the hosted app
Measured on 14 public systems: 127 routes moved on purpose, 165 of their 169 callers named, no false alarm.
Built for pull requests written by coding agents. Claude Code, Cursor and Copilot see one repository at a time; the contract with the others is what they break. The check sees all of them. With the MCP server connected the agent asks who_calls and impact first, and kuuhaku agents writes an AGENTS.md in every repo that says what the others depend on.
The parts a wiki never has.
Model fields and route parameters tagged by LGPD and GDPR category from their names. Which services share the database, which paths put personal data in access logs, and a CSV for the record of processing.
Slack or Teams hear about an import that changed the architecture and about a failed scan. Every week, an email with what moved: routes added, callers lost, queues orphaned, what was decided in the review inbox.
Pick a route, a queue or a repo and follow it across the workspace: who reaches it, what it touches hop by hop, and the deploy order that keeps a caller from meeting a route that is not there yet.
Three steps, then it keeps itself up to date.
An architecture.yaml names the repos and how each one calls the others. Paste our prompt into your AI assistant and it writes the first draft from the code.
repos:
web_app:
sinks:
- patterns: ["api.$METHOD($URL)"]
backend:
port_env: PORTOne SSH key per workspace, or the CLI on a machine that already has the code. Routes, call sites, models, queues, env keys and git history come out of the code itself.
$ kuuhaku scan architecture.yaml routes 861 in 146 files call sites 1.383 through 5 clients match 979 exact · 471 pattern review 44 items
Unmatched calls and queues nobody consumes land in an inbox with a suggested answer. Your click becomes a declaration and survives every rescan.
POST /upload/single/* no route matched nearest /upload/single/:id suggest typo in the client · 0.81
See it on code you can read yourself.
Nine open-source systems scanned with no YAML and no hand-fixing, opened read-only in the app: the map, every repo page, the review inbox and the cleanup list. No account needed.
23 services · Go, Java, Python, .NET, Node, PHP, Ruby, Rust · gRPC and Kafka
48 services · Java and Python · 143 connections
19 services · .NET · gRPC, RabbitMQ and a gateway
12 services · Go, Java, Python, Node, C# · gRPC
9 services · Node, Java, Python, Go, PHP · REST and RabbitMQ
8 services · Go, Java, Node · REST and RabbitMQ
8 services · Java and Python · REST and shared databases
7 services · Java · Spring Cloud gateway and discovery
7 services · Java · REST and Kafka
Scan where the code lives.
The CLI runs on a laptop or in CI, reads every repository in a folder and uploads only the graph: names, paths and line numbers, and three lines around each item left for review.
- One install with npm, or npx in CI
- A folder of repositories scans them all at once
- Every connected machine listed in the workspace
- Windows, macOS and Linux · Node 18 or newer
$ npm install -g kuuhaku $ kuuhaku login --token •••••••••••• ✓ ana-laptop is connected to Acme Platform $ kuuhaku scan . --push acme: 7 git repositories, scanned as one workspace web_app link clients · 3 of 3 resolved api routes · 861 in 146 files process_events queues · 8 published, 6 consumed acme: 7 repos scanned in 38.4s edges: 19 (12 rest, 5 queue, 1 websocket, 1 shared_db) call sites: 1,383 routed 1,302 · 979 exact · 323 pattern ✓ pushed to Acme Platform · import #215
The whole thing, in thirty seconds.
One route renamed, three repos broken, and what the map, the check and the agents would have done about it.
Pay for repos, not for seats.
Every plan starts with a 14-day free trial, no credit card required. Prices are per organisation, per month, and everyone you invite can read the site.
Early access: free for the first month after sign-up opens, then these prices.
For one person or a small team on its own repos.
- 1 workspace · up to 5 repos
- Hosted scans with a read-only GitHub or Bitbucket key, or the CLI
- Map, repo pages and the review inbox
- A suggested answer for every review item
- The pull request check in CI
- Last 3 imports kept
No credit card required
For a company with a handful of services and apps.
- Everything in Starter, plus:
- Up to 30 repos in 5 workspaces
- Scheduled scans, with nobody running them
- Import history and diffs
- The weekly digest by email
- Slack and Teams alerts
No credit card required
For many teams, many repos, and a security review to pass.
- Everything in Team, plus:
- Unlimited repos and workspaces
- Priority support
Code that cannot leave your network: the CLI scans on your own machines or CI and uploads only the graph, on every plan. Coming: SSO and read-only share links.
Start 14 days freeNo credit card required
Paying by invoice, or need a contract or a security questionnaire? Write to hello@kuuhaku.dev.
Point it at five repos. Read the map in ten minutes.
14 days free on every plan. No credit card required.
PUT /devices/:id: that path takes PATCH now src/routes/devices.js:42src/pages/devices/edit.vue:118lib/services/devices.dart:57POST /orders/cancelon api, which serves no such routesrc/store/orders.js:88POST /orders/:id/cancelGET /devices/export