coco-research/cli-anything
Wrap any command-line tool into a JSON-emitting agent skill. Use when you want to make a CLI reliably callable and parseable by an AI agent — introspect its --help, define a structured-output (--json) contract and a stable error contract, then generate a SKILL.md wrapper with verified examples. Triggers on "wrap this CLI", "make X agent-usable", "generate a skill for this command", "turn a tool into an agent skill".
npx skills add https://github.com/coco-research/coco --skill cli-anything
<!-- Methodology adapted from HKUDS/CLI-Anything (https://github.com/HKUDS/CLI-Anything) — Apache-2.0. -->
Turn any command-line tool into something an AI agent can call reliably and parse. The output is a thin, well-documented wrapper contract — never a reimplementation of the tool. Use the real tool; document how to drive it.
You have a CLI (your own, or a third-party binary) and you want an agent to invoke it predictably, read structured results, and recover from errors. This skill produces a SKILL.md wrapper that encodes that contract.
Enumerate the real surface before writing anything:
<tool> --help and <tool> <subcommand> --help for each subcommand.--help is thin, read the source or man page. Every claim in the wrapper must trace to observed behavior.--json machine-readable mode for every command an agent will call. Document the exact JSON keys the agent should read (one shape per command).{"error": "...", "code": N} if the tool supports it, otherwise the captured stderr) — never a bare stack trace.Standard structure so an agent can discover and drive the tool:
name, description (include natural trigger phrases).Commands — each command: purpose, exact invocation, args, and the result shape it returns.Examples — 2-4 real invocations with expected output.Errors — the exit-code/error contract from Step 3.Notes — auth, side effects, idempotency, network egress, prerequisites.--json shape parses.skills/coco-cli/SKILL.md is a wrapper produced with this pattern over the @coco-research/coco-cli command — note how it documents the (human-only) output contract honestly rather than inventing a JSON mode the tool lacks.
Take coco-research/cli-anything from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.