Get a token
The registry is private, soshadcn needs credentials.
1
Create a GitHub token
Create a personal access token with read access to
ilovehugetits/9am-ui.2
Export it
Add it to your shell profile so it survives a reboot.
Point a script at the registry
Add aregistries block to your script’s web/components.json:
raw.githubusercontent.com, so there is nothing to host and no npm registry to authenticate against.
Start a new script
1
Create the web project
components.json shown above.2
Install the scaffold
vite.config.ts, tsconfig.json, eslint.config.js, postcss.config.js, index.html, src/main.tsx, and a starter src/components/App.tsx — and pulls in the theme, fonts, NUI bridge, i18n, viewport, and the icons the starter uses.3
Add the Lua half
fxmanifest.lua, client/nui.lua, shared/locale.lua, and locales/en.json into the resource root. Existing files are skipped unless you pass --force.This step is not a registry item because
shadcn rejects any install target containing .., and the Lua files belong one level above the web project.4
Configure the script
Edit Keep the
web/src/nui.config.ts — this is the one kit file you are meant to change.localStorage key in index.html in sync with themeStorageKey. It runs before first paint to stop the wrong theme flashing.5
Build and verify
Add the kit to an existing script
Add theregistries block, then take only what you want:
@9am/data-table also installs button, input, table, i18n, and its three icons — and nothing else, so a script that only wants a button does not pull in charts.
After adding the theme, import it from your entry stylesheet. Order matters: