hiiu analyze
Read a repo and report what it is: framework, router, routes, API handlers. Read-only, deterministic, and it never picks an app for you.
hiiu analyze [path]
Reads a directory and reports what it is. The framework, the router, the routes it walked, the API handlers it found. This is the facts layer: everything in the document came out of the filesystem, and nothing in it is a judgement.
No network, no model, no prompts, and nothing written anywhere. Two runs of one input are byte-identical.
Arguments and flags
[path] |
The repo or app directory to analyse. Default . |
No command-specific flags. Every global flag applies.
The path is the app
hiiu does not select an app out of a workspace, not even when there is exactly
one candidate. Which app to build is a decision, and
this is the layer whose contract is that it never holds one. So point it at the
directory holding the app's package.json:
hiiu analyze ./apps/web
Getting that wrong is exit 3 with NO_SUPPORTED_APP, and the message names
what it looked for.
One consequence worth knowing
An app inside a monorepo has its lockfile above the analysed root. hiiu finds
the package manager by walking up to the git repository root, but reports
lockfile as null, because a path outside the analysed root cannot be
written without .. and the facts schema rejects that.
Exit codes
| Code | When |
|---|---|
0 |
It read the app |
3 |
Not a supported frontend app, or the path does not exist |
Example
hiiu analyze --json | jq '{framework, router, routes: (.routes | length)}'