Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
$ npx -y skills add oven-sh/bun --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: oven-sh/bun
What's inside
Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called bun.
At its core is the Bun runtime, a fast JavaScript runtime designed as a drop-in replacement for Node.js. It's written in Rust and powered by JavaScriptCore under the hood, dramatically reducing startup times and memory usage.
bun run index.tsx # TS and JSX supported out-of-the-box
The bun command-line tool also implements a test runner, script runner, and Node.js-compatible package manager. Instead of 1,000 node_modules for development, you only need bun. Bun's built-in tools are significantly faster than existing options and usable in existing Node.js projects with little to no changes.
bun test # run tests
bun run start # run the `start` script in `package.json`
bun install <pkg> # install a package
bunx cowsay 'Hello, world!' # execute a package
Bun supports Linux (x64 & arm64), macOS (x64 & Apple Silicon), and Windows (x64 & arm64).
Linux users — Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1.
x64 users — if you see "illegal instruction" or similar errors, check our CPU requirements
# with install script (recommended)
curl -fsSL https://bun.com/install | bash
# on windows
powershell -c "irm bun.sh/install.ps1 | iex"
# with npm
npm install -g bun
# with Homebrew
brew tap oven-sh/bun
brew install bun
# with Docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun
To upgrade to the latest version of Bun, run:
bun upgrade
Bun automatically releases a canary build on every commit to main. To upgrade to the latest canary build, run:
bun upgrade --canary
Intro
Templating
Runtime
Package manager
Bundler
Test runner
Package runner
API
Bun.serve)Bun.file)bun:sqlite)Bun.sql)Bun.redis)Bun.s3)Bun.cron)Bun.Transpiler)Bun.color)bun:ffi)bun:ffi cc)Bun.Cookie)Bun.CSRF)Bun.secrets)Bun.YAML)Bun.TOML)Bun.Glob)Bun.semver)Deployment
Binary
Ecosystem
HTMLRewriter
HTTP
Install
Process
Read file
Runtime
Streams
Test
bun testbun testbun testbun testUtil
WebSocket
Write file
Refer to the Project > Contributing guide to start contributing to Bun.
Refer to the Project > License page for information about Bun's licensing.
.aikido
.bk.yaml
.buildkite/
bootstrap.yml
ci.mjs
Dockerfile
Dockerfile-bootstrap.sh
hooks/
pre-exit
scripts/
sign-windows-artifacts.ps1
upload-release.sh
update-test-durations.yml
.cargo/
.gitkeep
.clang-tidy
.clangd
.claude/
commands/
dedupe.md
find-duplicate-prs.md
find-issues.md
upgrade-boringssl.md
upgrade-nodejs.md
upgrade-webkit.md
docs/
landing-prs.md
hooks/
post-edit-format.js
pre-bash-guard.js
settings.json
skills/
implementing-jsc-classes-cpp/
SKILL.md
implementing-jsc-classes-rust/
SKILL.md
javascriptcore-garbage-collector/
SKILL.md
rust-system-calls/
SKILL.md
slowest-tests/
SKILL.md
sync-react-compiler.md
verify/
SKILL.md
writing-bundler-tests/
SKILL.md
writing-dev-server-tests/
SKILL.md
.coderabbit.yaml
.cursor/
environment.json
.cursorignore
.dockerignore
.editorconfig
.git-blame-ignore-revs
.gitattributes
.github/
actions/
setup-bun/
action.yml
CODEOWNERS
dependabot.yml
ISSUE_TEMPLATE/
2-bug-report.yml
3-typescript-bug-report.yml
4-feature-request.yml
5-docs-issue.yml
6-crash-report.yml
7-install-crash-report.yml
config.yml
pull_request_template.md
rust-matcher.json
workflows/
auto-assign-types.yml
auto-close-duplicates.yml
auto-label-claude-prs.yml
bun-types.yml
cancel-buildkite-on-pr-close.yml
claude-dedupe-issues.yml
claude-find-issues-for-pr.yml
CLAUDE.md
clippy.yml
close-stale-robobun-prs.yml
comment-cop.yml
format.yml
freebsd-smoke.yml
lint.yml
lolhtml.yml
miri.yml
on-slop.yml
packages-ci.yml
release.yml
source-lints.yml
stale.yaml
update-cares.yml
update-hdrhistogram.yml
update-highway.yml
update-libarchive.yml
update-libdeflate.yml
update-lolhtml.yml
update-lshpack.yml
update-sqlite3.yml
update-vendor.yml
update-zstd.yml
vscode-release.yml
.gitignore
.lldbinit
.mailmap
.prettierignore
.prettierrc
.typos.toml
.vscode/
c_cpp_properties.json
extensions.json
launch.json
settings.json
tasks.json
AGENTS.md
bench/
.env
.gitignore
async/
.env
AsyncLocalStorage.mjs
bun.js
deno.js
node.mjs
package.json
bun.lock
bundle/
.gitignore
bun.lockb
index.ts
index10.ts
package.json
README.md
run-bench.sh
tsconfig.json
cat/
bun.js
cat.mjs
node.js
copyfile/
bun.js
fallback-rw-loop.mjs
node-streams.js
node.mitata.mjs
node.mjs
crypto/
aes-gcm-throughput.mjs
asymmetricCipher.js
asymmetricSign.js
diffie-hellman.mjs
ecdh-convert-key.mjs
hkdf.mjs
primes.mjs
random.mjs
deepEqual/
map.js
set.js
emitter/
implementations.mjs
microbench_once.mjs
microbench.mjs
realworld_stream.mjs
expect-to-equal/
.gitignore
bun.lock
expect-to-equal.test.js
expect-to-equal.vitest.test.js
index.ts
package.json
README.md
tsconfig.json
express/
.gitignore
bun.lockb
express.mjs
package.json
README.md
tsconfig.json
fetch/
bun.js
deno.js
node.mjs
streaming-backpressure.mjs
ffi/
.env
bun.js
deno.js
node.mjs
package.json
src/
build.rs
bun.lock
Cargo.lock
Cargo.toml
package.json
src/
lib.rs
fs-cp/
cp.mjs
glob/
braces.mjs
match.mjs
micromatch.mjs
scan.mjs
grpc-server/
benchmark.proto
cert.pem
index.js
key.pem
package.json
gzip/
.env
bun.js
bun.lock
deno.js
node.mjs
package.json
image/
.gitignore
bench-resize.mjs
bun.lock
package.json
visual-compare.mjs
install/
.eslintrc.js
.gitignore
bun.lock
next-env.d.ts
next.config.js
package.json
README.md
json-corpus/
.gitignore
fetch.sh
jsonc-parse.mjs
json5/
bun.lock
json5.mjs
package.json
log/
.env
bun.js
deno.mjs
node.mjs
package.json
module-loader/
.gitignore
create-tla-graph.js
create.js
stub.js
modules/
node_os/
.env
bun.js
node.mjs
package.json
package.json
postgres/
.gitignore
bun.lockb
index.mjs
mysql.mjs
package.json
README.md
tsconfig.json
postMessage/
postMessage-object.mjs
postMessage-string.mjs
structureClone-string.mjs
quic/
cert.pem
client.mjs
key.pem
README.md
run.mjs
server.mjs
react-hello-world/
bun.lock
package.json
react-hello-world.deno.jsx
react-hello-world.jsx
react-hello-world.node.js
react-hello-world.node.jsx
react-hello-world.workerd.config.capnp
react-hello-world.workerd.js
react-hello-world.workerd.jsx
README.md
runner.mjs
scanner/
bun.lock
package.json
remix-route.ts
scan-imports-only.js
scan.bun.js
scan.node-esbuild.mjs
snippets/
_fixture.txt
abort-signal.mjs
archive.mjs
array-arguments-slice.mjs
array-concat.mjs
array-indexof.mjs
array-map.mjs
array-of.js
array-shift.mjs
array-sort.mjs
array-unshift.mjs
arraybuffersink.mjs
assert.mjs
async-overhead.mjs
atob.mjs
blob-array-iteration.mjs
blob.mjs
buffer-base64-decode.mjs
buffer-base64.mjs
buffer-concat.mjs
buffer-create.mjs
buffer-fill.mjs
buffer-from-array.mjs
buffer-from-hex.mjs
buffer-includes.js
buffer-read.js
buffer-slice.mjs
buffer-to-string.mjs
buffer.js
byteLength.mjs
callbacks-overhead.mjs
color.mjs
compression-streams.mjs
concat.js
console-log.mjs
cp-r.mjs
cp.mjs
crypto-2190.mjs
crypto-hasher.mjs
crypto-randomUUID.mjs
crypto-stream.mjs
crypto.mjs
date-now.mjs
decode.js
deep-equals.js
define-properties.mjs
dns-prefetch.mjs
dns.node.mjs
dns.ts
encode-into.mjs
error-capturestack.mjs
escapeHTML.mjs
exists.js
express-hello.mjs
fastify.mjs
fetch-gzip.mjs
ffi-overhead.mjs
form-data.mjs
hash.mjs
headers.mjs
html-rewriter-suspend.mjs
http-hello.deno.js
http-hello.js
http-hello.node.mjs
http3-hello.js
index-of.mjs
ipc-json-child.mjs
ipc-json.mjs
json-parse-stringify.mjs
json-stringify.js
jsx-entity-decoding.jsx
markdown-react.mjs
markdown.mjs
microtask-throughput.mjs
module-exports-putter.cjs
native-overhead.mjs
new-incomingmessage.mjs
node-vm.mjs
node-zlib-brotli.mjs
noop.js
object-define-property.mjs
object-entries.mjs
object-hasown.mjs
object-values.mjs
path-parse.mjs
path-relative.mjs
path-resolve.mjs
pbkdf2.mjs
peek-promise.mjs
performance-now-overhead.js
private.mjs
process-cwd.mjs
process-info.mjs
process.mjs
promise-combinators.mjs
promise-memory.mjs
promise-race.mjs
promise-then.mjs
react-dom-render.bun.js
read-file-chunk.mjs
... 1600 moreShowing a partial view of a very large repo.
FAQ
bun is a Claude Code plugin with 8 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes implementing-jsc-classes-cpp, implementing-jsc-classes-rust, javascriptcore-garbage-collector. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.