A fast interactive CLI to scaffold frontend tooling and starter config files into an existing project.
- Detects project context (Next.js, Vite, TypeScript)
- Installs selected tooling dependencies using your detected package manager
- Generates ready-to-use config files for:
- Tailwind CSS
- Prettier
- ESLint (v9 flat config)
- Husky git hooks (pre-commit, pre-push, commit-msg)
- Commitlint
- Optionally initializes Shadcn UI with alias configuration
- Scaffolds a test runner (Vitest or Jest) following the official framework guides
- Non-interactive
--yesmode for CI pipelines --dry-runmode to preview all changes before writing
- Node.js 18+ (Node.js 22 recommended)
- npm, pnpm, yarn, or bun
Run without global install:
pnpx @frizzyondabeat/volt-fast setupYou can also use:
npx @frizzyondabeat/volt-fast setupOr install globally:
npm i -g @frizzyondabeat/volt-fast
volt-fast setupInstalls and configures frontend tooling into an existing project.
projectdiris optional — if omitted, the CLI prompts for the target directory- Prompts you to select from: Tailwind CSS, ESLint, Prettier, Husky, Commitlint, Shadcn UI
- Detects your package manager and installs all required dependencies
- Writes config files based on your selections and detected project type
Flow:
- Choose target project directory
- Select tools to configure
- For Husky: choose which hooks to enable (pre-commit lint, pre-push typecheck, commitlint)
- For Tailwind: optionally specify the CSS entry file path
- Choose a filename convention (kebab-case, camelCase, PascalCase)
- CLI installs packages and writes all config files
- For Shadcn: patches
tsconfig.jsonpaths +vite.config, then runsshadcn@latest init
Scaffolds a test runner into an existing project, following the official framework guides.
projectdiris optional — if omitted, the CLI prompts for the target directory- Auto-detects your framework (Next.js → Vite → generic Node)
- Prompts you to choose Vitest or Jest
- Aborts without overwriting if a runner config already exists
What it sets up by framework and runner:
| Framework | Runner | Config written |
|---|---|---|
| Next.js | Vitest | vitest.config.ts |
| Next.js | Jest | jest.config.ts + jest.setup.ts |
| Vite | Vitest | vitest.config.ts |
| Vite | Jest | jest.config.ts + jest.setup.ts |
| Generic | Vitest | vitest.config.ts |
| Generic | Jest | jest.config.ts + jest.setup.ts |
In all cases it also writes __tests__/example.test.tsx and adds test / test:watch / test:coverage scripts to package.json.
Flow:
- Choose target project directory
- CLI detects framework automatically
- Choose Vitest or Jest
- CLI installs all required dependencies
- Config file, optional setup file, and example test are written
package.jsonscripts are updated
| File | Tool |
|---|---|
eslint.config.mjs |
ESLint (v9 flat config) |
prettier.config.mjs |
Prettier |
tailwind.css (or custom path) |
Tailwind CSS |
.husky/pre-commit |
Husky |
.husky/pre-push |
Husky |
.husky/commit-msg |
Husky + Commitlint (when both selected) |
commitlint.config.mjs |
Commitlint |
tsconfig.json path aliases |
Shadcn UI |
vite.config.ts / vite.config.js patched |
Shadcn UI (Vite projects) |
| File | Notes |
|---|---|
vitest.config.ts or jest.config.ts |
Runner config |
jest.setup.ts |
Jest only |
__tests__/example.test.tsx |
Starter test file |
package.json scripts |
test, test:watch, test:coverage added |
Both setup and test support the following flags:
| Flag | Description |
|---|---|
--yes |
Non-interactive mode; skips all prompts and uses defaults (all tools, Vitest, kebab-case) |
--tools <csv> |
Comma-separated list of tools to configure, used with --yes (e.g. --tools eslint,prettier,husky) |
--dry-run |
Runs the full pipeline but writes no files and executes no commands |
ISC
