@alliumcloud/cli
v3.0.0
Published
Interactive CLI to scaffold React (Vite) or Next.js projects with pluggable add-ons.
Maintainers
Readme
@alliumcloud/cli
An all-in-one CLI for Allium projects: scaffold a React (Vite) or
Next.js project with pluggable add-ons, then deploy it to Allium hosting —
all from the same alliumcloud bin (in the spirit of the Nest CLI).
npx @alliumcloud/cli new my-appCommands
| Command | Description |
| --- | --- |
| alliumcloud new [name] | Scaffold a new React (Vite) or Next.js project (the wizard below) |
| alliumcloud init | Connect the current directory to an Allium hosting project |
| alliumcloud build | Trigger a build for the hosting project (+ list/details/logs/delete) |
| alliumcloud deploy | Trigger a deployment (+ list/details/logs/delete) |
| alliumcloud project | Manage the hosting project (details/update/delete/env/files/sync/visit/logs) |
| alliumcloud auth | login / logout / whoami for Allium hosting |
| alliumcloud completion [bash\|zsh] | Print a shell tab-completion script |
Run alliumcloud <command> --help for details on any of them.
Scaffolding a project
alliumcloud new asks a few questions, then generates a ready-to-run project:
◇ Project name? my-app
◇ Which framework? React (Vite) / Next.js
◇ TypeScript or JavaScript?
◇ Styling? Tailwind CSS / CSS Modules / None
◇ Install dependencies? Yes
◇ Initialize git? YesUnder the hood it delegates the base app to the official creators
(create-vite, create-next-app) and then patches in your selections, so the
base is always up to date and the add-ons stay consistent.
When it finishes:
cd my-app
npm run devSupported choices
| | Options | |---|---| | Framework | React (Vite), Next.js (App Router) | | Language | TypeScript, JavaScript | | Styling | Tailwind CSS (v4), CSS Modules, None |
More styling options (styled-components, shadcn/ui) and other categories (quality, state, extras) are on the way.
Deploying a project to Allium hosting
Once you have a project (scaffolded with alliumcloud new or your own),
connect and deploy it:
alliumcloud auth login # once per machine
cd my-app
alliumcloud init # once per project — creates allium.json
alliumcloud project sync # push local files to the hosting project
alliumcloud deploy # build + deploy
alliumcloud project visitalliumcloud init writes an allium.json config file to the project root —
commit it to your repo so the directory always knows which hosting project it
deploys to.
Shell completion
eval "$(alliumcloud completion bash)" # ~/.bashrc or ~/.bash_profile
eval "$(alliumcloud completion zsh)" # ~/.zshrcRequirements
- Node ≥ 24 (the CLI checks and tells you if you're on an older runtime).
- Any package manager — alliumcloud detects npm / pnpm / yarn / bun from how it's run.
Development
nvm use # picks Node 24 via .nvmrc
npm install
npm run build # bundle src → dist/index.js
npm run dev # rebuild on change
npm run typecheck # tsc --noEmit
node dist/index.js new my-app # run the built CLISee CLAUDE.md for architecture and specs/ for per-phase design.
Releasing
Two npm dist-tags: latest (stable) and test (pre-release smoke channel).
CI (.github/workflows/ci.yml) publishes both — you don't run npm publish
by hand. Pushing to main runs the verify job but publishes nothing. The
publish job only runs after verify (typecheck, build, generate-and-assert
matrix, deep install+build) passes:
- Test — pushing to the
testbranch auto-publishes a-test.<sha>build totest. Smoke-test it yourself withnpm i @alliumcloud/cli@testbefore cutting a stable release. - Stable — tag a commit (e.g.
v0.2.0) and publish a GitHub Release for that tag → CI reads the version from the tag and publishes tolatest.
There's no local publish path — only CI holds npm auth.
License
MIT
