OCI-native

Package agent skills like container images.

Epos turns a directory of agent instructions into an OCI artifact — so you version it, publish it to the registry you already run, and pull it back anywhere, with the tools you already have.

The problem

Agent skills are shared as zip files in chat threads and copy-pasted folders. There is no version you can pin, no digest you can verify, and no way to say “this skill, but without that section, and with our language set”. Meanwhile every team already runs a registry that solves exactly those problems for container images.

Epos uses that registry. A skill is an OCI artifact: content-addressed, tagged, signable, and pullable by any OCI client. No new server, no new account, no daemon.

Install

go install github.com/gaarutyunov/epos/cmd/epos@latest

Compose a skill from one you already trust

A Skillfile reads like a Dockerfile. Start from a published skill, remove what does not apply, and set your own values:

FROM ghcr.io/gaarutyunov/skills/reviewer:1.2.0

# Keep the review checklist, drop the house style we do not use.
RM sections/house-style.md

# Point it at our stack.
SET language "Go"
APPEND sections/checklist.md <<EOF
- Table-driven tests for every exported function.
EOF

Build it and install it into the current project:

epos build -t reviewer:ours . && epos install reviewer:ours .claude/skills/reviewer/ now holds the composed skill — the upstream checklist, minus the section you dropped, with language rendered as Go. Run epos ls to see it, and commit skills.lock.json so the next machine resolves the same digest.

Every instruction — FROM, COPY, RM, APPEND, REPLACE, PATCH, AWK, SET, UNSET, ARG — with its syntax and a worked example is in the Skillfile reference.

Publish it back

epos push copies it straight out of the local store into your registry — nothing is repacked, so the digest that lands upstream is the one epos pack printed. Use epos registry login first if the registry wants a credential.

epos push reviewer:ours oci://ghcr.io/your-org/agent-skills

What it produced is an ordinary OCI artifact, so any other OCI client publishes it just as well.

oras cp --from-oci-layout-path "$(epos store path)" reviewer:ours ghcr.io/your-org/agent-skills/reviewer:1.0.0

The whole round trip

The quick start runs it end to end — author a skill, publish it, pull it back onto a machine that has never seen it, and install it with your own values filled in. It assumes no prior knowledge of OCI or registries.

Every command, every flag and every default is in the CLI reference, generated from the CLI's own command definitions.