Quickstart
This page shows the filesystem setup. The catalog is a local directory,
and podium sync writes harness-native files into a project. This path
fits any team or individual whose catalog does not require access
control or progressive disclosure, including solo work, prototypes,
first evaluation, and Git-shared team catalogs.
Podium is at 0.1.x, an early release. Surface and behavior may still shift before 1.0; see Implementation status for what’s shipped and what’s still on the roadmap.
Prerequisites
- A terminal.
- Claude Code installed
(or any other harness Podium supports; see Configure your
harness). The walkthrough
below uses Claude Code; the commands are identical for other
harnesses with
--harness <name>swapped.
1. Install the CLI
Pick the channel that matches your platform. Each option installs the three Podium binaries (podium, podium-server, podium-mcp) on PATH.
macOS / Linux (Homebrew):
brew tap lennylabs/tap
brew install podium
podium version
Windows (Scoop):
scoop bucket add lennylabs https://github.com/lennylabs/scoop-bucket
scoop install podium
podium version
Direct binary download: grab podium-<os>-<arch> (or the .tar.gz / .zip bundle that includes all three binaries) from the latest release.
From source (Go 1.26+ required):
git clone https://github.com/lennylabs/podium.git
cd podium
go build -o ~/.local/bin/podium ./cmd/podium
The development setup has the full prerequisites and the SDK build steps.
2. Tell Podium where the catalog lives
Pick a directory for artifacts. The examples use ~/podium-artifacts/.
From the project that will consume the artifacts, point Podium at that
directory and set Claude Code as the default harness:
mkdir -p ~/podium-artifacts/personal
cd ~/projects/your-project
podium init --registry ~/podium-artifacts/ --harness claude-code
That writes <workspace>/.podium/sync.yaml with two defaults: a
registry pointing at the directory (so the client reads from disk
directly, with no server) and a harness telling Podium how to format
outputs for Claude Code. Verify:
podium config show
The merged config should show the registry path and the harness. To share
these defaults with teammates, commit
.podium/sync.yaml. For a per-developer config that follows you
across projects, run podium init --global instead.
3. Write your first skill
A skill is a directory with two manifest files at its root:
SKILL.md from the agentskills.io
standard and ARTIFACT.md for Podium metadata. The registry path is one
filesystem layer; artifacts and intermediate domain directories live
underneath. The example below creates a greet skill under a personal/hello/
domain path:
mkdir -p ~/podium-artifacts/personal/hello/greet
cat > ~/podium-artifacts/personal/hello/greet/SKILL.md <<'EOF'
---
name: greet
description: Greet the user by name and tell them today's date. Use when the user greets you or asks who you are.
license: MIT
---
Greet the user by their first name (ask if you don't know it).
Tell them today's date in a friendly format. Keep it to one or
two sentences.
EOF
cat > ~/podium-artifacts/personal/hello/greet/ARTIFACT.md <<'EOF'
---
type: skill
version: 1.0.0
when_to_use:
- "When the user greets you or asks who you are."
tags: [demo, hello-world]
sensitivity: low
---
<!-- Skill body lives in SKILL.md. -->
EOF
The pair of files has these roles:
SKILL.mdcarries the agent-facing content. The standard’s requirednameanddescriptionsit in its frontmatter; the prose body is what the agent reads.ARTIFACT.mdcarries Podium’s structured frontmatter.type,version,when_to_use,tags,sensitivity, and the rest of Podium’s schema live here. The body is empty (a one-line HTML comment pointer).- The directory path is the canonical artifact ID. Above, that’s
personal/hello/greet. References from other artifacts use this ID.
4. Materialize into Claude Code
From the project configured in step 2, run sync:
podium sync
Output:
adapter: claude-code
target: /Users/alice/myproject
artifacts:
- personal/hello/greet [podium-artifacts]
.claude/skills/greet/SKILL.md
Podium reads the registry, finds the artifact, runs the Claude Code
harness adapter on it, and writes the result to the path Claude Code
expects. The default sync target is the
current directory; the adapter writes a skill into
.claude/skills/<name>/SKILL.md underneath.
5. Use it
Open Claude Code in that project. Type:
hello!
Claude Code natively discovers .claude/skills/greet/SKILL.md. Filesystem mode
does not require MCP. Claude Code recognizes that the skill’s description
matches the prompt and uses it to produce a greeting with the current date.
Watch mode (optional)
For iterative authoring, run podium sync --watch instead of
podium sync. It watches the registry directory with fsnotify and
re-materializes on every change. A saved edit to SKILL.md or
ARTIFACT.md lands in .claude/ immediately.
What’s next
After the local loop works, continue with one of these paths:
- Add more artifacts. Drop more directories under
~/podium-artifacts/personal/with their ownARTIFACT.mdfiles (andSKILL.mdfor skills). Try a differenttype::command,context,rule,hook,agent,mcp-server. The authoring guide has the field reference and recipes for each. - Share settings with teammates. Commit the
<workspace>/.podium/sync.yamlcreated above so teammates inherit your harness, target, and any profiles you set up. For a per-developer config that follows you across projects, usepodium init --global. - Browse the catalog from the agent. As your registry grows, the
agent can call
load_domain,search_domains, andsearch_artifactsto discover available artifacts. Runtime browsing requires a server. See How it works for the discovery meta-tools and when each applies. - Split the catalog into multiple layers. This quickstart uses a
single-layer setup (one filesystem layer rooted at
~/podium-artifacts/). To compose several layers from one directory (for example, a shared team layer alongside a personal layer), opt the directory into filesystem-registry mode by adding a.registry-configwithmulti_layer: true. See Solo / filesystem for the layout and.registry-configreference. - Outgrow filesystem mode. When runtime discovery (agents loading
capabilities mid-session) or a single audit log for a team becomes
necessary, move to a standalone server:
podium serve --standalone --layer-path ~/podium-artifacts/. The same directory and artifacts work behind the server. See Deployment -> Small team.
Troubleshooting
config.no_registry error. podium init didn’t run, or the
resolved defaults.registry is empty. Re-run step 2.
podium sync says no artifacts. Confirm that the artifact directory
contains both ARTIFACT.md and (for skills) SKILL.md at its immediate
root. The directory path beneath ~/podium-artifacts/ is the canonical
artifact ID; intermediate directories without manifest files are domain
nodes, not artifacts.
Claude Code doesn’t see the skill. Check that
.claude/skills/greet/SKILL.md actually exists. If it does, restart Claude
Code so it re-reads its directory.
Skill is found but not loaded. Claude reads the description:
field to decide whether the skill matches your prompt. Vague
descriptions don’t get used. The
authoring guide has more on description quality.