About this tool
Generate lerna.json with fixed or independent versioning, npm client, publish registry, conventional commits and branch rules.
This tool generates a lerna.json for Lerna v7/v8 — the config file that decides whether your monorepo uses fixed (one shared version) or independent per-package versioning, and how lerna version and lerna publish behave. It emits the documented command.version and command.publish options: conventionalCommits, allowBranch, message, ignoreChanges, registry and distTag, with the $schema pointer for editor validation. Package maintainers get a valid config without reading two generations of Lerna docs.
Open Lerna Config Generator on AltFTool — it loads instantly in your browser.
Provide your input — an image, text, or data.
Let the tool analyze or generate the result.
Review, refine, and reuse the output wherever you need it.
Emits version: "independent" or a validated fixed semver — the core choice that shapes every later release.
Uses the documented command.version / command.publish keys, so the file validates against Lerna's own JSON schema.
Leaves packages out when you use package-manager workspaces, matching Lerna v7+'s default discovery.
Fixed (locked) mode keeps every package on one shared version — a single number in lerna.json that all packages bump together, the model Babel uses. Independent mode sets version to "independent" so each changed package gets its own bump and changelog at release time; pick it when packages evolve at genuinely different speeds.
Usually not — since Lerna v7 removed useWorkspaces, Lerna reads package locations from your package manager's workspaces (the workspaces field in package.json, or pnpm-workspace.yaml) by default. An explicit packages array in lerna.json overrides that, which is only needed when your Lerna packages differ from your workspace globs.
With command.version.conventionalCommits set to true, lerna version parses commit messages to decide each bump — fix: produces a patch, feat: a minor, and a BREAKING CHANGE footer or ! a major — and writes CHANGELOG.md files automatically. It requires your team to actually follow the Conventional Commits spec, otherwise every release defaults to patch.
Set command.version.allowBranch to a branch name or list (for example "main") and lerna version will refuse to run anywhere else. For registry safety, command.publish.registry pins the target registry and distTag publishes under a tag like next so accidental installs of pre-releases via npm install package@latest cannot happen.