What are Packages?
A Package is a curated collection of commands, standards, and skills grouped together. Packages organize your artifacts in a way that matches how your team actually works—whether by technology, domain, team, or architectural layer. Instead of managing dozens of individual items, packages let you group related artifacts and distribute them as a single unit.How to Distribute Packages
There are two ways to distribute packages to your team:- Install locally via CLI - Download packages directly to your local machine (no Git required)
- Distribute to Git repositories - Push packages to your repositories (requires Git configuration)
Creating Packages
Via Web Interface
- Navigate to Packages in the Packmind UI
- Click Create Package
- Provide a name and description
- Select commands, standards, and skills to include — only items that belong to no package can be picked here, see Choosing Items
- Save the package
Via CLI
Create an empty package from the command line:Adding Items to Packages
An item belongs to a single package. Putting an item in a package takes it out
of the one it was in.
- Select one or more items
- Click Manage packages
- Under Move to a package, pick the destination
packmind packages add for an item that is in no package,
and packmind packages move to take one from another package:
packmind packages add refuses an item that already belongs to another package
and prints the move command to run instead.
Choosing Items When You Create or Edit a Package
The Standards, Commands, and Skills dropdowns of a package form only offer items that belong to no package. An item another package holds is greyed out and labelled with the package holding it — move it from the item’s own page, or from the list of items, to bring it here. Items already in the package you are editing stay selectable, so you can always take one out.Removing Items from a Package
An item that belongs to no package is not installed or distributed anywhere, so Packmind always tells you where the item still lives after a removal.- Via Web Interface — click the × next to a package name, either on the item’s row in a list or in the In these packages section of the Manage packages panel
- Via CLI — use
packmind packages remove:
Using Packages
Once you’ve created packages, you can distribute them using either of these methods:Option 1: Install Locally
Download package content directly to your machine using the CLI:Option 2: Distribute to Repositories
Push packages to your Git repositories through the web interface:- Navigate to Packages
- Select packages to distribute
- Choose target paths
- Click Distribute
Default skills included — All distributions automatically include
Packmind’s default skills (such as
packmind-update-playbook for creating and
updating playbook artifacts). These are added alongside your package contents.Package Versions
A package can be released under a version. A release is an immutable snapshot of the package: it records the package’s name and description, and pins the exact version of every command, standard, and skill the package contains at the moment you create it. Nothing changes a release afterwards—publishing a newer version of a component, renaming the package, or removing a component leaves it untouched. Open a package and a bar under its name says which version you are reading. It reads Unreleased—the package as it stands, the only reading with no version number—or Not released yet when the package has never been released.Distribution always sends current content — A release names a state, it
doesn’t change what gets distributed. When you distribute a package or install
it with the CLI, it always includes the latest version of each command,
standard, and skill it contains. To see which repositories have outdated
versions, check the distribution overview.
Creating a Release
- Navigate to Packages and select your package
- Click Create a release, beside Unreleased in the bar under the package name
- Enter a version number as
X.Y.Z, or click one of the three suggested increments - Submit the form
0.1.0, those are 0.1.1, 0.2.0, and 1.0.0. A package’s first release is pre-filled with 0.1.0.
A version that isn’t accepted stays in the field so you can correct it. A version that isn’t written as X.Y.Z is refused with Version must follow X.Y.Z, and a version lower than or equal to the current one with Version must be greater than 1.2.0, naming the current version. Suffixes such as 1.2.0-beta-2 aren’t accepted.
Any member of the space can create a release.
When You Can Create a Release
Create a release appears once the package has changed since its last release. Any one of these counts as a change:- A command, standard, or skill in the package has a newer version than the release pinned
- The package’s name or description was edited
- A component was added to or removed from the package
Reading an Earlier Version
Open the menu on Unreleased to see every release of the package, newest first, each with the day it was cut. Select one and the package is shown as that version left it: the components it pinned, at the versions it pinned them, including components deleted since. The reading is read-only—a release never changes—so the controls that write the package leave while you are on it. The version you are reading is part of the address, so a link to1.1.0 opens on 1.1.0 for whoever you send it to. Select Unreleased in the same menu, or the link beside the list, to come back to the package as it stands.