Last weekend I wanted to know which TV series were eating the most storage on my media server. Simple question.
My AI assistant (running on OpenClaw) tried to answer it. It took multiple approaches, five attempts, and several minutes of fumbling before it found the data. Top Gear at 494 GB. Pokémon at 362 GB. South Park at 344 GB. The answer was there, but getting to it was painful.
The thing is, I'd already built a tool that does this in one command:
tsarr sonarr series list --json
Tsarr is a type-safe CLI I built for managing Radarr, Sonarr, and the rest of the *arr stack. My AI assistant just didn't know it existed.
The Problem
AI assistants are great generalists but terrible specialists. They'll try raw API calls, shell scripts, whatever they can think of. Anything except the purpose-built tool sitting right there. They don't read your README. They don't know your CLI flags. They improvise, and improvisation with infrastructure is how things break.
The Solution: AgentSkills
ClawHub is a skill registry for OpenClaw agents. A "skill" is a SKILL.md file that teaches an AI how to use a specific tool: what commands exist, when to use them, safety rules, and common workflows.
I wrote one for Tsarr. It's structured like this:
skill/
├── SKILL.md # Entry point: routing + safety rules
└── references/
├── setup.md # Installation, config, connectivity
├── common-workflows.md # Health checks, search, add, queue, history
└── service-cheatsheet.md # Every command mapped per service
The SKILL.md tells the agent:
-
Start with
tsarr doctorif anything seems off -
Use
--jsonwhen extracting data - Inspect before mutating: always fetch before delete
- Ask which service if the user just says "library" without specifying Radarr or Sonarr
The references give it a cheatsheet of every command pattern so it doesn't have to guess.
The Result
Same question, "what series are the largest?", now gets answered instantly:
tsarr sonarr series list --json
# sorted, filtered, exact byte counts, all metadata
No fumbling. No five attempts. The AI knows the tool because I taught it.
Installing the skill on any OpenClaw instance:
npx clawhub install tsarr
One command. The agent immediately knows how to manage your entire *arr stack.
What It Can Do Now
With the skill installed, I just ask in plain English and the agent handles it:
"What's eating my storage?"
tsarr sonarr series list --json # sorted by size, instant answer
tsarr radarr movie list --json # same for movies
"Are there any download issues?"
tsarr sonarr queue list # stuck downloads, warnings, errors
tsarr radarr queue list # same for movies
"Check if everything is healthy"
tsarr doctor # tests all configured services at once
"Find me that new show everyone's talking about"
tsarr sonarr series search "Shogun"
tsarr sonarr series add <id> --quality-profile HD --root-folder /media/shows
"Are subtitles missing for anything?"
tsarr bazarr movie list --json # check subtitle status across your library
"What got added recently?"
tsarr sonarr history list # recent grabs, imports, upgrades
tsarr radarr history list
Tsarr supports six services: Radarr (movies), Sonarr (TV), Lidarr (music), Readarr (books), Prowlarr (indexers), and Bazarr (subtitles). Every service follows the same CLI pattern, so the agent learns one and knows them all.
The skill doesn't just list commands. It teaches the agent when to use each one, what flags matter, and when to ask clarifying questions before doing anything destructive.
Why This Matters
Every homelab runner, every DevOps engineer, every developer has tools their AI doesn't know about. Custom CLIs, internal scripts, niche utilities. The knowledge gap between "this tool exists" and "the AI can use it effectively" is just a SKILL.md file.
If you've built a CLI that you use regularly, consider writing a skill for it. Your future self (and your AI) will thank you.
Tsarr: github.com/robbeverhelst/Tsarr
ClawHub skill: clawhub.ai/robbeverhelst/tsarr
OpenClaw: openclaw.ai
Top comments (0)