Agent Skills
› sediman-agent/OpenSkynet
› cli-for-agents
cli-for-agents
GitHub设计或审查面向Agent的CLI,确保非交互、分层帮助含示例、支持管道、错误可操作、幂等且结构预测。用于构建CLI、添加命令或优化自动化友好接口。
Trigger Scenarios
用户要求设计或审查CLI工具
需要为命令行添加子命令或帮助文档
提及Agent、终端自动化或无头环境下的CLI交互
Install
npx skills add sediman-agent/OpenSkynet --skill cli-for-agents -g -y
SKILL.md
Frontmatter
{
"name": "cli-for-agents",
"description": "Designs or reviews CLIs so coding agents can run them reliably: non-interactive flags, layered --help with examples, stdin\/pipelines, fast actionable errors, idempotency, dry-run, and predictable structure. Use when building a CLI, adding commands, writing --help, or when the user mentions agents, terminals, or automation-friendly CLIs."
}
CLI for agents
Human-oriented CLIs often 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.
Version History
- c9d8953 Current 2026-07-05 19:51


