Seed CLISeed CLI

Installation

Install Seed CLI and set up your first project.

Prerequisites

Seed CLI requires Node.js 24 or later.

# Check your Node.js version
node --version

If you need to install or update Node.js, visit nodejs.org or use a version manager like fnm or nvm.

Scaffolding a New Project

The fastest way to start is with the create-seedcli scaffolding tool:

npm create seedcli my-cli
pnpm create seedcli my-cli
yarn create seedcli my-cli 
bun create seedcli my-cli

This creates a new project with:

  • Pre-configured tsconfig.json
  • Example commands
  • Build and compile scripts via @seedcli/cli
  • Dev mode with file watching

Manual Installation

Core Package

Every Seed CLI project needs the core package:

npm install @seedcli/core
pnpm add @seedcli/core
yarn add @seedcli/core
bun add @seedcli/core

Individual Modules

Install only the modules you need:

# Examples (use your package manager of choice)
npm install @seedcli/print @seedcli/prompt @seedcli/filesystem

When using modules inside a Seed command's run function, built-in context modules like print, prompt, and filesystem are available automatically via the seed context — no direct install needed.

Umbrella Package

Or install everything at once:

npm install @seedcli/seed
pnpm add @seedcli/seed
yarn add @seedcli/seed
bun add @seedcli/seed

Project Structure

The Full template scaffolds the following structure:

my-cli/
├── src/
│   ├── commands/
│   │   └── hello.ts        # Example command
│   ├── extensions/
│   │   └── timer.ts        # Example extension
│   └── index.ts            # Entry point
├── tests/
│   └── hello.test.ts       # Example test
├── .gitignore
├── biome.json
├── package.json
├── seed.config.ts           # CLI configuration
└── tsconfig.json

The Minimal template is slimmer — it omits seed.config.ts and extensions/, but still includes a basic test file. See create-seedcli for a full template comparison.

TypeScript Configuration

The scaffolded tsconfig.json (Full template) includes:

tsconfig.json
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "esModuleInterop": true,
    "strict": true,
    "skipLibCheck": true,
    "declaration": true,
    "isolatedModules": true,
    "verbatimModuleSyntax": true,
    "noEmit": true,
    "types": ["node"]
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "dist"]
}

For packaging guidance, see Build and Distribution. For the full seed build flag reference, see seed build.

On this page