Documentation
Learn how Semifold versions and publishes packages across every ecosystem in one repository.
Semifold is a versioning and release tool for monorepos that span multiple languages and package ecosystems. It connects packages that use different manifests and registries, then manages their changesets, related version updates, changelogs, and dependency-ordered publishing as one repository-wide workflow.
Choose what you need
Install Semifold
Install the published CLI with the script, Cargo, npm, or PyPI.
Make your first release
Initialize a repository, create a changeset, review affected packages, and run version and publish.
Understand Semifold
See how package manifests, stable package IDs, dependencies, changesets, and release commands fit together.
Configure a repository
Learn the structure and maintenance workflow of .changes/config.toml.
Extend an ecosystem
Use the published JavaScript plugin runtime and TypeScript SDK for custom package formats.
Look up a term
Distinguish packages, PackageId values, ecosystems, changesets, channels, registries, and plans.
The repository-wide lifecycle
- 01Packages in different ecosystems
- 02One dependency-aware workspace
- 03Changesets describing user-visible changes
- 04Related version and changelog updates
- 05Publish with each ecosystem's rules
The ecosystem adapter for each package understands its manifest. Semifold owns the relationships across adapters: stable package identity, cross-ecosystem dependency propagation, changeset intent, release channels, changelogs, publish ordering, and recovery reporting.
A useful reading order
If Semifold is new to you, read the introduction before the configuration reference. Then complete the first-release tutorial with a small repository. Use the glossary whenever an unfamiliar domain term appears.
The command documentation explains each command in detail. Its CLI reference is a lookup page, not the primary way to learn the workflow.