Bun (Experimental)
Bun (experimental)
Section titled “Bun (experimental)”Goal: run this repo with Bun (optional, not recommended for WhatsApp/Telegram) without diverging from pnpm workflows.
⚠️ Not recommended for Gateway runtime (WhatsApp/Telegram bugs). Use Node for production.
Status
Section titled “Status”- Bun is an optional local runtime for running TypeScript directly (
bun run …,bun --watch …). pnpmis the default for builds and remains fully supported (and used by some docs tooling).- Bun cannot use
pnpm-lock.yamland will ignore it.
Install
Section titled “Install”Default:
bun installNote: bun.lock/bun.lockb are gitignored, so there’s no repo churn either way. If you want no lockfile writes:
bun install --no-saveBuild / Test (Bun)
Section titled “Build / Test (Bun)”bun run buildbun run vitest runBun lifecycle scripts (blocked by default)
Section titled “Bun lifecycle scripts (blocked by default)”Bun may block dependency lifecycle scripts unless explicitly trusted (bun pm untrusted / bun pm trust).
For this repo, the commonly blocked scripts are not required:
@whiskeysockets/baileyspreinstall: checks Node major >= 20 (we run Node 22+).protobufjspostinstall: emits warnings about incompatible version schemes (no build artifacts).
If you hit a real runtime issue that requires these scripts, trust them explicitly:
bun pm trust @whiskeysockets/baileys protobufjsCaveats
Section titled “Caveats”- Some scripts still hardcode pnpm (e.g.
docs:build,ui:*,protocol:check). Run those via pnpm for now.