Skip to content
skillterm ★ GitHub

About

A thin orchestrator over a thick agent runtime.

skillterm is small on purpose. The hard parts — web search, web fetch, bash, multi-step reasoning, error recovery — are not in skillterm. They are in Claude Code (or Codex), the agent runtime skillterm invokes. Everything skillterm ships is the orchestration around that.

What skillterm is

skillterm is an MIT-licensed Rust CLI, distributed on crates.io as skillterm, with packaging directories in the repository for Homebrew, npm, and PyPI. It exposes the skillterm binary and is organised internally as a workspace of crates: skillterm-cli, skillterm-core, skillterm-agent, skillterm-shell, and skillterm-registry.

Functionally it ships four things:

Design rationale

The architecture choice the README is loudest about: use an agent runtime, not a raw LLM API. The reason matters. A raw API call returns text. To turn that text into useful skill generation, the integrator has to write web search, web fetch, document parsing, man page extraction, file I/O, multi-step retry, and error recovery code themselves. Every one of those is non-trivial; every one of those is already in Claude Code.

The trade-off skillterm accepts: a hard dependency on a separate agent binary on the PATH (claude or codex). In return it gets web search, web fetch, bash, and file I/O without writing any of it. The product surface that emerges is small — a few orchestration subcommands and two bootstrap skills — because the agent runtime is doing most of the work.

The second choice: SKILL.md as the durable artefact. Generation is expensive and slow (60–300 seconds per skill according to the docs, plus model cost). Tab completion has to be cheap and fast. The two are decoupled by writing a SKILL.md at generation time and reading it at completion time. The file format is Claude-compatible on purpose, so the same artefact that drives skillterm complete can be loaded into any Claude agent as context. The skill is portable.

Why "intelligent CLI assistance" is a useful frame

The product is not "generate a one-shot command from natural language" — that is what shell-gpt and mods do, and they do it well. skillterm targets the layer above: a persistent, per-tool body of structured knowledge that drives completion every time you use the tool. Generate a skill once for stripe; from then on, every stripe <TAB> in any shell has Stripe-specific context behind it.

The README is also direct about the dual audience: skills are written for agents first and humans second. The Vision document is explicit: skills are "tool documentation optimized for AI agent consumption". The Claude-compatible format means an agent can load the same file you just generated. That dual use is the point.

What skillterm explicitly is not

What is in the repository today

The repo is a Cargo workspace plus a docs tree. The crates are listed above. The bootstrap skills live in skills/skill-creator/ and skills/saas-detector/. Documentation is organised into getting-started/, concepts/, reference/, architecture/, guides/, and contributing/, with a VISION.md at the root of the docs tree. Packaging metadata for Homebrew, npm, and PyPI is under packages/.

Configuration lives at ~/.skillterm/config.toml. The [agent] block selects the runtime; [agent.claude-code] and [agent.codex] set the binary path, model, and timeout. [agent.permissions] gates web search, web fetch, file I/O, and bash. [shell] controls auto-complete behaviour. [registry] picks sources and auto-sync. Environment variables (ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY, GITHUB_TOKEN, plus SKILLTERM_* overrides) round out the configuration surface.

What it is part of

skillterm is a neul-labs project. Project documentation lives at docs.neullabs.com/skillterm/ — a path-based docs host that aggregates the docs of every neullabs project on one subdomain.

How to engage

Install with cargo install skillterm and one of npm install -g @anthropic-ai/claude-code or npm install -g @openai/codex for the agent runtime. Source is at github.com/neul-labs/skillterm under the MIT license. The most useful entry-point for a first contribution is the skills/ directory — improving the two bootstrap skills is how you improve every skill generation everyone runs.