cli-for-agent
Design or review CLIs so coding agents can run them reliably: non-interactive flags first, layered --help with real copy-pasteable examples, stdin/pipeline support, fail-fast errors that include a correct invocation, idempotency, --dry-run/--yes for destructive actions, and machine-useful success output. Use when building a CLI, adding commands or subcommands, writing --help text, or when asked for an "agent-friendly CLI". Not for GUIs, TUIs, or library APIs (no CLI surface to design).
- License 许可
- MIT
- 最近更新
- 2026-11-13
- Stars
- ★ 12
- Forks
- 0
01 前言 Front Matter
- name
- cli-for-agent
- version
- 1.0.0
- triggers
- [ "agent-friendly cli", "cli for agents", "build a cli", "add a subcommand", "write --help" ]
- description
- Design or review CLIs so coding agents can run them reliably: non-interactive flags first, layered --help with real copy-pasteable examples, stdin/pipeline support, fail-fast errors that include a correct invocation, idempotency, --dry-run/--yes for destructive actions, and machine-useful success output. Use when building a CLI, adding commands or subcommands, writing --help text, or when asked for an "agent-friendly CLI". Not for GUIs, TUIs, or library APIs (no CLI surface to design).
- allowed-tools
- [ "Bash", "Read", "Write", "Edit", "Grep", "Glob" ]
- metadata.upstream
- https://github.com/cursor/plugins (cli-for-agent/skills/cli-for-agents, MIT)
03 SKILL.md 正文
/cli-for-agent
Human-oriented CLIs block agents: interactive prompts, huge upfront docs, and help text without copy-pasteable examples. Prefer patterns that work headlessly and compose in pipelines.
Non-interactive first
- Every input should be expressible as a flag or flag value. Do not require arrow keys, menus, or timed prompts.
- If flags are missing, then fall back to interactive mode — not the other way around.
Bad: mycli deploy → ? Which environment? (use arrow keys)
Good: mycli deploy --env staging
Discoverability without dumping context
- Agents discover subcommands incrementally:
mycli, thenmycli deploy --help. Do not print the entire manual on every run. - Let each subcommand own its documentation so unused commands stay out of context.
--help that works
- Every subcommand has
--help. - Every
--helpincludes Examples with real invocations. Examples do more than prose for pattern-matching.
Options:
--env Target environment (staging, production)
--tag Image tag (default: latest)
--force Skip confirmation
Examples:
mycli deploy --env staging
mycli deploy --env production --tag v1.2.3
mycli deploy --env staging --force
stdin, flags, and pipelines
- Accept stdin where it makes sense (e.g.
cat config.json | mycli config import --stdin). - Avoid odd positional ordering and avoid falling back to interactive prompts for missing values.
- Support chaining:
mycli deploy --env staging --tag $(mycli build --output tag-only).
Fail fast with actionable errors
- On missing required flags: exit immediately with a clear message and a correct example invocation, not a hang.
Error: No image tag specified.
mycli deploy --env staging --tag <image-tag>
Available tags: mycli build list --output tags
Idempotency
- Agents retry often. The same successful command run twice should be safe (no-op or explicit "already done"), not duplicate side effects.
Destructive actions
- Add
--dry-run(or equivalent) so agents can preview plans before committing. - Offer
--yes/--forceto skip confirmations while keeping the safe default for humans.
Predictable structure
- Use a consistent pattern everywhere, e.g.
resource+verb: ifmycli service listexists,mycli deploy listandmycli config listshould follow the same shape.
Success output
- On success, return machine-useful data: IDs, URLs, durations. Plain text is fine; avoid relying on decorative output alone.
deployed v1.2.3 to staging
url: https://staging.myapp.com
deploy_id: dep_abc123
duration: 34s
When reviewing an existing CLI
- Check: non-interactive path, layered help, examples on
--help, stdin/pipeline story, error messages with invocations, idempotency, dry-run, confirmation bypass flags, consistent command structure, structured success output.
Adapted from cursor/plugins
cli-for-agent/skills/cli-for-agents/SKILL.md (MIT, © Cursor). Vendored per
the superskills imported-skills rule; changes here do not track upstream.
04 同仓库更多 Skills
youtube
Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube. Also use when user wants to transcribe or get captions/subtitles from a YouTube video.
write-plan
Use when you have a spec or requirements for a multi-step task, before touching code. Produces an engineering plan complete with TDD tasks, DRY/SOLID/YAGNI principles, a required Test Plan & Verification section, and a coverage target — then auto-runs /plan-eng-review as an independent double-check before execution.
worktrees
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
web-perf
Analyzes web performance using Chrome DevTools MCP. Measures Core Web Vitals (LCP, INP, CLS) and supplementary metrics (FCP, TBT, Speed Index), identifies render-blocking resources, network dependency chains, layout shifts, caching issues, and accessibility gaps. Use when asked to audit, profile, debug, or optimize page load performance, Lighthouse scores, or site speed. Biases towards retrieval from current documentation over pre-trained knowledge.
verify
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
validate-idea
Validate a business idea using the minimalist entrepreneur framework. Use when someone has a business idea and wants to test if it's worth pursuing before building anything.