Packages

LPM is a multi-ecosystem package registry. Packages are published under the @lpm.dev/ scope regardless of ecosystem.

Supported Ecosystems

EcosystemDetected byManifest
JavaScriptpackage.jsonpackage.json
SwiftPackage.swiftPackage.swift (parsed via swift package dump-package)
XCFramework.xcframework bundleInfo.plist inside the bundle

The CLI auto-detects your ecosystem when you run lpm publish. All ecosystems use the same @lpm.dev/owner.package-name naming format.

Package Format

JavaScript

{
  "name": "@lpm.dev/your-username.my-utils",
  "version": "1.0.0",
  "main": "index.js",
  "files": ["src/", "index.js"]
}

Swift

Your Package.swift is the manifest. The CLI also reads a minimal package.json for the LPM name and version:

{
  "name": "@lpm.dev/your-username.my-swift-lib",
  "version": "1.0.0"
}

Swift Package Collections

LPM provides Swift Package Collection endpoints so you can browse and add LPM packages directly in Xcode.

CollectionURL
All Swift packageshttps://lpm.dev/api/collections/swift
By ownerhttps://lpm.dev/api/collections/swift/{owner}
By categoryhttps://lpm.dev/api/collections/swift/category/{category}

To add a collection in Xcode: File → Add Package Collection, paste the URL, and click Add. Packages from the collection will appear in Xcode's package search.

XCFramework

Pre-built binary frameworks with an Info.plist defining platform slices and architectures:

{
  "name": "@lpm.dev/your-username.my-framework",
  "version": "1.0.0"
}

The name format is @lpm.dev/owner.package-name, where the owner is your username or organization name.

Distribution Modes

Every package has a distribution mode:

ModeAccessRevenue
PrivateOwner or org members onlyN/A
PoolAll Pool subscribersRevenue share from $12/month subscription fund
MarketplaceAnyone who purchases a licenseDirect sales (10-15% platform fee)

New packages start as private. You can switch to marketplace or pool in package settings, but this change is permanent. Once a package is on the marketplace or in the pool, it cannot go back to private. This protects buyers and subscribers.

Learn More