Get started with Bun by scaffolding a new project with bun init.
Press enter to accept the default answer for each prompt, or pass the -y flag to auto-accept the defaults.
bun init is a quick way to start a blank project with Bun. It guesses with sane defaults and is non-destructive when run multiple times.
It creates:
- a package.json file with a name that defaults to the current directory name
- a tsconfig.json file or a jsconfig.json file, depending if the entry point is a TypeScript file or not
- an entry point which defaults to index.ts unless any of index.{tsx, jsx, js, mts, mjs} exist or the package.json specifies a module or main field
- a README.md file
AI Agent rules (disable with $BUN_AGENT_RULE_DISABLED=1):
- a CLAUDE.md file when Claude CLI is detected (disable with CLAUDE_CODE_AGENT_RULE_DISABLED env var)
- a .cursor/rules/*.mdc file to guide Cursor AI to use Bun instead of Node.js and npm when Cursor is detected
If you pass -y or --yes, it will assume you want to continue without asking questions. At the end, it runs bun install to install @types/bun.
CLI Usage
Initialization Options
Accept all default prompts without asking questions. Alias: -y
Only initialize type definitions (skip app scaffolding). Alias: -m
Project Templates
Scaffold a React project. When used without a value, creates a baseline React app.
Accepts values for presets:
- tailwind – React app preconfigured with Tailwind CSS
- shadcn – React app with @shadcn/ui and Tailwind CSS
Examples:
bun init —react bun init —react=tailwind bun init —react=shadcnOutput & Files
Initializes project files and configuration for the chosen options (e.g., creating essential config files and a starter directory structure). Exact files vary by template.
Global Configuration & Context
Run bun init as if started in a different working directory (useful in scripts).
Help
Print this help menu. Alias: -h
Examples
- Accept all defaults
- React
-
React + Tailwind CSS
bun init --react=tailwind
- React + @shadcn/ui
.png)

