Skip to content

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)}'