| name | cc-run-cli-tool-example |
| description | Example file for the Run app skill showing how to document building, invoking, and testing a CLI tool |
Example: CLI tool
CLIs are the simplest case — there's usually no background process to
manage, no ports, no lifecycle. The skill focuses on installation,
representative invocations, and testing.
What matters
- How to get the binary on
PATH. Installed globally? Run via
npx/uv run? Built to ./target/release/foo? Be explicit.
- Two or three example invocations that cover the main use cases.
Include expected output so a reader can tell it worked.
- Exit codes if they're meaningful (e.g. linter returns 1 on findings).
- Stdin behavior if the tool reads from stdin.
Example snippet
name: run-mytool
description: Build, install, and run mytool. Use when asked to run mytool, test it, or verify it's installed correctly.
Setup
pip install -e .
This puts mytool on PATH. Verify:
mytool --version
Run
Process a single file:
mytool process input.json
Read from stdin, write to stdout:
cat input.json | mytool process -
Lint a directory (exits non-zero on problems):
mytool lint ./src
echo $?
Test
pytest
Keep it short
A CLI's run skill can be very compact. Don't pad it with every flag —
the --help output covers that. Just show enough that an agent can
(a) build it, (b) confirm it works, (c) run the tests.