What is LunaPack?
LunaPack is a command-line tool and manifest format for reusable, versioned
engineering packs. Its luna CLI applies and maintains selected files without
copying an entire repository and losing ownership history.
What you can do
- Start a project with a pack from a local folder or Git repository.
- Preview installation before files or project state change.
- Check available updates and apply them deliberately.
- Get selected files from Git without a pack.
- Create a pack once and make it available to other projects.
Get started
- Install Luna.
- Add a pack source.
- Evaluate a pack before changing project files.
- Discover and install a pack.
- Update packs when a newer release is available.
pack.yml -> luna -> project files
A pack defines reusable content. LunaPack resolves and applies it. The project records its requested packs and resolved state so the next change is clear.
Choose a guide
- Everyday work covers updates, parameters and variables, target remapping, and lifecycle hooks.
- Advanced workflows cover Luna Links, external-source approval, Git source behavior, existing-file adoption, and audit and recovery.
- CLI reference for the supported command surface and project documents.
- Pack guide to create, release, and understand packs.
- Automation guide for noninteractive validation and installs.
- Troubleshooting for common failures and recovery.
- Usage threat model for pack, source, workspace, and lifecycle security boundaries.