lore publish
Package and publish a skill to the Lore registry.
Usage
lore publish [<path>] [flags]Description
Validates the manifest.yaml, compresses the package directory into a .lore archive, and uploads it to the registry. Requires lore login or LORE_AUTH_TOKEN.
Flags
| Flag | Description |
|---|---|
--dry-run | Validate and package without uploading |
--registry | Registry URL |
Examples
# Publish from the current directory
lore publish
# Publish from a specific directory
lore publish ./my-skill
# Dry run — validate without uploading
lore publish --dry-runPackage Structure
Your package directory must contain:
my-skill/
├── manifest.yaml ← Required
├── README.md
├── LICENSE
└── content/
├── en-US.md ← Required (default language)
└── pt-BR.md ← Optional translationsSee Package Authoring for the full manifest.yaml schema.
Published packages are immutable. Once a version is published, it cannot be overwritten. Use a new version number for updates.
Bundling extra files with spec.include
If manifest.yaml declares spec.include, lore push/lore publish also bundles every directory or file it lists into the archive:
spec:
include:
- templates✓ Published m1cloud/dotnet-service:1.0.0There is no more automatic assets//examples/ bundling — those directories are only included if listed in spec.include. If the CLI finds one of those directories locally but it isn’t declared, it prints a [WARN] and leaves it out of the archive rather than failing the publish.
spec.include content is capped by size (5 MB total / 2 MB per file by default) and the whole .lore archive is capped too (10 MB by default). lore push/lore publish validate this before uploading and fail fast with a descriptive error if a limit is exceeded — the Registry enforces the same limits on ingestion as the final authority.