Skip to content

Guide · Agent skill

How to use the create-cli agent skill to design a CLI

Updated · written with AI from the project's own documentation and checked against our catalogue data

The create-cli skill is an agent skill that makes an AI agent design a command-line tool against a written set of CLI design guidelines, rather than improvising the interface. It is for developers planning a new CLI, teams that want consistent flags, help text and JSON output, and anyone reviewing an existing CLI against common conventions. By the end of this guide you will know how to install the skill, how to ask for it in plain language, and what kind of spec to expect back.

CLI Design Guidesteipete/agent-scripts · MIT

Quick start

  1. 1Download the ZIP. Download the create-cli skill as a ZIP from this page.
  2. 2Unzip into a skills folder. Unzip it into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder.
  3. 3Or upload it in the Claude apps. Open Settings, go to Capabilities, then Skills, and upload the skill.
  4. 4Describe your CLI. Ask the agent in plain language to design a command-line tool, stating its purpose and who will use it.
  5. 5Answer the clarifying questions. Reply briefly to the questions on output, interactivity and config, or let the agent use best-guess defaults.
  6. 6Review the spec. Check the command tree, flags, exit codes and safety rules before anyone implements the tool.

What the create-cli skill makes the agent do

When you ask the agent to design a command-line tool, the skill tells it to read a reference file of CLI guidelines and use it as the default rubric. The guidelines cover arguments, flags, help, output, errors, configuration and dry-run behaviour. The skill itself is about interface design: syntax and behaviour, kept human-first and script-friendly.

The skill stays language-agnostic and does not write the implementation. Its output is a compact spec you could hand to whoever builds the tool.

  • Asks a few clarifying questions, such as the command's purpose, whether the primary user is humans or scripts, and whether prompts are allowed.
  • Produces a command tree and USAGE synopsis, an args and flags table, and subcommand semantics.
  • Defines output rules (stdout vs stderr, --json, --plain, --quiet, --verbose), an error and exit code map, and config precedence.
  • Covers safety rules such as --dry-run, confirmations, --force and --no-input.

Install the create-cli skill

Download the skill as a ZIP from this page and unzip it. Agent skills are folders, so the unzipped folder should contain SKILL.md and a references folder with cli-guidelines.md. Put the folder in one of these locations:

For a personal install across projects, place it in ~/.claude/skills/. For a single project, place it in that project's .claude/skills/ folder. Alternatively, in the Claude apps, open Settings, go to Capabilities, and upload the skill under Skills.

  • Personal: ~/.claude/skills/
  • Project only: .claude/skills/ inside your project
  • Claude apps: Settings → Capabilities → Skills, then upload

How to trigger the skill with natural requests

You do not need a special command. Describe the tool you want to design and say what you need, and the agent should pick up the skill from its description, which covers CLI UX and spec work for args, flags, help, output, errors, config and dry-run.

If you are unsure about some details, say so. The skill tells the agent to ask only the minimum questions needed and then proceed with best-guess defaults.

  • "Design the CLI for a tool that backs up my project folders. Keep it script-friendly."
  • "Write a flag and exit-code spec for a deploy command that has a dry-run mode."
  • "Review this existing CLI's help text and error handling against common conventions."

Examples of what you get back

For a new tool, the skill asks you to supply or confirm a command name, its purpose, its primary user, input and output contracts, interactivity, config model and platform. The resulting spec follows a skeleton with name, one-liner, USAGE, subcommands, global flags, I/O contract, exit codes, env and config, and examples.

The default conventions the skill applies include: -h/--help shows help and ignores other args; --version prints to stdout; primary data goes to stdout and errors go to stderr; prompts appear only when stdin is a TTY; destructive operations need confirmation or --force in non-interactive use; and NO_COLOR and TERM=dumb are respected with a --no-color option.

mycmd [global flags] <subcommand> [args]

What the skill needs and what it runs

The listing states no required tools or dependencies. The skill does not run scripts and does not use the network. The guidelines file points to the full upstream guide at clig.dev and to its public repository for proposing changes, but those are references for reading and contributing, not something the skill fetches while it works.

Because the skill only shapes a written spec, the main safety consideration is the spec itself: review it before implementing, especially the destructive-operation and config rules.

  • Requires: nothing listed
  • Runs scripts: no
  • Uses network: no
  • Never pass secrets through flags; the skill's clarify step asks where secrets come from for this reason.

Tips for better results

Give the agent the real constraints up front: platforms, whether the tool is used in pipelines, and whether it will run unattended. The clarifying questions are faster to answer when you already know these.

If you only need part of the spec, say so. The template tells the agent to drop anything irrelevant, so asking for just the flags table or just the exit codes is a reasonable request.

  • State whether the tool will be used by humans, scripts, or both.
  • Say if you want JSON output, and whether prompts must be disabled in CI.
  • Ask for a review of an existing CLI if you already have one; the skill can assess it against the same rubric.

What people use it for

  • Planning a new command-line tool with a consistent set of commands, flags and help text before writing any code.
  • Standardising JSON output, quiet and verbose flags and error handling across several internal CLIs.
  • Reviewing an existing CLI's help, errors and config precedence against common conventions.
  • Adding a dry-run and confirmation design to a tool that deletes or changes data.

Frequently asked questions

How do I install the create-cli skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder. In the Claude apps you can instead upload it under Settings, then Capabilities, then Skills.

Does the create-cli skill require anything else to run?

The listing states no requirements. The skill does not run scripts and does not use the network, so it only shapes the agent's written output.

Is the create-cli skill free?

The source lists the skill under the MIT licence. It does not list pricing, so check the directory page for any cost details beyond the licence.

Will the skill write the code for my CLI?

No. The skill deliberately stays at the design level and produces a spec you can implement, so it will not write the implementation.

Who should not use this skill?

Non-technical users with no need for a terminal interface, since the output is a developer-oriented spec. People who want actual code for a CLI should use something else for the implementation.

Why does the agent ask questions before designing?

The skill asks a few key questions, such as who uses the tool, how input and output work, and whether prompts are allowed, so the spec fits your needs. If you are unsure, it proceeds with best-guess defaults.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use create-cli if you are planning a command-line tool or reviewing one and want a consistent, guideline-based interface spec with clear flags, output and exit-code rules. Skip it if you need working code, or if you have no use for a developer-facing terminal interface.

Download the skill