Publishing a profile
Publishing makes a native OMP profile discoverable through OOMPF while keeping the canonical YAML on GitHub.
oompf publish work
work is the profile’s native name, the same name you use with
omp --profile work. OOMPF asks OMP where the profile lives rather than taking
a file path.
Omitted input
If you run oompf publish without a name, OOMPF automatically uses the sole
publishable profile. With multiple profiles it opens a selector only in an
interactive terminal; --json, CI, and piped execution return
ambiguous_profile instead of prompting.
What happens
- Local validation. The artifact is validated structurally and scanned for secrets before anything leaves your machine. A blocking secret finding stops the publish.
- Gist creation. The validated YAML is uploaded as a public GitHub Gist. GitHub assigns it an owner, an id, and a revision (git SHA).
- Registration. OOMPF fetches the canonical Gist, re-validates it, extracts
facts and any
oompfmetadata, and indexes the metadata only. It records the canonical source URL, the pinned revision, and a SHA-256 fingerprint.
The command prints the canonical profile URL, https://oompf.run/p/<id>.
Publishing the same profile again
A second oompf publish work updates the Gist the first one created instead of
making another: the file is patched in place, the same source URL is
re-registered, and the /p/<id> link you already shared keeps working with the
new bytes and a new revision. Publish output reports publication: updated so
an update is distinguishable from a first publication.
The Gist a profile was published to is remembered locally in
~/.oompf/publications.json, keyed by native profile name. Delete the file or
an entry and the next publish starts a new identity — the previous link keeps
serving the bytes it already had. Pass --new to publish a separate profile
from the same source deliberately.
If the remembered Gist has been deleted, made private, or transferred to another
account, publish reports missing_gist or unowned_gist rather than quietly
creating a second identity.
A profile that is already a Gist
If the YAML is already in a public Gist, skip the CLI: paste the Gist URL into Register a Gist. That path indexes the metadata of an existing Gist; it never creates one, and it cannot read a local profile.
Notes
- OOMPF does not invent an OMP runtime version. If your profile carries a config
marker such as
setupVersion, it stays a config marker and is not reported as the OMP version. - A first publication creates one new public Gist; republishing the same profile patches that Gist instead of creating another.
- The canonical artifact always lives at its Gist. OOMPF stores no YAML bytes.