Intro
Installation
@hiip is a private shadcn registry. Every item installs through the ordinary shadcn CLI — as source, into your repo — but the registry answers 401 until it sees a token. Four steps, once per project.
1Get your token
There is no self-serve page. Tokens are handed out by a person, one per team.
Email phuong.phung@hiip.asia and you will get one back. Treat it like any other credential: it is not scoped to a single item, so anyone holding it can read the whole registry.
Request a token2Register @hiip
There is no global directory of shadcn namespaces. @hiip resolves only against your own components.json — without this block the CLI stops at "Unknown registry".
{
"registries": {
"@hiip": {
"url": "https://ui.hiip.ai/r/{name}.json",
"headers": { "Authorization": "Bearer ${HIIP_REGISTRY_TOKEN}" }
}
}
}{name} is the CLI's own placeholder, substituted per item — leave it literal. The ${HIIP_REGISTRY_TOKEN} is expanded from your environment at install time, so the file itself stays safe to commit.
3Set your token
The CLI reads it out of the environment. Either put it in an env file next to components.json, or export it for the session.
HIIP_REGISTRY_TOKEN=your-token-here
export HIIP_REGISTRY_TOKEN=your-token-here bunx shadcn@latest add @hiip/bubble
Add the env file to your .gitignore if it is not there already.
4Install a component
Install hiip-theme first. Every other item is styled against its tokens — install one without it and you get the right markup in the wrong colours, with no error anywhere.
The token set — start here
bunx shadcn@latest add @hiip/hiip-themeThen any component
bunx shadcn@latest add @hiip/bubbleA bare URL works too, and reads no config at all — which is why its token has to travel in the query string. Handy for a one-off; prefer step 2 for anything repeated, since this form lands in your shell history.
bunx shadcn@latest add "https://ui.hiip.ai/r/bubble.json?token=$HIIP_REGISTRY_TOKEN"
Manual install
The payload is plain JSON: every file's full source, its target path, and the npm packages it needs. Fetch it and copy the files in by hand if you would rather not run the CLI.
curl -H "Authorization: Bearer $HIIP_REGISTRY_TOKEN" \ https://ui.hiip.ai/r/bubble.json
When it does not work
- 401
- The token was missing or wrong. The likeliest cause is not a bad token but an unset one: a
${VAR}that resolves to nothing drops the whole header rather than sendingBearerwith an empty value — so a forgotten env var reads to the server as an anonymous request, not a malformed one. Check the variable is exported in the shell that runs the CLI. - 404
- Authorised, but there is no such item. The full list is
/r/registry.json. - 503
- The registry itself has no token configured — that is our problem, not yours. Tell phuong.phung@hiip.asia.
- Unknown registry
- Step 2 is missing or malformed. The CLI only knows @hiip from your own components.json.