Free distribution
Install Free packages anonymously and understand publishing, reviews, private history, and hosting retention.
Free distribution makes a package available without an account, subscription, or purchase.
lpm install @lpm.dev/owner.free-package
lpm add @lpm.dev/owner.free-source --path ./src/vendor/free-sourceUse lpm install for dependencies, including native Swift packages. Use lpm add to copy source files.
Access and credentials
An available Free release needs no login. A stale token does not block its metadata or downloads. Private, Pool, and Marketplace dependencies still require their own access.
If a requested version is unavailable publicly, LPM CLI can refresh a stored login to recover the publisher's access to private history. Successful public installs do not refresh the login. A version range can therefore select a public release even when the publisher has a newer private release. To install private history, request its version explicitly with a valid publisher login.
Each install checks current availability, including when package files are cached. A quarantined or removed release cannot be installed from its old registry metadata.
Free packages generate no Pool revenue. A project can mix Free and protected packages; protected dependencies retain their normal access requirements.
Publishing and private history
Packages start private. After publishing a release, select the distribution mode in the package's dashboard settings.
Free publishing requires paid Pro coverage for a personal package, or eligible coverage from the owning organization. An unpaid trial does not qualify. Free distribution is separate from the Free account plan.
When you select Free, Pool, or Marketplace, only the latest eligible release enters activation review. Earlier private releases stay publisher-only and are absent from public metadata and pages.
Future releases enter review individually. This includes a new lower-version backport. For example, after promoting 2.0.0, you can publish public 1.5.0; the previously private 1.0.0 stays hidden.
Free activation requires publication security review and dependency checks. Identified dependencies from LPM.dev Registry must themselves be available Free releases. Aliases, development dependencies, peers, bundles, source configuration, and Swift declarations are included.
Use lpm publish --wait when automation must wait for availability. A held or rejected upload does not replace a previously available release.
Hosting retention
When paid coverage ends, existing Free releases remain downloadable. The Registry automatically deprecates the package after 30 days and schedules hosted-file removal after 365 days.
The clock starts when paid coverage ends, including the end of a paid period after cancellation. Renewal before removal clears this automatic schedule. Author deprecation and security restrictions remain separate.
Removal preserves package identities and version records. Names cannot be reused, and renewal after removal does not restore the files.
Security rescans continue after paid coverage ends. Quarantine blocks known releases containing affected bytes, including nested bundles. The Registry preserves the published archive; a corrected release needs a new version.
Free distribution is permanent. It cannot change to Private, Pool, or Marketplace. Distribution does not replace the package's software license.