A fast, minimal TypeScript CLI project initializer for Node.js.
Create modern TypeScript projects with sensible defaults in seconds β without framework bloat or unnecessary boilerplate.
Many TypeScript starter templates are:
- Over-engineered
- Framework-heavy
- Bloated with configuration
- Hard to customize
ts-package-init is a lightweight TypeScript CLI tool that scaffolds clean Node.js projects with practical defaults.
Start fast. Stay minimal. Scale when needed.
- Zero-config TypeScript setup
- Presets:
base,library,backend,cli,monorepo,nestjs,moleculer - CommonJS or ESM (
--esm) - Optional ESLint & Prettier
- Optional interactive mode (
--interactive) - Package manager selection (
--package-manager) - Uses
tsxfor fast dev experience - Works with Node.js 18+
npx ts-package-init my-app
cd my-app
npm run devnpm init ts-package my-appMinimal structure shown. Additional files are added based on flags.
my-app/
package.json
tsconfig.json
src/
index.ts
my-lib/
package.json
tsconfig.json
src/
index.ts
api/
package.json
tsconfig.json
src/
index.ts
my-cli/
package.json
tsconfig.json
src/
index.ts
my-workspace/
package.json
tsconfig.json
packages/
app/
package.json
tsconfig.json
src/
index.ts
my-nest/
package.json
tsconfig.json
src/
index.ts
main.ts
app.module.ts
app.controller.ts
app.service.ts
my-broker/
package.json
tsconfig.json
src/
index.ts
moleculer.config.ts
services/
greeter.service.ts
Optional files and changes
--eslint: addseslint.config.js.--prettier: addseslint.config.js(with Prettier) and.prettierrc.json.--git: adds.git/.--esm: updatespackage.jsonandtsconfig.json(no new files).--skip-install/--package-manager: no file tree changes.
Minimal runnable TypeScript project.
npx ts-package-init my-appScripts:
{
"build": "tsc",
"dev": "tsx watch src/index.ts"
}For reusable npm packages.
npx ts-package-init my-lib --preset libraryIncludes:
- type declarations
- clean build output
For APIs, workers, and services.
npx ts-package-init api --preset backendIncludes:
dev,build,startscripts- long-running process defaults
For command-line tools.
npx ts-package-init my-cli --preset cliIncludes:
- executable binary
- Node shebang support
For npm workspaces with a minimal app package.
npx ts-package-init my-workspace --preset monorepoIncludes:
- root workspaces config
packages/appwith build/dev scripts
Minimal NestJS app scaffold (controller, service, module, main).
npx ts-package-init my-nest --preset nestjsIncludes:
- App controller + service
- Module + main bootstrap
- build/dev/start scripts
Minimal Moleculer broker scaffold (config + sample service).
npx ts-package-init my-broker --preset moleculerIncludes:
- Broker config
- Sample service
- build/dev/start scripts
Enable ESM with:
npx ts-package-init my-app --esmThis will:
- set
"type": "module" - adjust TypeScript config automatically
npx ts-package-init my-app --eslint
npx ts-package-init my-app --prettierPrettier automatically enables ESLint integration.
npx ts-package-init my-app --interactive
npx ts-package-init my-app --skip-install
npx ts-package-init my-app --package-manager pnpm
npx ts-package-init my-app --gitnpx ts-package-init demo
npx ts-package-init my-lib --preset library --esm
npx ts-package-init api --preset backend --eslint --prettier
npx ts-package-init tool --preset cli
npx ts-package-init my-workspace --preset monorepo --skip-install
npx ts-package-init my-nest --preset nestjs --package-manager pnpm
npx ts-package-init my-broker --preset moleculer --interactivenpm run build
npm pack --dry-run
npm publishMIT
If this package helps you, please consider supporting it:
β Star the repository
β Support the project: https://buymeacoffee.com/mostafahanafy