[Runtime
](../../../index.md)[Package Manager
](../../../pm/cli/install/index.md)[Bundler
](../../../bundler/index.md)[Test Runner
](../../../test/index.md)[Guides
](../../../guides/index.md)[Reference
](https://bun.com/reference)[Blog
](https://bun.com/blog)[Feedback
](../../../feedback/index.md)
Get started with Bun by scaffolding a new project with bun init.
terminal
bun init my-app
? Select a project template - Press return to submit.
❯ Blank
React
Library
✓ Select a project template: Blank
+ .gitignore
+ CLAUDE.md
+ .cursor/rules/use-bun-instead-of-node-vite-npm-pnpm.mdc -> CLAUDE.md
+ index.ts
+ tsconfig.json (for editor autocomplete)
+ README.md
Press enter to accept the default answer for each prompt, or pass the -y flag to auto-accept the defaults.
bun init scaffolds a new project with Bun. It infers settings with sane defaults and is non-destructive when run multiple times.

It creates:
- a
package.jsonfile with a name that defaults to the current directory name - a
tsconfig.jsonfile or ajsconfig.jsonfile, depending if the entry point is a TypeScript file or not - an entry point which defaults to
index.tsunless any ofindex.{tsx, jsx, js, mts, mjs}exist or thepackage.jsonspecifies amoduleormainfield - a
README.mdfile
AI Agent rules (disable with $BUN_AGENT_RULE_DISABLED=1):
- a
CLAUDE.mdfile when Claude CLI is detected (disable withCLAUDE_CODE_AGENT_RULE_DISABLEDenv var) - a
.cursor/rules/*.mdcfile 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)
CLI Usage
terminal
bun init <folder?>
[
](#initialization-options)
Initialization Options
[
](#param-yes)
--yes
boolean
Accept all default prompts without asking questions. Alias: -y
[
](#param-minimal)
--minimal
boolean
Only initialize type definitions (skip app scaffolding). Alias: -m
[
](#project-templates)
Project Templates
[
](#param-react)
--react
string|boolean
Scaffold a React project. When used without a value, creates a baseline React app.
Accepts values for presets:
tailwind– React app preconfigured with Tailwind CSSshadcn– React app with@shadcn/uiand Tailwind CSS
Examples:
bun init —react bun init —react=tailwind bun init —react=shadcn
[
](#output-&-files)
Output & Files
[
](#param-result)
(result)
info
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)
Global Configuration & Context
[
](#param-cwd)
--cwd
string
Run bun init as if started in a different working directory (useful in scripts).
[
](#help)
Help
[
](#param-help)
--help
boolean
Print this help menu. Alias: -h
[
](#examples)
Examples
-
Accept all defaults
terminal
bun init -y -
React
terminal
bun init --react -
React + Tailwind CSS
terminal
bun init --react=tailwind -
React + @shadcn/ui
terminal
bun init --react=shadcn
Was this page helpful?
[
TypeScript 6 and 7
Previous
](../../../typescript-6/index.md)[
bun create
Next
](../create/index.md)
