Agent recipes that live in your vault.
A skill is a single markdown file with a name, a one-line
description, and instructions the assistant follows when
you invoke it. They sit on disk, version-control with your vault, and
share the format Anthropic uses for Claude — so anything you've already
written under ~/.claude/skills/ works in Pagium with no
migration step.
The format
Each skill is a directory under <vault>/.pagium/skills/<name>/
containing one SKILL.md file. Optional sibling files
(templates, schemas, examples) get inlined into the skill body as
<bundled> blocks when the assistant loads it.
---
name: daily-journal
description: Create today's journal entry under Journal/YYYY-MM-DD with a consistent template.
allowed-tools:
- save_artifact
---
# Daily journal
When invoked, ask the user three short prompts, then save the entry…
Frontmatter rules: name must match the folder name (NFC),
be ≤ 200-char description, optional allowed-tools
restricts which tools the assistant can use while the skill is active.
Where skills come from
VAULT (highest precedence)
<vault>/.pagium/skills/ — versions with your
notes. Walks upward to your home directory, so a sub-folder
inherits skills from above.
USER CONFIG
<app_data>/skills/ — follows you across vaults.
Personal recipes you don't want tied to a specific knowledge base.
~/.CLAUDE/SKILLS/ (read-only)
Anything you've already authored for Claude Code or Cowork shows up automatically. Trust-gated per skill — see below.
HUB
Configurable list of GitHub repos. The default
pagium-skills-hub ships pre-configured. Add your own
in Settings → Skills → Sources.
Two ways to activate a skill
1. Let the assistant pick
The system prompt includes an "Available skills" block listing every
enabled skill's name + description (capped at 32). When your message
matches a skill, the assistant calls use_skill(name)
and follows the loaded instructions for that turn.
2. Pin or slash-invoke
Type /foo in the chat to autocomplete a skill name —
the dropdown shows matching skills, Enter sends. Or pin a skill to
a thread (the "+" near the chat input) and its body becomes part of
the system prompt every turn until you unpin.
Trust gate
Skills from ~/.claude/skills/ are treated as untrusted
third-party content. The first time the assistant tries to load
one, Pagium prompts you to confirm. The trust grant is bound to
the skill's content hash — editing the file re-prompts. While
active, the skill body is wrapped in
<untrusted-skill> tags with a system rule
telling the model to treat it as data, not instructions.
Skills installed from the Hub land in your vault directory and
inherit vault trust posture — you chose to install them via the UI,
so no extra prompt. Pagium never executes bundled scripts; .sh
/ .py / .js sibling files are read as text
and inlined for the model's reference only.
Authoring conventions
- Imperative voice. The assistant reads SKILL.md as
instructions — write "Save the result via
save_artifact" not "you might want to save…" - Pin folder names. If the skill writes notes, fix the
target folder (
Journal,Meetings) so the user can rely on consistent layout. - Restrict tools when it matters. Read-only research
modes use
allowed-toolsto forbid writes — even if the user asks otherwise mid-conversation. - Be terse. A short skill that does one thing well is better than a long one that drifts. The system prompt has a token budget; pinned skills regenerate every turn.
Manage your skills
Open Pagium → ⌘ , Settings → Skills. The tab has three sub-views:
- Installed — every discovered skill with source badges and enable toggles. Vault-source skills can be removed; user and claude-compat skills are managed in their respective folders.
- Browse Hub — pick a source, see its catalog, install
with one click. Hub installs land under
<vault>/.pagium/skills/. - Sources — add your own GitHub repo as a source. GitHub URLs only (the hub validates against an allow-list before saving).