Wilcox Development Solutions Blog

Supporting Skills in the LLM CLI

November 05, 2026

Using a thing is different from understanding how it works. Towards that end I’ve been learning building blocks of AI. I’ve asked questions like how does AI chat work, implemented MCP servers, understanding how skills and AI tools work. In some cases this extends to building up my own AI Harness (in Smalltalk, if you must ask).

Sometimes this comes out in tools I use myself: the org mode based LLM ‘starter’ documents I created - based on ideas set out in html effectiveness. Or a markdown document annotation tool with built in AI support which I use every week.

My, current, three interests

Right now I have three interests:

  1. Building programs that incorporate a prompt, where the AI is a piece but not the whole thing
  2. Better use of local models, to supplement frontier models
  3. … including bringing up local models to the abilities seen in frontier (and expensive!) harnesses

Of course, to do the last you need experience in building for and extending those same frontier models and harnesses, before you can bring advances downstream.

Announcing: llm-cli-skills

The LLM CLI is great for creating command line LLM based workflows. I have a shell script that removes extra characters from my MacOS clipboard using local models, for example.

llm is great for prompts and ok for ad-hoc tools; but these require Python code.

In the broader world, Cursor and Claude and other harnesses support Skills: markdown files an LLM loads on demand when the need arises.

(The skills format is an open standard, documented at AgentSkills.io)

I want to bring that skill loading to the llm tool.

Announcing: llm-cli-skills.

I want similar abilities no matter what harness I’m using: a frontier model harness or calling a model - or subagent - from a shell script. I don’t want to lose abilities if I’m going from one to the other.

And, bonus tool: spawning LLM sub-agents.

Since llm-cli-skills use llm ecosystem plugins: pull in Gemini, Ollama, Bedrock, OpenRouter, and others.

AND since llm, out of the box, is very limited with what kind of tools it runs, llm-cli-skills also gives you a way to create custom tools.

Example usage

Today I wrote a shell script that greps files in a folder, then runs a prompt - referencing a skill - for each file.

In fact, I went step further and wrote a custom tool so the LLM can run the grep instead of my shell script.

Since these skills are generic they can be used not just in my shell script workflow, but by Cursor, or Claude, or whatever, not just my shell script.

Conclusion

Go download llm-cli-skills on Github, where there’s plenty of usage examples!


Tagged with:

Written by Ryan Wilcox Chief Developer, Wilcox Development Solutions... and other things