Impeccable
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
Design and review command-line interfaces for usability, automation, safety, accessibility, and long-term compatibility.
$ npx skills add caarlos0/dotfiles --skill cli-design -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install caarlos0/dotfiles cli-design --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/caarlos0/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cli-design .claude/skills/cli-design && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cli-design" agent skill from https://github.com/caarlos0/dotfiles/tree/main/skills/cli-design into .claude/skills/cli-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-design", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/caarlos0/dotfiles/tree/main/skills/cli-designType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add caarlos0/dotfiles --skill cli-design -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install caarlos0/dotfiles cli-design --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/caarlos0/dotfiles.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cli-design .agents/skills/cli-design && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cli-design" agent skill from https://github.com/caarlos0/dotfiles/tree/main/skills/cli-design into .agents/skills/cli-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-design", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add caarlos0/dotfiles --skill cli-design -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install caarlos0/dotfiles cli-design --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/caarlos0/dotfiles.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cli-design .cursor/skills/cli-design && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cli-design" agent skill from https://github.com/caarlos0/dotfiles/tree/main/skills/cli-design into .cursor/skills/cli-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-design", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/caarlos0/dotfiles.git --path skills/cli-design--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add caarlos0/dotfiles --skill cli-design -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install caarlos0/dotfiles cli-design --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/caarlos0/dotfiles.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cli-design .gemini/skills/cli-design && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cli-design" agent skill from https://github.com/caarlos0/dotfiles/tree/main/skills/cli-design into .gemini/skills/cli-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-design", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install caarlos0/dotfiles cli-designInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add caarlos0/dotfiles --skill cli-design -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/caarlos0/dotfiles.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cli-design .github/skills/cli-design && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cli-design" agent skill from https://github.com/caarlos0/dotfiles/tree/main/skills/cli-design into .github/skills/cli-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-design", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add caarlos0/dotfiles --skill cli-design -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install caarlos0/dotfiles cli-design --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/caarlos0/dotfiles.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cli-design .opencode/skills/cli-design && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cli-design" agent skill from https://github.com/caarlos0/dotfiles/tree/main/skills/cli-design into .opencode/skills/cli-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-design", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cli-designDesign and review command-line interfaces for usability, automation, safety, accessibility, and long-term compatibility.
CLI Design is an agent skill from caarlos0/dotfiles. Design and review command-line interfaces for usability, automation, safety, accessibility, and long-term compatibility. Use when adding or changing commands, flags, help, output, prompts, configuration, or exit behavior.
Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering UX design. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 278c761. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
pubs.opengroup.orggnu.orgclig.devgit-scm.comcli.github.comno-color.orgspecifications.freedesktop.orgcheatsheetseries.owasp.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
CLI Design loads about 4.2k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 2,144 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from caarlos0/dotfiles at commit 278c761, republished under its MIT licence (© caarlos0). 2,144 words, ~4,230 tokens.
.claude/skills/cli-design/SKILL.md (or your agent's skills folder).Treat a CLI as both a human interface and a stable automation API. Follow repository instructions and existing command conventions before introducing a new grammar, output format, exit status, or configuration mechanism.
Before implementation, identify separately:
Write representative invocations before choosing a parser or framework:
tool [global-options] <command> [command-options] [operands]Use noun/verb subcommands when they fit the domain, but preserve an established project grammar. Prefer a shallow, regular hierarchy over many special cases.
-- before operands so names beginning with - remain addressable.- as stdin or stdout and document
the exact behavior.Familiar options such as --help, --version, --quiet, --verbose,
--output, --json, --color, --no-input, and --dry-run should retain
their conventional meaning.
-h and --help at every command level unless an established
compatibility contract prevents it.Completion must tolerate incomplete input and must be fast, non-interactive, side-effect-free, and safe when configuration, credentials, or the network are unavailable. Avoid remote completion unless it is explicitly bounded and has a local fallback.
--quiet limited to nonessential messaging. It must not change result
semantics, suppress required errors, or turn failure into success.Human-readable tables and prose may evolve for usability. Do not require scripts to parse them. When automation is expected, provide an explicit stable format such as:
Document machine-output fields, types, nullability, encoding, framing, ordering, and compatibility policy. If ordering is not guaranteed, say so. Human and machine renderers should consume the same application result rather than implementing behavior separately.
Return zero only for documented success. Use a small, stable, documented set of nonzero statuses rather than exposing arbitrary internal errors.
Decide explicitly how the command reports:
Do not let partial success look like full success. Report completed and failed items separately and choose an exit status that allows automation to detect the failure.
Follow established shell conventions where applicable, but do not invent portable meaning for every numeric status. Document the statuses that callers are expected to branch on.
Handle broken pipes as normal pipeline termination when the platform and command semantics permit it. Do not replace useful output with a stack trace because a downstream command stopped reading.
Expected user-facing failures should answer:
Use domain language rather than parser, transport, or stack internals. Include the relevant resource, option, configuration source, or rejected value without revealing secrets.
Represent errors structurally inside the application, with a stable category or code, user message, optional hints, underlying cause, and exit status. Render them only at the process boundary.
Detect stdin, stdout, and stderr independently. They may point to different kinds of destinations.
TTY state may control:
TTY state must not silently change the selected resources, operation, result schema, or other command semantics.
NO_COLOR, TERM=dumb, and an explicit color mode such as
--color=auto|always|never.Use a pager only for long human-readable output, only when appropriate for the output destination, and provide a way to disable it. Do not page structured output.
Every prompt must have a complete unattended equivalent through an option, operand, stdin, configuration, or environment variable.
--no-input or an equivalent control when commands might prompt.Do not make a full-screen or interactive selector the only route to an
operation. Share application logic between interactive and non-interactive
adapters. Use tui-design when the task specifically involves a full-screen
terminal interface.
For risky operations, show the target, scope, count, and consequences before execution or confirmation.
--dry-run for bulk, remote, destructive, or otherwise
hard-to-reverse operations.--force narrow. It may bypass a named confirmation or conflict, but
must not bypass validation, authentication, or authorization.Never accept secrets through ordinary argv when a safer channel is available; process arguments may be visible to other processes, logs, and shell history. Prefer hidden prompts, stdin, restricted files, file descriptors, credential stores, or secret managers.
Invoke subprocesses with argument vectors. Never build a shell command by
interpolating untrusted values, and use -- before untrusted operands when the
target command supports it.
Define and test one precedence order. A strong default, from lowest to highest, is:
built-in defaults
< system configuration
< user configuration
< project or workspace configuration
< environment variables
< command-line optionsAdapt the order when the product has an established contract, but document it.
--help,
--version, and static completion remain reliable.Environment variable names and configuration paths are public interfaces. Changing them requires the same compatibility care as changing an option.
Separate command mechanics from application behavior:
Keep networking, filesystem access, prompts, clocks, and process execution out of parser callbacks. Do not terminate the process from reusable application code.
Use one composition root. Inject only dependencies needed by the operation. This keeps domain behavior reusable by commands, tests, background work, and interactive interfaces.
Before changing an existing CLI, inspect all public surfaces:
Prefer additive changes. A usability improvement is still a breaking change if scripts depend on the old behavior.
For deprecations:
Version structured output when consumers cannot safely absorb an incompatible schema change. Do not use a product version bump as a substitute for a migration path when compatibility can reasonably be preserved.
Use the lowest test layer that proves each behavior, plus focused full-process tests for the command boundary.
Test at least the relevant cases:
--;-;TERM=dumb, and NO_COLOR behavior;--no-input, closed stdin, and Ctrl-C;Normalize paths, timestamps, terminal width, and colors in tests only when they
are not part of the contract. Use writing-tests for determinism and process
testing guidance, and change-impact-auditor when changing defaults,
configuration, protocols, or shared output models.
Flag these as defects unless the project documents a deliberate exception:
These principles are based on established standards and mature CLI practice:
© caarlos0, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/cli-design of caarlos0/dotfiles.
Open the folder on GitHubat commit 278c761
CLI Design next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| CLI Design this skillcaarlos0/dotfiles | 220 | — | ~4.2k | Automated safety check: Pass | MIT | |
| Impeccablebestofjs/bestofjs | 3.1k | 27 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Interface Design for Dashboards and Appsholaboss-ai/holaOS | 11k | 3 repos | ~6k | Automated safety check: Pass | MIT | |
| Animategrowupanand/ConvoForm | 101 | 6 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Migrate Content Iadocker/docs | 4.7k | — | ~5.1k | Automated safety check: Pass | Apache-2.0 | |
| UX WalkthroughXiaoMi/hiui | 877 | — | ~1.3k | Automated safety check: Pass | MIT |
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
holaboss-ai/holaOS
Pushes an agent past generic defaults when designing dashboards, admin panels, SaaS apps and tools, with attention to structure, type, navigation and how data is shown.
growupanand/ConvoForm
Review a feature and enhance it with purposeful animations, micro-interactions, and motion effects that improve usability and delight.
docker/docs
Handle Hugo docs information-architecture moves: discover old vs new URLs, add front matter aliases (Phase 1), update in-repo links (Phase 2), interactive List 2 resolution and fragment validation…
XiaoMi/hiui
体验走查 skill。适用于代码库、URL、截图三种输入,输出结构化体验问题报告,并同步生成本地 docx 报告。触发词:体验走查、UX review、交互走查、界面审查、体验问题。
rome-os/rome
Audit a design system's color palette against measurable color-science disciplines — WCAG/APCA contrast of declared token pairs, perceptual (OKLCH) ramp uniformity, color-blindness safety of…
caarlos0/dotfiles
Review and merge open dependency pull requests from Dependabot, Renovate and similar bots across the goreleaser organization and the caarlos0 user.
caarlos0/dotfiles
Use GitHub CLI efficiently for pull requests, CI checks, workflow runs, logs, and merge status.
caarlos0/dotfiles
Design terminal user interfaces and interactive CLIs that stay usable, accessible, and scriptable.
caarlos0/dotfiles
Design and review dashboards that are informative, honest, accessible, and visually polished, independent of any tool.
caarlos0/dotfiles
Author and revise clear GitHub internal documentation, including design docs, proposals, decision records, runbooks, status updates, and handoffs.
caarlos0/dotfiles
Profile and optimize Go CPU, allocations, GC, concurrency, and I/O with benchmarks and pprof.
Categories
Design and review command-line interfaces for usability, automation, safety, accessibility, and long-term compatibility. CLI Design is an agent skill from caarlos0/dotfiles. Design and review command-line interfaces for usability, automation, safety, accessibility, and long-term compatibility.
CLI Design fits situations like: changing commands; tasks that involve UX design.
Run `npx skills add caarlos0/dotfiles --skill cli-design -a claude-code`. Or copy the skill folder (skills/cli-design in caarlos0/dotfiles) into .claude/skills/cli-design in your project. Claude Code loads it when a task matches its description.
Run `npx skills add caarlos0/dotfiles --skill cli-design -a codex`. Or copy the skill folder (skills/cli-design in caarlos0/dotfiles) into .agents/skills/cli-design in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add caarlos0/dotfiles --skill cli-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cli-design, .gemini/skills/cli-design, .github/skills/cli-design and .opencode/skills/cli-design in your project.
SKILL.md names no scripts, command-line tools or credentials: CLI Design is instructions for the agent only.
SKILL.md names 8 domains. As links in the text: pubs.opengroup.org, gnu.org, clig.dev, git-scm.com, cli.github.com, no-color.org, specifications.freedesktop.org and cheatsheetseries.owasp.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CLI Design is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with CLI Design: Impeccable (bestofjs/bestofjs, 3.1k stars), Interface Design for Dashboards and Apps (holaboss-ai/holaOS, 11k stars), Animate (growupanand/ConvoForm, 101 stars) and Migrate Content Ia (docker/docs, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
caarlos0 (a GitHub user) maintains it in caarlos0/dotfiles, which has 220 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.
Source: caarlos0/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.