{
"name": "bun",
"description": "A fast bundler, transpiler, JavaScript Runtime and package manager for web software",
"subcommands": [
{
"name": "c",
"aliases": [
"create"
],
"description": "Start a new project from a template",
"options": [
{
"names": [
"--force"
],
"description": "Overwrite existing files"
},
{
"names": [
"--no-install"
],
"description": "Don't install node_modules"
},
{
"names": [
"--no-git"
],
"description": "Don't create a git repository"
},
{
"names": [
"--verbose"
],
"description": "Too many logs"
},
{
"names": [
"--no-package-json"
],
"description": "Disable package.json transforms"
},
{
"names": [
"--open"
],
"description": "On finish, start bun and open in browser"
}
],
"args": [
{
"name": "template",
"description": "Package from @bun-examples, GitHub repo, or local file",
"suggestions": [
"react",
"next",
"hono",
"discord-interactions",
"blank",
"bun-bakery",
"react-native-app",
"completion-spec",
"next-app",
"t3-app",
"discord-bot",
"video",
"remix"
]
},
{
"name": "name",
"template": "folders"
}
]
},
{
"name": "run",
"description": "Run a package.json script or executable",
"args": [
{
"name": "script"
}
]
},
{
"name": "i",
"aliases": [
"install"
],
"description": "Install dependencies for a package.json",
"options": [
{
"names": [
"-c",
"--config"
],
"description": "Load config (bunfig.toml)",
"takes_arg": true,
"arg": {
"name": "path",
"template": "filepaths"
}
},
{
"names": [
"-y",
"--yarn"
],
"description": "Write a yarn.lock file (yarn v1)"
},
{
"names": [
"-p",
"--production"
],
"description": "Don't install devDependencies"
},
{
"names": [
"--no-save"
],
"description": "Don't save a lockfile"
},
{
"names": [
"--save"
],
"description": "Save to package.json"
},
{
"names": [
"--dry-run"
],
"description": "Don't install anything"
},
{
"names": [
"--frozen-lockfile"
],
"description": "Disallow changes to lockfile"
},
{
"names": [
"-f",
"--force"
],
"description": "Always request the latest versions from the registry & reinstall all dependencies"
},
{
"names": [
"--cache-dir"
],
"description": "Store & load cached data from a specific directory path",
"takes_arg": true,
"arg": {
"name": "path",
"template": "folders"
}
},
{
"names": [
"--no-cache"
],
"description": "Ignore manifest cache entirely"
},
{
"names": [
"--silent"
],
"description": "Don't log anything"
},
{
"names": [
"--verbose"
],
"description": "Excessively verbose logging"
},
{
"names": [
"-g",
"--global"
],
"description": "Install globally"
},
{
"names": [
"--cwd"
],
"description": "Set a specific cwd",
"takes_arg": true,
"arg": {
"name": "path",
"template": "folders"
}
},
{
"names": [
"--backend"
],
"description": "Platform-specific optimizations for installing dependencies. For macOS, 'clonefile' (default), 'copyfile'",
"takes_arg": true,
"arg": {
"name": "syscall",
"suggestions": [
"clonefile",
"copyfile"
]
}
},
{
"names": [
"--link-native-bins"
],
"description": "Link 'bin' from a matching platform-specific 'optionalDependencies' instead. Default: esbuild, turbo",
"takes_arg": true,
"arg": {
"name": "str",
"is_variadic": true
}
},
{
"names": [
"--help"
],
"description": "Print the help menu"
},
{
"names": [
"--no-progress"
],
"description": "Disable the progress bar"
},
{
"names": [
"--no-summary"
],
"description": "Don't print a summary"
},
{
"names": [
"--no-verify"
],
"description": "Skip verifying integrity of newly downloaded packages"
},
{
"names": [
"--ignore-scripts"
],
"description": "Skip lifecycle scripts in the project's package.json (dependency scripts are never run)"
},
{
"names": [
"-d",
"--dev",
"-D",
"--development"
],
"description": "Install as devDependency"
},
{
"names": [
"--exact"
],
"description": "Install exact version"
},
{
"names": [
"--optional"
],
"description": "Install as optionalDependency"
}
]
},
{
"name": "a",
"aliases": [
"add"
],
"description": "Add a dependency to package.json",
"options": [
{
"names": [
"-c",
"--config"
],
"description": "Load config (bunfig.toml)",
"takes_arg": true,
"arg": {
"name": "path",
"template": "filepaths"
}
},
{
"names": [
"-y",
"--yarn"
],
"description": "Write a yarn.lock file (yarn v1)"
},
{
"names": [
"-p",
"--production"
],
"description": "Don't install devDependencies"
},
{
"names": [
"--no-save"
],
"description": "Don't save a lockfile"
},
{
"names": [
"--save"
],
"description": "Save to package.json"
},
{
"names": [
"--dry-run"
],
"description": "Don't install anything"
},
{
"names": [
"--frozen-lockfile"
],
"description": "Disallow changes to lockfile"
},
{
"names": [
"-f",
"--force"
],
"description": "Always request the latest versions from the registry & reinstall all dependencies"
},
{
"names": [
"--cache-dir"
],
"description": "Store & load cached data from a specific directory path",
"takes_arg": true,
"arg": {
"name": "path",
"template": "folders"
}
},
{
"names": [
"--no-cache"
],
"description": "Ignore manifest cache entirely"
},
{
"names": [
"--silent"
],
"description": "Don't log anything"
},
{
"names": [
"--verbose"
],
"description": "Excessively verbose logging"
},
{
"names": [
"-g",
"--global"
],
"description": "Install globally"
},
{
"names": [
"--cwd"
],
"description": "Set a specific cwd",
"takes_arg": true,
"arg": {
"name": "path",
"template": "folders"
}
},
{
"names": [
"--backend"
],
"description": "Platform-specific optimizations for installing dependencies. For macOS, 'clonefile' (default), 'copyfile'",
"takes_arg": true,
"arg": {
"name": "syscall",
"suggestions": [
"clonefile",
"copyfile"
]
}
},
{
"names": [
"--link-native-bins"
],
"description": "Link 'bin' from a matching platform-specific 'optionalDependencies' instead. Default: esbuild, turbo",
"takes_arg": true,
"arg": {
"name": "str",
"is_variadic": true
}
},
{
"names": [
"--help"
],
"description": "Print the help menu"
},
{
"names": [
"--no-progress"
],
"description": "Disable the progress bar"
},
{
"names": [
"--no-summary"
],
"description": "Don't print a summary"
},
{
"names": [
"--no-verify"
],
"description": "Skip verifying integrity of newly downloaded packages"
},
{
"names": [
"--ignore-scripts"
],
"description": "Skip lifecycle scripts in the project's package.json (dependency scripts are never run)"
},
{
"names": [
"-d",
"--dev",
"-D",
"--development"
],
"description": "Install as devDependency"
},
{
"names": [
"--exact"
],
"description": "Install exact version"
},
{
"names": [
"--optional"
],
"description": "Install as optionalDependency"
}
],
"args": [
{
"name": "package",
"is_variadic": true
}
]
},
{
"name": "rm",
"aliases": [
"remove"
],
"description": "Remove a dependency from package.json",
"options": [
{
"names": [
"-c",
"--config"
],
"description": "Load config (bunfig.toml)",
"takes_arg": true,
"arg": {
"name": "path",
"template": "filepaths"
}
},
{
"names": [
"-y",
"--yarn"
],
"description": "Write a yarn.lock file (yarn v1)"
},
{
"names": [
"-p",
"--production"
],
"description": "Don't install devDependencies"
},
{
"names": [
"--no-save"
],
"description": "Don't save a lockfile"
},
{
"names": [
"--save"
],
"description": "Save to package.json"
},
{
"names": [
"--dry-run"
],
"description": "Don't install anything"
},
{
"names": [
"--frozen-lockfile"
],
"description": "Disallow changes to lockfile"
},
{
"names": [
"-f",
"--force"
],
"description": "Always request the latest versions from the registry & reinstall all dependencies"
},
{
"names": [
"--cache-dir"
],
"description": "Store & load cached data from a specific directory path",
"takes_arg": true,
"arg": {
"name": "path",
"template": "folders"
}
},
{
"names": [
"--no-cache"
],
"description": "Ignore manifest cache entirely"
},
{
"names": [
"--silent"
],
"description": "Don't log anything"
},
{
"names": [
"--verbose"
],
"description": "Excessively verbose logging"
},
{
"names": [
"-g",
"--global"
],
"description": "Install globally"
},
{
"names": [
"--cwd"
],
"description": "Set a specific cwd",
"takes_arg": true,
"arg": {
"name": "path",
"template": "folders"
}
},
{
"names": [
"--backend"
],
"description": "Platform-specific optimizations for installing dependencies. For macOS, 'clonefile' (default), 'copyfile'",
"takes_arg": true,
"arg": {
"name": "syscall",
"suggestions": [
"clonefile",
"copyfile"
]
}
},
{
"names": [
"--link-native-bins"
],
"description": "Link 'bin' from a matching platform-specific 'optionalDependencies' instead. Default: esbuild, turbo",
"takes_arg": true,
"arg": {
"name": "str",
"is_variadic": true
}
},
{
"names": [
"--help"
],
"description": "Print the help menu"
},
{
"names": [
"--no-progress"
],
"description": "Disable the progress bar"
},
{
"names": [
"--no-summary"
],
"description": "Don't print a summary"
},
{
"names": [
"--no-verify"
],
"description": "Skip verifying integrity of newly downloaded packages"
},
{
"names": [
"--ignore-scripts"
],
"description": "Skip lifecycle scripts in the project's package.json (dependency scripts are never run)"
},
{
"names": [
"-d",
"--dev",
"-D",
"--development"
],
"description": "Install as devDependency"
},
{
"names": [
"--exact"
],
"description": "Install exact version"
},
{
"names": [
"--optional"
],
"description": "Install as optionalDependency"
}
],
"args": [
{
"name": "package",
"is_variadic": true
}
]
},
{
"name": "build",
"aliases": [
"bun"
],
"description": "Bundle files using Bun's native bundler",
"options": [
{
"names": [
"-h",
"--help"
],
"description": "Display this help and exit"
},
{
"names": [
"-b",
"--bun"
],
"description": "Force a script or package to use Bun's runtime instead of Node.js (via symlinking node)"
},
{
"names": [
"--cwd"
],
"takes_arg": true,
"arg": {
"name": "path",
"description": "Absolute path to resolve files & entry points from. This just changes the process' cwd"
}
},
{
"names": [
"-c",
"--config"
],
"description": "Load config (bunfig.toml)",
"takes_arg": true,
"arg": {
"name": "path",
"description": "Config file to load Bun from (e.g. -c bunfig.toml)",
"template": "filepaths"
}
},
{
"names": [
"--extension-order"
],
"takes_arg": true,
"arg": {
"name": "order",
"description": "Defaults to: .tsx,.ts,.jsx,.js,.json",
"is_variadic": true
}
},
{
"names": [
"--jsx-factory"
],
"description": "Changes the function called when compiling JSX elements using the classic JSX runtime",
"takes_arg": true,
"arg": {
"name": "name",
"suggestions": [
"React.createElement",
"h",
"preact.h"
]
}
},
{
"names": [
"--jsx-fragment"
],
"description": "Changes the function called when compiling JSX fragments",
"takes_arg": true,
"arg": {
"name": "string"
}
},
{
"names": [
"--jsx-import-source"
],
"description": "Declares the module specifier to be used for importing the jsx and jsxs factory functions. Default: \"react\"",
"takes_arg": true,
"arg": {
"name": "module",
"suggestions": [
"react"
]
}
},
{
"names": [
"--jsx-runtime"
],
"description": "\"automatic\" (default) or \"classic\"",
"takes_arg": true,
"arg": {
"name": "name",
"suggestions": [
"automatic",
"classic"
]
}
},
{
"names": [
"-r",
"--preload"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Import a module before other modules are loaded",
"is_variadic": true
}
},
{
"names": [
"--main-fields"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Main fields to lookup in package.json. Defaults to --target dependent",
"is_variadic": true
}
},
{
"names": [
"--no-summary"
],
"description": "Don't print a summary (when generating .bun)"
},
{
"names": [
"-v",
"--version"
],
"description": "Print version and exit"
},
{
"names": [
"--revision"
],
"description": "Print version with revision and exit"
},
{
"names": [
"--tsconfig-override"
],
"takes_arg": true,
"arg": {
"name": "overrides",
"description": "Load tsconfig from path instead of cwd/tsconfig.json"
}
},
{
"names": [
"-d",
"--define"
],
"takes_arg": true,
"arg": {
"name": "k=v",
"description": "Substitute key=value while parsing, e.g. --define process.env.NODE_ENV=development",
"is_variadic": true
}
},
{
"names": [
"-e",
"--external"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Exclude module from transpilation (can use * wildcards). ex: -e react",
"is_variadic": true
}
},
{
"names": [
"-l",
"--loader"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Parse files with .ext:loader, e.g. --loader .js:jsx. Valid loaders: js, jsx, ts, tsx, json, toml, text, file, wasm, napi",
"is_variadic": true
}
},
{
"names": [
"-u",
"--origin"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Rewrite import URLs to start with --origin. Default: \"\""
}
},
{
"names": [
"-p",
"--port"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Port to serve Bun's dev server on. Default: \"3000\""
}
},
{
"names": [
"--smol"
],
"description": "Use less memory, but run garbage collection more often"
},
{
"names": [
"--minify"
],
"description": "Minify (experimental)"
},
{
"names": [
"--minify-syntax"
],
"description": "Minify syntax and inline data (experimental)"
},
{
"names": [
"--minify-whitespace"
],
"description": "Minify whitespace (experimental)"
},
{
"names": [
"--minify-identifiers"
],
"description": "Minify identifiers"
},
{
"names": [
"--no-macros"
],
"description": "Disable macros from being executed in the bundler, transpiler and runtime"
},
{
"names": [
"--target"
],
"description": "Target environment",
"takes_arg": true
},
{
"names": [
"--inspect"
],
"description": "Activate Bun's debugger for a file",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--inspect-wait"
],
"description": "Activate Bun's Debugger, wait for a connection before executing",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--inspect-brk"
],
"description": "Activate Bun's Debugger, set breakpoint on first line of code and wait",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--if-present"
],
"description": "Exit if the entrypoint does not exist"
},
{
"names": [
"--hot"
],
"description": "Enable auto reload in the Bun runtime, test runner, or bundler"
},
{
"names": [
"--watch"
],
"description": "Automatically restart the process on file change"
},
{
"names": [
"--no-install"
],
"description": "Disable auto install in the Bun runtime"
},
{
"names": [
"-i"
],
"description": "Automatically install dependencies and use global cache in Bun's runtime, equivalent to --install=fallback"
},
{
"names": [
"--install"
],
"takes_arg": true,
"arg": {
"name": "arg",
"description": "Install dependencies automatically when no node_modules are present, default: \"auto\". \"force\" to ignore node_modules, fallback to install any missing",
"suggestions": [
"auto",
"force",
"fallback",
"disable"
]
}
},
{
"names": [
"--prefer-offline"
],
"description": "Skip staleness checks for packages in the Bun runtime and resolve from disk"
},
{
"names": [
"--prefer-latest"
],
"description": "Use the latest matching versions of packages in the Bun runtime, always checking npm"
},
{
"names": [
"--silent"
],
"description": "Don't repeat the command for bun run"
},
{
"names": [
"compile"
],
"description": "Generate a standalone Bun executable containing your bundled code"
},
{
"names": [
"--format"
],
"description": "Specifies the module format to build to. Only esm is supported currently",
"takes_arg": true,
"arg": {
"name": "args",
"suggestions": [
"esm"
]
}
},
{
"names": [
"--outdir"
],
"description": "Default to \"dist\" if multiple files",
"takes_arg": true,
"arg": {
"name": "path"
}
},
{
"names": [
"--outfile"
],
"description": "Write to a file",
"takes_arg": true,
"arg": {
"name": "path"
}
},
{
"names": [
"--root"
],
"description": "Root directory used for multiple entry points",
"takes_arg": true,
"arg": {
"name": "path"
}
},
{
"names": [
"--splitting"
],
"description": "Enable code splitting"
},
{
"names": [
"--public-path"
],
"description": "A prefix to be appended to any import paths in bundled code",
"takes_arg": true,
"arg": {
"name": "args"
}
},
{
"names": [
"--sourcemap"
],
"description": "Build with sourcemaps - 'inline', 'external', or 'none'",
"takes_arg": true,
"arg": {
"name": "args",
"suggestions": [
"inline",
"external",
"none"
]
}
},
{
"names": [
"--entry-naming"
],
"description": "Customize entry point filenames. Defaults to \"[dir]/[name].[ext]\"",
"takes_arg": true,
"arg": {
"name": "args"
}
},
{
"names": [
"--chunk-naming"
],
"description": "Customize chunk filenames. Defaults to \"[name]-[hash].[ext]\"",
"takes_arg": true,
"arg": {
"name": "args"
}
},
{
"names": [
"--asset-naming"
],
"description": "Customize asset filenames. Defaults to \"[name]-[hash].[ext]\"",
"takes_arg": true,
"arg": {
"name": "args"
}
},
{
"names": [
"--server-components"
],
"description": "Enable React Server Components (experimental)"
},
{
"names": [
"--no-bundle"
],
"description": "Transpile file only, do not bundle"
},
{
"names": [
"--dump-environment-variables"
],
"description": "Dump environment variables from .env and process as JSON and quit. Useful for debugging"
},
{
"names": [
"--dump-limits"
],
"description": "Dump system limits. Useful for debugging"
}
],
"args": [
{
"name": "entrypoints",
"description": "Entrypoint to bundle. If multiple entrypoints provided, must specify --outdir",
"is_variadic": true
}
]
},
{
"name": "update",
"description": "Update outdated dependencies",
"options": [
{
"names": [
"-c",
"--config"
],
"description": "Load config (bunfig.toml)",
"takes_arg": true,
"arg": {
"name": "path",
"template": "filepaths"
}
},
{
"names": [
"-y",
"--yarn"
],
"description": "Write a yarn.lock file (yarn v1)"
},
{
"names": [
"-p",
"--production"
],
"description": "Don't install devDependencies"
},
{
"names": [
"--no-save"
],
"description": "Don't save a lockfile"
},
{
"names": [
"--save"
],
"description": "Save to package.json"
},
{
"names": [
"--dry-run"
],
"description": "Don't install anything"
},
{
"names": [
"--frozen-lockfile"
],
"description": "Disallow changes to lockfile"
},
{
"names": [
"-f",
"--force"
],
"description": "Always request the latest versions from the registry & reinstall all dependencies"
},
{
"names": [
"--cache-dir"
],
"description": "Store & load cached data from a specific directory path",
"takes_arg": true,
"arg": {
"name": "path",
"template": "folders"
}
},
{
"names": [
"--no-cache"
],
"description": "Ignore manifest cache entirely"
},
{
"names": [
"--silent"
],
"description": "Don't log anything"
},
{
"names": [
"--verbose"
],
"description": "Excessively verbose logging"
},
{
"names": [
"-g",
"--global"
],
"description": "Install globally"
},
{
"names": [
"--cwd"
],
"description": "Set a specific cwd",
"takes_arg": true,
"arg": {
"name": "path",
"template": "folders"
}
},
{
"names": [
"--backend"
],
"description": "Platform-specific optimizations for installing dependencies. For macOS, 'clonefile' (default), 'copyfile'",
"takes_arg": true,
"arg": {
"name": "syscall",
"suggestions": [
"clonefile",
"copyfile"
]
}
},
{
"names": [
"--link-native-bins"
],
"description": "Link 'bin' from a matching platform-specific 'optionalDependencies' instead. Default: esbuild, turbo",
"takes_arg": true,
"arg": {
"name": "str",
"is_variadic": true
}
},
{
"names": [
"--help"
],
"description": "Print the help menu"
},
{
"names": [
"--no-progress"
],
"description": "Disable the progress bar"
},
{
"names": [
"--no-summary"
],
"description": "Don't print a summary"
},
{
"names": [
"--no-verify"
],
"description": "Skip verifying integrity of newly downloaded packages"
},
{
"names": [
"--ignore-scripts"
],
"description": "Skip lifecycle scripts in the project's package.json (dependency scripts are never run)"
},
{
"names": [
"-d",
"--dev",
"-D",
"--development"
],
"description": "Install as devDependency"
},
{
"names": [
"--exact"
],
"description": "Install exact version"
},
{
"names": [
"--optional"
],
"description": "Install as optionalDependency"
}
],
"args": [
{
"name": "package",
"is_variadic": true
}
]
},
{
"name": "link",
"description": "Run without an argument to register this package to the global package registry. Uses the name field from package.json",
"options": [
{
"names": [
"--save"
],
"description": "Save to package.json"
}
],
"args": [
{
"name": "package",
"description": "Install a package from the global package registry"
}
]
},
{
"name": "unlink",
"description": "Unlink this package from the global package registry"
},
{
"name": "upgrade",
"description": "Get the latest version of bun",
"options": [
{
"names": [
"--canary"
],
"description": "Install the latest canary release"
}
]
},
{
"name": "test",
"description": "Run unit tests with Bun",
"options": [
{
"names": [
"-h",
"--help"
],
"description": "Display this help and exit"
},
{
"names": [
"-b",
"--bun"
],
"description": "Force a script or package to use Bun's runtime instead of Node.js (via symlinking node)"
},
{
"names": [
"--cwd"
],
"takes_arg": true,
"arg": {
"name": "path",
"description": "Absolute path to resolve files & entry points from. This just changes the process' cwd"
}
},
{
"names": [
"-c",
"--config"
],
"description": "Load config (bunfig.toml)",
"takes_arg": true,
"arg": {
"name": "path",
"description": "Config file to load Bun from (e.g. -c bunfig.toml)",
"template": "filepaths"
}
},
{
"names": [
"--extension-order"
],
"takes_arg": true,
"arg": {
"name": "order",
"description": "Defaults to: .tsx,.ts,.jsx,.js,.json",
"is_variadic": true
}
},
{
"names": [
"--jsx-factory"
],
"description": "Changes the function called when compiling JSX elements using the classic JSX runtime",
"takes_arg": true,
"arg": {
"name": "name",
"suggestions": [
"React.createElement",
"h",
"preact.h"
]
}
},
{
"names": [
"--jsx-fragment"
],
"description": "Changes the function called when compiling JSX fragments",
"takes_arg": true,
"arg": {
"name": "string"
}
},
{
"names": [
"--jsx-import-source"
],
"description": "Declares the module specifier to be used for importing the jsx and jsxs factory functions. Default: \"react\"",
"takes_arg": true,
"arg": {
"name": "module",
"suggestions": [
"react"
]
}
},
{
"names": [
"--jsx-runtime"
],
"description": "\"automatic\" (default) or \"classic\"",
"takes_arg": true,
"arg": {
"name": "name",
"suggestions": [
"automatic",
"classic"
]
}
},
{
"names": [
"-r",
"--preload"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Import a module before other modules are loaded",
"is_variadic": true
}
},
{
"names": [
"--main-fields"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Main fields to lookup in package.json. Defaults to --target dependent",
"is_variadic": true
}
},
{
"names": [
"--no-summary"
],
"description": "Don't print a summary (when generating .bun)"
},
{
"names": [
"-v",
"--version"
],
"description": "Print version and exit"
},
{
"names": [
"--revision"
],
"description": "Print version with revision and exit"
},
{
"names": [
"--tsconfig-override"
],
"takes_arg": true,
"arg": {
"name": "overrides",
"description": "Load tsconfig from path instead of cwd/tsconfig.json"
}
},
{
"names": [
"-d",
"--define"
],
"takes_arg": true,
"arg": {
"name": "k=v",
"description": "Substitute key=value while parsing, e.g. --define process.env.NODE_ENV=development",
"is_variadic": true
}
},
{
"names": [
"-e",
"--external"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Exclude module from transpilation (can use * wildcards). ex: -e react",
"is_variadic": true
}
},
{
"names": [
"-l",
"--loader"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Parse files with .ext:loader, e.g. --loader .js:jsx. Valid loaders: js, jsx, ts, tsx, json, toml, text, file, wasm, napi",
"is_variadic": true
}
},
{
"names": [
"-u",
"--origin"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Rewrite import URLs to start with --origin. Default: \"\""
}
},
{
"names": [
"-p",
"--port"
],
"takes_arg": true,
"arg": {
"name": "args",
"description": "Port to serve Bun's dev server on. Default: \"3000\""
}
},
{
"names": [
"--smol"
],
"description": "Use less memory, but run garbage collection more often"
},
{
"names": [
"--minify"
],
"description": "Minify (experimental)"
},
{
"names": [
"--minify-syntax"
],
"description": "Minify syntax and inline data (experimental)"
},
{
"names": [
"--minify-whitespace"
],
"description": "Minify whitespace (experimental)"
},
{
"names": [
"--minify-identifiers"
],
"description": "Minify identifiers"
},
{
"names": [
"--no-macros"
],
"description": "Disable macros from being executed in the bundler, transpiler and runtime"
},
{
"names": [
"--target"
],
"description": "Target environment",
"takes_arg": true
},
{
"names": [
"--inspect"
],
"description": "Activate Bun's debugger for a file",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--inspect-wait"
],
"description": "Activate Bun's Debugger, wait for a connection before executing",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--inspect-brk"
],
"description": "Activate Bun's Debugger, set breakpoint on first line of code and wait",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--if-present"
],
"description": "Exit if the entrypoint does not exist"
},
{
"names": [
"--hot"
],
"description": "Enable auto reload in the Bun runtime, test runner, or bundler"
},
{
"names": [
"--watch"
],
"description": "Automatically restart the process on file change"
},
{
"names": [
"--no-install"
],
"description": "Disable auto install in the Bun runtime"
},
{
"names": [
"-i"
],
"description": "Automatically install dependencies and use global cache in Bun's runtime, equivalent to --install=fallback"
},
{
"names": [
"--install"
],
"takes_arg": true,
"arg": {
"name": "arg",
"description": "Install dependencies automatically when no node_modules are present, default: \"auto\". \"force\" to ignore node_modules, fallback to install any missing",
"suggestions": [
"auto",
"force",
"fallback",
"disable"
]
}
},
{
"names": [
"--prefer-offline"
],
"description": "Skip staleness checks for packages in the Bun runtime and resolve from disk"
},
{
"names": [
"--prefer-latest"
],
"description": "Use the latest matching versions of packages in the Bun runtime, always checking npm"
},
{
"names": [
"--silent"
],
"description": "Don't repeat the command for bun run"
},
{
"names": [
"--timeout"
],
"description": "Set the per-test timeout in milliseconds, default is 5000",
"takes_arg": true,
"arg": {
"name": "number"
}
},
{
"names": [
"--update-snapshots"
],
"description": "Update snapshot files"
},
{
"names": [
"--rerun-each"
],
"description": "Re-run each test file <NUMBER> times, helps catch certain bugs",
"takes_arg": true,
"arg": {
"name": "number"
}
},
{
"names": [
"--only"
],
"description": "Only run tests that are marked with \"test.only()\""
},
{
"names": [
"--todo"
],
"description": "Include tests that are marked with \"test.todo()\""
},
{
"names": [
"--coverage"
],
"description": "Generate a coverage profile"
},
{
"names": [
"--bail"
],
"description": "Exit the test suite after <NUMBER> failures. If you do not specify a number, it defaults to 1",
"takes_arg": true,
"arg": {
"name": "number"
}
},
{
"names": [
"-t",
"--test-name-pattern"
],
"description": "Run only tests with a name that matches the given regex",
"takes_arg": true,
"arg": {
"name": "pattern"
}
},
{
"names": [
"--dump-environment-variables"
],
"description": "Dump environment variables from .env and process as JSON and quit. Useful for debugging"
},
{
"names": [
"--dump-limits"
],
"description": "Dump system limits. Useful for debugging"
}
],
"args": [
{
"name": "files",
"description": "Test files to run",
"is_variadic": true
}
]
},
{
"name": "pm",
"description": "Set of utilities for working with Bun's package manager",
"options": [
{
"names": [
"bin"
],
"description": "Print the path to bin folder"
},
{
"names": [
"cache"
],
"description": "Print the path to the cache folder"
},
{
"names": [
"hash"
],
"description": "Generate & print the hash of the current lockfile"
},
{
"names": [
"hash-print"
],
"description": "Print the hash stored in the current lockfile"
},
{
"names": [
"hash-string"
],
"description": "Print the string used to hash the lockfile"
},
{
"names": [
"ls"
],
"description": "List the dependency tree according to the current lockfile"
}
]
},
{
"name": "completions",
"description": "Install shell completions"
},
{
"name": "discord",
"description": "Open bun's Discord server"
},
{
"name": "help",
"description": "Print the help menu"
},
{
"name": "x",
"description": "Run an npx command"
},
{
"name": "repl",
"description": "Run a REPL (read eval print loop) with the Bun runtime.(experimental)"
},
{
"name": "init",
"description": "Initialize a new bun project",
"options": [
{
"names": [
"-y",
"--yes"
],
"description": "Answer yes to all prompts"
}
]
}
],
"options": [
{
"names": [
"--inspect"
],
"description": "Activate Bun's debugger for a file",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--inspect-wait"
],
"description": "Activate Bun's Debugger, wait for a connection before executing",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--inspect-brk"
],
"description": "Activate Bun's Debugger, set breakpoint on first line of code and wait",
"takes_arg": true,
"arg": {
"name": "[host:]port",
"description": "Activate inspector on particular port and/or hostname",
"suggestions": [
"3000",
"8080"
]
}
},
{
"names": [
"--hot"
],
"description": "Enable auto reload in the Bun runtime, test runner, or bundler"
},
{
"names": [
"--watch"
],
"description": "Automatically restart the process on file change"
}
],
"args": [
{
"name": "file"
},
{
"name": "args"
}
]
}