Production-ready CLI for scaffolding full-stack apps in either classic prompts or fullscreen TUI mode.
- Package page: create-fs-cli on npm
- Install globally:
npm install -g create-fs-cli - Run without install:
npx create-fs-cli@latest
- Node.js 18+
- npm
- git (recommended)
# Classic interactive mode
npx create-fs-cli@latest
# Pass project name directly (like create-next-app)
npx create-fs-cli@latest my-app
# Pass project name + frontend language directly
npx create-fs-cli@latest my-app ts
npx create-fs-cli@latest my-app js
# Fullscreen TUI mode (red/white interface)
npx create-fs-cli@latest --tui
npx create-fs-cli@latest my-app --tuinpm install -g create-fs-cli
create-fs-cli --help
create-fs-cli
create-fs-cli my-app
create-fs-cli my-app ts
create-fs-cli --tui
create-fs-cli my-app --tui
create-fs-cli my-app ts --tuigit clone https://github.com/HemanthRaj0C/fullstack-cli.git
cd fullstack-cli
npm install
# Run from repo root
npm run dev
node src/index.js
node src/index.js my-app
node src/index.js my-app ts
node src/index.js --tui
node src/index.js my-app --tui
node src/index.js my-app ts --tui
# If you cd into src/
node index.js
node index.js my-appnpm link
create-fs-cli --help
create-fs-cli --tuiDirect link: recordings/demo_video.mp4
create-fs-cli --help
# Local development equivalents
node src/index.js --help- Allowed characters: letters, numbers, dashes (
-), underscores (_). - Must start with a letter or number.
- Maximum length: 50 characters.
- Interactive input validates immediately.
- Direct CLI names are auto-sanitized when possible.
- Optional second positional arg accepts frontend language (
jsorts).
Examples:
npx create-fs-cli@latest "My App" # sanitized to My-App
npx create-fs-cli@latest "app@2026" # sanitized to app2026If a name cannot be sanitized into a valid value, the CLI exits with a clear error and suggestion.
You can pass frontend language directly as the second positional argument:
create-fs-cli my-app ts
create-fs-cli my-app jsAccepted values:
jsorjavascripttsortypescript
Argument order:
create-fs-cli [project-name] [frontend-language]--tui: fullscreen wizard with guided selections, overwrite confirmation, and live generation progress.- Classic mode: standard terminal prompts.
- Both modes include explicit frontend language selection (
JavaScriptorTypeScript).
Both modes enforce the same stack validation rules and generation behavior.
- Fullscreen TUI and classic prompt mode.
- Frontend: Next.js, React + Vite, SvelteKit (
JavaScriptorTypeScript). - Backend: Next.js API Routes (integrated), Express, Fastify, FastAPI.
- Database: PostgreSQL, MongoDB, MySQL, Supabase, None.
- Safe overwrite confirmation before deleting existing directories.
- BackendStatus component auto-injection for frontend health visibility.
- Preflight checks before generation.
Next.js API Routes (integrated)is available only when frontend isNext.js.- With
Next.js API Routes, database is forced toNone. FastAPI + MySQLis not supported by templates; selection is normalized toPostgreSQLwith warning.
my-project/
├── frontend/
│ ├── src/components/
│ │ └── BackendStatus
│ └── package.json
├── backend/ # only for non-integrated backends
│ ├── config/
│ ├── routes/
│ └── .env.example
├── .gitignore
└── README.md
Contributions are welcome.
- Fork the repository.
- Create a branch:
git checkout -b feature/your-change. - Make and test your changes.
- Push your branch.
- Open a pull request.


