v0.5.5 available

One command.
Every registry.

npm, jsr, crates.io, private registries. One step. If anything fails, pubm undoes the version bump, tag, and commit. Your repo stays clean.

zsh - pubm
$ pubm
Zero Config

Drop in your manifest, pubm does the rest.

package.json → npm. jsr.json → jsr. Cargo.toml → crates.io. pubm reads your project and figures out the registries. No config file needed.

npmConnected
JSR
JSR.ioReady
Crates.ioConnected
EnterprisePrivate

Releases that don't break things

Every step is validated before it runs. If something goes wrong, everything rolls back. No half-published packages.

All your registries, one command

npm, jsr, crates.io, private registries. Monorepos publish in dependency order. No scripts to chain.

Automatic rollback

Registry rejected your package? pubm undoes the version bump, git tag, and commit. No half-published state, no manual cleanup.

Preflight checks

Branch, working tree, remote sync, login status, publish permissions. All verified before pubm touches anything.

Same command, local and CI

Interactive prompts in your terminal, fully headless in CI. No separate config, no flags to remember.

Why pubm?

Start right. Never migrate.

Most release tools lock you into a setup. pubm grows with your project. Add registries, packages, or ecosystems without changing your workflow.

  • No migration taxStart with npm only. Add jsr or crates.io when you're ready. Your workflow doesn't change.
  • JS + Rust, one pipelinePublishing a Rust crate alongside an npm package? pubm reads both package.json and Cargo.toml and ships everything together.
  • Monorepo-ready from day oneOne package today, ten tomorrow. pubm publishes in dependency order. No broken releases from wrong sequencing.
How It Works

Run `pubm`. That's it.

Version prompts, preflight checks, tests, builds, multi-registry publish. One command handles the entire pipeline.

01

Pick a version

Run pubm. Choose patch, minor, or major. That's the only decision you make.

02

Preflight checks

pubm verifies your branch, working tree, remote sync, and registry credentials before changing anything.

03

Test, build, tag

Your test suite runs, the build executes, then pubm bumps the version and creates a git commit + tag.

04

Publish everywhere

All registries receive your package at once. If any registry fails, every change rolls back automatically.

zsh - pubm
$ pubm
? Select SemVer increment or specify new version ...
Keep current version 1.2.3
major 2.0.0
minor 1.3.0
patch 1.2.4
prepatch 1.2.4-0
prerelease 1.2.4-0
Custom version (specify)

Install once. Then just pubm.

New project or existing one. pubm auto-detects your registries from day one. No migration needed later.

bash - install
 npm i -g pubm
 pubm