From Working Harness to Discoverable Tool

A tested CLI is not yet a usable capability if an agent cannot find it, learn its command surface, or install it without relying on the developer's working directory. This chapter examines how CLI-Anything connects a harness to SKILL.md, package entry points, plugin marketplaces, and CLI-Hub. The reader should be able to separate documentation that teaches an agent from packaging that launches a command, and both from the target software dependency that still performs the real work.

--help is local; a skill describes a capability

Command help answers a narrow, immediate question: what can this invocation accept, and what will this command do? That is valuable at the moment of execution, but an agent often needs a broader description before it knows which command to invoke. It needs to recognize that a tool is relevant to a task, understand its prerequisites, see how command groups fit together, and learn the difference between human-readable and machine-readable output.

CLI-Anything addresses this broader problem with SKILL.md. The generated file uses YAML frontmatter for discovery and a Markdown body for installation requirements, command groups, examples, output guidance, and agent-specific practices. It can explain that a CLI is for a particular software domain, that the target application must be installed, that --json is the parseable mode, and that certain paths or preview artifacts need to be read after a command. In other words, the skill is an agent-facing capability description; it is not just a longer version of a single command's help page.

The generator extracts this description from the harness rather than asking someone to maintain every command list by hand. It reads the package's README, setup metadata, and Click command structure to identify a software name, version, command groups, examples, and system-package hints. That approach creates a useful connection between implementation and documentation: changes in the command surface can feed a new generated skill. It does not eliminate documentation drift, because a generated file can become stale after the harness changes, but it makes the intended source of the description explicit.

The distinction is easiest to see in practice. A help page may tell an agent that preview capture exists. A skill can explain what the preview produces, where its artifacts are returned, which output mode is appropriate, and whether the command needs the real application installed. Help describes an entry point. A skill describes when and how the capability should be used. Both are needed because discovery and execution happen at different scales.

Why two copies of a skill exist

CLI-Anything keeps a canonical skill under the repository's root skills/ tree and also writes a compatibility copy inside the installed harness package. The two locations serve different runtime situations. The canonical copy makes the monorepo discoverable through the broader skills ecosystem.