Skip to content

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.

Terminal window
npm install -g @karajan-family/atril
atril --version

Node.js 22.12 or later.

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 config

Every artifact is Markdown with frontmatter, and declares at least name, description and kind:

---
name: review
description: Review a pull request for correctness and risk
kind: 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