Skip to content

import Init from "/snippets/cli/init.mdx";

Get started with Bun by scaffolding a new project with bun init.

bash
bun init my-app
bash
? 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 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.

Released under the MIT License.