v0.2.12 available

One command.
Every registry.

Publish to npm, jsr, crates.io, and private registries in a single step. If anything fails, pubm rolls everything back automatically.

bash — pubm
$ pubm patch --registry npm,jsr
 
Prerequisites validated
Registry connections verified
Version bumped to 1.3.0
Publishing to registries...
   npm ··········· published
   jsr ··········· published
Published to 2 registries — done
Unified Distribution

Write once, ship everywhere.

Stop juggling registry CLIs. Pubm handles authentication, protocols, and publishing across every ecosystem — so you focus on code, not deployment scripts.

npmConnected
JSR
JSR.ioReady
Crates.ioConnected
EnterprisePrivate

Publish without fear

Every release is validated, orchestrated, and recoverable. No more half-published packages or manual cleanup.

One workflow, every registry

npm, jsr, crates.io, and private registries — all from a single command. Publishes concurrently with dependency-aware ordering in monorepos.

Automatic rollback

If any registry rejects your package, pubm undoes the version bump, git tag, and commit — leaving your repo exactly as it was.

Catch problems before publishing

Branch guards, clean working tree, remote sync, registry auth — all verified before any side effects happen.

Works locally and in CI

Interactive prompts when you're at the terminal, fully headless when running in CI. Same command, same guarantees.

Release Pipeline

One command does everything.

Run pubm and it handles the rest — version prompts, preflight checks, testing, building, and publishing across every registry.

01

Pick your version

Run pubm with no arguments. An interactive prompt lets you choose the next version — patch, minor, or major — before anything else happens.

02

Preflight & auth

After you choose, pubm verifies the branch, working tree, remote sync, and registry credentials. Problems surface before any side effects.

03

Test, build, tag

Your test suite runs, the build executes, and the version is bumped. A git commit and tag are created atomically — nothing is left half-done.

04

Publish everywhere

All registries receive your package concurrently. Tags are pushed to origin. If anything fails, every change rolls back automatically.

bash — pubm
$ pubm
 
? Select version (current: 1.2.3)
patch 1.2.3 → 1.2.4
  minor 1.2.3 → 1.3.0
  major 1.2.3 → 2.0.0
 
Branch is main
Working tree clean
Remote in sync
 
npm ······· authenticated
jsr ········ authenticated
 
Tests passed (42 specs, 0 failures)
Build succeeded
Version bumped 1.2.3 → 1.2.4
Git commit + tag v1.2.4
 
Publishing to registries...
   npm ··········· published
   jsr ··········· published
Tags pushed to origin
 
Published to 2 registries — done

Three commands. That's it.

Install pubm, preview your release, then publish to every registry at once.

bash — install
 npm i -g pubm

 pubm patch --preview   # see what will happen
 pubm patch              # publish to all registries