Overview
Skills, commands and subagents for every AI CLI, on demand.
An agent loads every skill and command it finds when a session starts, and each one costs context whether the task needs it or not. atril keeps them in a store instead, finds the ones a task needs, and hands back the files to read. Claude Code, Codex, OpenCode and any CLI that reads Markdown can use the same store.
atril is a module of the Karajan family. It imports nothing from Karajan: Karajan calls it exactly as any other project would.
Install
Section titled “Install”npm install -g @karajan-family/atrilatril --versionNode.js 22.12 or later.
The store
Section titled “The store”A store is a folder with one directory per kind, the layout the CLIs already use:
.atril/ skills/<name>/SKILL.md a skill: a folder, so it can carry references commands/<name>.md a command agents/<name>.md a subagent atril.json the store's configEvery artifact is Markdown with frontmatter, and declares at least name, description and kind:
---name: reviewdescription: Review a pull request for correctness and riskkind: command---Read the diff, then...The root is .atril/ by default; --root <dir> or ATRIL_ROOT change it (Karajan uses .karajan/). A user-level store in ~/.atril (or ATRIL_USER_ROOT) is read too; the project’s artifact wins a clash.
Karajan Code™ · AGPL-3.0