What is Almanac?
Almanac indexes agent skills so agents can find them and load them. A skill is a directory with a SKILL.md file. The YAML frontmatter declares a name and a description. The body holds the instructions.
Almanac implements the agentskills.io specification for SKILL.md
parsing and frontmatter. An agent reads the list of names and
descriptions at session start. It loads the full content later with
almanac show <name>.
Where skills come from
Almanac reads skills from directories on disk. The main directory is
the curated library that almanac.yml governs. Read almanac docs curation for the manifest workflow.
Add more directories with --source. Each --source flag adds one
directory. Nothing is compiled into the binary.
A library can also declare other libraries in stores.yml, under local
aliases. The nearer library wins a skill name: this library first, then
each declared library in declaration order. A skill declares the skills
it needs in a requires: frontmatter key, and an entry can name another
library with alias:name. Read almanac docs composition for the
model.
Almanac vendors skills into the library from three kinds of source:
github:owner/repo: a GitHub repository, pinned to a commit and a content hash.git:<url>: any git server over https, pinned the same way.dev:<path>: a local snapshot of a skill you develop alongside.
How agents use it
Print a markdown index and inject it into agent context at session start:
almanac index --md --max-bytes 4096
The agent then loads one skill with almanac show <name>, or it reads
the SKILL.md file directly. A context-lifecycle tool such as
gaff can inject the index into a
session on a cadence.
SKILL.md format
Each skill lives in its own directory with a SKILL.md entry point:
my-skill/
├── SKILL.md # Required. Instructions with YAML frontmatter.
└── ... # Supporting files. The agent reads them on demand.The agentskills.io spec requires name and description in the
frontmatter. The name uses lowercase letters, digits, and hyphens, it
matches the directory name, and it is 64 characters or shorter. Almanac
uses the directory name when name is absent.