Does your skill call a bunch of scripts? Consider writing a CLI.
It’s tempting to say:
Hey Claude, make a skill to get time tracking reports from Toggl!
That’s the right instinct, but you’ll end up with a messy skill that mostly just invokes a bunch of shell scripts.
Usually, these should be abstracted into a CLI. Your skill should just be a thin wrapper: how to call the CLI, plus any non-deterministic steps that need LLM magic. If you have no such steps, just mention the CLI in your global context.
Some benefits of CLIs:
- Easier to test
- Faster
- Portable
I store my CLIs in ~/.agents/clis and symlink them to ~/.local/bin.
There are lots of great official and unofficial CLIs out there. Search before you make your own!