create-cli — скилл для Claude Code: что делает и как установить
Помогает спроектировать интерфейс консольной утилиты до написания кода: аргументы, флаги, коды возврата и правила вывода по стандартам clig.dev.
npx skills add steipete/agent-scripts --skill create-cli -a claude-codeЧто делает create-cli
Скилл превращает Claude Code в архитектора CLI-интерфейсов. Вместо генерации сырого кода утилиты агент сначала задаёт короткие уточняющие вопросы: кто основной пользователь, как передавать входные данные, нужны ли флаги вроде --json или интерактивные подтверждения. По умолчанию используются рекомендации гайдлайна clig.dev.
На выходе получается компактная спецификация. В неё входят дерево команд, таблица аргументов и флагов, правила разделения stdout и stderr, обработка кодов возврата (0, 1, 2) и порядок приоритета настроек от флагов до системных файлов. Также спецификация включает от 5 до 10 примеров вызова утилиты.
Скилл намеренно не лезет в код парсеров, пока вы явно об этом не попросите. Это держит фокус на UX интерфейса и защищает от преждевременной привязки к конкретному языку программирования.
Какие задачи решает
- Спроектировать синтаксис флагов и подкоманд новой консольной утилиты
- Разделить потоки вывода данных и ошибок между stdout и stderr
- Составить схему кодов завершения и обработку опасных операций
- Определить приоритет чтения настроек из флагов, окружения и файлов конфигурации
Примеры запросов агенту
- Помоги спроектировать CLI-утилиту для деплоя контейнеров, нужны подкоманды init и deploy
- Составь спецификацию флагов и параметров для консольного конвертера изображений
- Опиши поведение консольной утилиты при запуске в скриптах: вывод в JSON, коды ошибок и флаг --no-input
Как установить create-cli
1Через Skills CLI (Vercel)
npx skills add steipete/agent-scripts --skill create-cli -a claude-code2Вручную: положить файлы
~/.claude/skills/create-cli/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/create-cli/
1Через Skills CLI (Vercel)
npx skills add steipete/agent-scripts --skill create-cli -a codex2Вручную: положить файлы
.agents/skills/create-cli/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add steipete/agent-scripts --skill create-cli -a cursor2Вручную: положить файлы
.cursor/skills/create-cli/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install steipete/agent-scripts create-cli2Вручную: положить файлы
.github/skills/create-cli/SKILL.md1Через Skills CLI (Vercel)
npx skills add steipete/agent-scripts --skill create-cli -a gemini-cli2Командой платформы
gemini skills install https://github.com/steipete/agent-scripts --path skills/create-cliВручную: положить файлы
.devin/skills/create-cli/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add steipete/agent-scripts --skill create-cli -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о create-cli
Как установить create-cli в Claude Code?
Выполните команду npx skills add steipete/agent-scripts --skill create-cli -a claude-code. Также можно вручную поместить файл по пути ~/.claude/skills/create-cli/SKILL.md.
Что делает скилл create-cli?
Он формирует спецификацию интерфейса консольного приложения: синтаксис аргументов, реакцию на --json и --dry-run, коды возврата и правила интерактивности.
Генерирует ли скилл готовый код парсинга аргументов?
По умолчанию нет. Скилл остаётся независимым от языка и рекомендует библиотеки только тогда, когда пользователь прямо об этом попросит.
Исходный текст
SKILL.md · MIT
--- name: create-cli description: "CLI UX/spec: args, flags, help, output, errors, config, dry-run." --- # Create CLI Design CLI surface area (syntax + behavior), human-first, script-friendly. ## Do This First - Read `agent-scripts/skills/create-cli/references/cli-guidelines.md` and apply it as the default rubric. - Upstream/full guidelines: https://clig.dev/ (propose changes: https://github.com/cli-guidelines/cli-guidelines) - Ask only the minimum clarifying questions needed to lock the interface. ## Clarify (fast) Ask, then proceed with best-guess defaults if user is unsure: - Command name + one-sentence purpose. - Primary user: humans, scripts, or both. - Input sources: args vs stdin; files vs URLs; secrets (never via flags). - Output contract: human text, `--json`, `--plain`, exit codes. - Interactivity: prompts allowed? need `--no-input`? confirmations for destructive ops? - Config model: flags/env/config-file; precedence; XDG vs repo-local. - Platform/runtime constraints: macOS/Linux/Windows; single binary vs runtime. ## Deliverables (what to output) When designing a CLI, produce a compact spec the user can implement: - Command tree + USAGE synopsis. - Args/flags table (types, defaults, required/optional, examples). - Subcommand semantics (what each does; idempotence; state changes). - Output rules: stdout vs stderr; TTY detection; `--json`/`--plain`; `--quiet`/`--verbose`. - Error + exit code map (top failure modes). - Safety rules: `--dry-run`, confirmations, `--force`, `--no-input`. - Config/env rules + precedence (flags > env > project config > user config > system). - Shell completion story (if relevant): install/discoverability; generation command or bundled scripts. - 5–10 example invocations (common flows; include piped/stdin examples). ## Default Conventions (unless user says otherwise) - `-h/--help` always shows help and ignores other args. - `--version` prints version to stdout. - Primary data to stdout; diagnostics/errors to stderr. - Add `--json` for machine output; consider `--plain` for stable line-based text. - Prompts only when stdin is a TTY; `--no-input` disables prompts. - Destructive operations: interactive confirmation + non-interactive requires `--force` or explicit `--confirm=...`. - Respect `NO_COLOR`, `TERM=dumb`; provide `--no-color`. - Handle Ctrl-C: exit fast; bounded cleanup; be crash-only when possible. ## Templates (copy into your answer) ### CLI spec skeleton Fill these sections, drop anything irrelevant: 1. **Name**: `mycmd` 2. **One-liner**: `...` 3. **USAGE**: - `mycmd [global flags] <subcommand> [args]` 4. **Subcommands**: - `mycmd init ...` - `mycmd run ...` 5. **Global flags**: - `-h, --help` - `--version` - `-q, --quiet` / `-v, --verbose` (define exactly) - `--json` / `--plain` (if applicable) 6. **I/O contract**: - stdout: - stderr: 7. **Exit codes**: - `0` success - `1` generic failure - `2` invalid usage (parse/validation) - (add command-specific codes only when actually useful) 8. **Env/config**: - env vars: - config file path + precedence: 9. **Examples**: - … ## Notes - Prefer recommending a parsing library (language-specific) only when asked; otherwise keep this skill language-agnostic. - If the request is “design parameters”, do not drift into implementation.
© steipete · MIT · steipete/agent-scripts