2026-07-30
- #10 (patch)
Fix
npx fledgling(and every other install) doing nothing at all. Thepostinstall: lefthook installscript ran on end-user installs, butlefthookis a devDependency and isn't there — so the script exited 127, npm aborted the install before ever reaching thebin, and since npm swallows script output at the default loglevel you got zero output and no error. Moved git-hook installation toprepare, which runs in the repo and before publish but not for consumers installing from the registry.
2026-07-15
- #7 (minor)
New
fledgling jsrcommand — the same first-publish story, on JSR. Scaffolds missingjsr.jsonmanifests frompackage.json, claims each package on jsr.io (JSR has no create-on-first-publish), links your GitHub repo so CI publishes token-lessly via OIDC (npx jsr publish, noJSR_TOKENsecret), and syncs the score metadata JSR only stores server-side — package description (frompackage.json) and runtime compatibility (fromfledgling.jsr.runtimeCompatconfig). Idempotent (reconciles metadata drift on every run), rate-limit aware, and stops cleanly at JSR's 20-new-packages-per-week scope quota. Auth via a full-access JSR token in$JSR_TOKEN; configure a default scope for unscoped packages withfledgling.jsr.scope. Thanks to @Saeris for the proposal and reference implementation this is built on. - #9 (patch)
Upgrade gunshi to 0.36 and switch shell completion to the official
@gunshi/plugin-completion(replacing the hand-rolled@bomb.sh/tabintegration). Completion behaves the same — package names,--provider, and--permissionsstill complete — and thepackagesargument is now documented in--help.
2026-07-02
- #4 (patch) - Warn up front when your npm account has 2FA disabled, instead of failing every claim with a raw 403.
- #5 (patch)
When claiming a brand-new name with
--newand no repo can be resolved, skip trusted publishing (with a note) instead of erroring out the whole run — you can wire it up later withfledgling sync.
2026-06-18
- #2 (minor) - Prompt for a new package name in the wizard.
2026-06-17
- (major) - Initial release 🐣
fledglingclaims your npm package names and sets up token-less (OIDC) trusted publishing — for a single package or a whole monorepo. - Claim names by publishing a minimal
package.json-only placeholder, so you can configure trusted publishing before your first real release - Set up trusted publishing via npm's own
npm trust(OIDC) — noNPM_TOKEN, no clicking through the npm website - GitHub, GitLab, and CircleCI providers, supporting every option
npm trustaccepts - Monorepo-aware — npm / yarn / bun
workspacesand pnpm, plus single-package repos; target packages by name or glob - Interactive wizard (powered by clack), with
add,sync, andinitsubcommands; goes non-interactive with--yesor in CI fledgling syncreconciles trusted publishing across every package against your config, showing the exact drift before fixing it- 2FA handled by npm itself — an interactive browser approval (cached ~5 min) covers a whole run; pass
--otp, or--otp-secret/$FLEDGLING_OTP_SECRET(a TOTP secret orotpauth://URI) for non-interactive use - Exclude packages from fledgling with a
fledgling.ignorelist (names or globs), beyond"private": true - Idempotent — re-run any time you add a package; it only does what's missing
- Configurable via a
fledglingblock inpackage.json, with CLI flags as per-run overrides - Shell completions for zsh, bash, and fish
--dry-runto preview the plan without changing anything