Track multi-session work with dependencies using yatl (Yet Another Task List). Use when work spans multiple sessions, has dependencies, or requires persistent context across compaction cycles. For simple single-session linear tasks, TodoWrite remains appropriate.
A Claude Code skill that teaches Claude how to use yatl effectively for task tracking in multi-session coding workflows.
This is a Claude Code skill - a markdown-based instruction set that teaches Claude AI how to use yatl. It provides the philosophy and patterns of effective yatl usage for persistent task tracking.
Main skill file (SKILL.md):
Reference documentation:
references/CLI_REFERENCE.md - Complete command reference with all flagsreferences/WORKFLOWS.md - Step-by-step workflows with checklistsreferences/BOUNDARIES.md - Detailed decision criteria for yatl vs TodoWriteInstall yatl (Yet Another Task List) CLI - build from source:
cd /path/to/yatl
cargo build --release
# Add target/release/yatl to your PATH
Have Claude Code installed
Initialize yatl in your project:
cd your-project
yatl init
# Clone yatl if you haven't already
git clone https://github.com/brianm/yatl.git
cd yatl
# Create a symlink in your Claude Code skills directory
ln -s "$(pwd)/claude/yatl-tasks" ~/.claude/skills/yatl-tasks
# Copy the skill files
cp -r /path/to/yatl/claude/yatl-tasks ~/.claude/skills/
Add session start and pre-compaction hooks to ~/.claude/settings.json:
{
"hooks": {
"PreCompact": [
{
"matcher": ".tasks",
"hooks": [
{
"type": "command",
"command": "echo '## yatl Task Status' && yatl list --status in-progress && echo '' && yatl ready"
}
]
}
],
"SessionStart": [
{
"matcher": ".tasks",
"hooks": [
{
"type": "command",
"command": "echo '## yatl Task Status' && yatl list --status in-progress && echo '' && yatl ready"
}
]
}
]
}
}
This shows in-progress and ready tasks:
.tasks/ directory exists)Restart Claude Code, then in a new session with a project that has .tasks/, ask:
Do you have the yatl skill installed?
Claude should confirm it has access to the yatl skill and can help with task tracking.
Claude Code automatically loads skills from ~/.claude/skills/. When this skill is installed:
SKILL.md immediatelyOnce installed, Claude will automatically:
.tasks/ exists and hooks configured)You can also explicitly ask Claude to use yatl:
Let's track this work in yatl since it spans multiple sessions
Create a yatl task for this bug we discovered
Show me what's ready to work on
yatl is intentionally simpler than beads:
| yatl | beads |
|------|-------|
| Plain markdown files | SQLite + JSONL database |
| Status = directory location | Status in database |
| Just use git directly | bd sync command |
| yatl new | bd create |
| yatl log (append to file) | bd update --notes |
| yatl start / yatl stop | bd update --status |
| Priority + tags | Types (epic, bug, feature) + priority |
MIT License
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity