gh repo clone TanStack/cli
cd cli
pnpm install
pnpm buildpnpm dev # Build and watch all packagesRun from a peer directory (not inside the monorepo):
# Create an app
node ../cli/packages/cli/dist/index.js create my-app
# With specific package manager
npm_config_user_agent=pnpm node ../cli/packages/cli/dist/index.js create my-app
# With local add-on
node ../cli/packages/cli/dist/index.js create my-app --add-ons http://localhost:9080/info.json# In your add-on directory
npx serve .add-on -l 9080
# Create app with local add-on
node ../cli/packages/cli/dist/index.js create my-app --add-ons http://localhost:9080/info.json# In your starter directory
npx serve .starter -l 9080
# Create app with local starter
node ../cli/packages/cli/dist/index.js create my-app --starter http://localhost:9080/starter.jsonWatch framework files and auto-rebuild:
rm -rf test-app && node packages/cli/dist/index.js create \
--dev-watch ./packages/create/src/frameworks/react \
test-app --add-ons shadcnThe UI requires running three things:
# Terminal 1: Watch mode for packages
pnpm dev
# Terminal 2: API server (from empty directory)
CTA_DISABLE_UI=true node ../cli/packages/cli/dist/index.js create --ui
# Terminal 3: React dev server
cd packages/create-ui && pnpm dev:uiNavigate to http://localhost:3000 to see the UI connected to the API at http://localhost:8080.
- Run tests:
pnpm test - Run build:
pnpm build - Create a PR with a clear description
packages/
├── cli/ # @tanstack/cli - CLI commands
├── create/ # @tanstack/create - Engine + frameworks
└── create-ui/ # @tanstack/create-ui - Visual builder
pnpm build # Build all packages
pnpm test # Run tests
pnpm dev # Watch mode
pnpm cleanNodeModules # Clean all node_modules