cli-skill-design

cli-skill-design is a skill for Claude Code, Codex from openonion/connectonion. It costs 79 tokens per session (2,061 once invoked), scanned A, original, Apache-2.0.

A method for designing command-line tools and the instruction files that tell coding agents how to use them.

In plain words
What is it for?
It helps add or revise command groups, write their SKILL.md instructions, test whether command tips are usable, document all help options, and explain recovery steps for failures.
Why use it?
It reduces guesswork by requiring commands to describe the next action after both successful and failed runs, while keeping the command interface and instructions consistent.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/openonion/connectonion/cli-skill-design
Any agent
npx skills add openonion/connectonion --skill cli-skill-design
Clone the repo
git clone --depth 1 https://github.com/openonion/connectonion

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for cli-skill-design

README.md
[![agentmods](https://agentmods.dev/badge/skills/openonion/connectonion/cli-skill-design.svg)](https://agentmods.dev/skills/openonion/connectonion/cli-skill-design)
Your own site
<a href="https://agentmods.dev/skills/openonion/connectonion/cli-skill-design"><img src="https://agentmods.dev/badge/skills/openonion/connectonion/cli-skill-design.svg" alt="Measured on agentmods" height="20"></a>
Per session 79 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,061 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00079 $0.02061
Opus 5 $0.00039 $0.01030
Sonnet 5 $0.00016 $0.00412
Haiku 4.5 $0.00008 $0.00206

Measured 4d ago against content hash 8502e0f9f86c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

cli-skill-design scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

connectonion/useful_skills/cli-skill-design/SKILL.md · 187 lines

How it starts

The opening of the file, as written. The whole thing — 187 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Designing a CLI skill

A CLI skill is two files that have to agree: the command surface (co <thing> ...) and the SKILL.md that tells an agent how to drive it. Design them together — the agent's whole world is what it types and what comes back.

co-browser is the worked example. Read it before you write anything: its exit-code table, its "read the output, not just the exit code" rule, and its Done checklist are what this methodology generalizes. (Building a skill that drives a website through co browser? That is the sibling skill browser-workflow-skill-builder — DOM, selectors, verification scripts. This one is about the command surface itself.)

Two properties. Each has a test you run and paste the result of — not a principle you assert in the PR.

(a) Tip-tested discoverability

Rule: every command execution — success and failure — ends by naming the next command, spelled out, with the argument shape filled in.

Read one with: co gmail read <#>        ✅ names the command
See the docs for more options            ❌ names nothing

The tip test

A tip is good if an agent that has only that tip makes the right next call. That is testable, so test it:

from connectonion import llm_do

llm_do(
    f"You just ran a shell command. Its full output was:\n\n{out}\n\n"
    "Your goal: read the newest email. Reply with ONE shell command and nothing else.",
    model="co/gemini-3.7-flash",
)

Use a text-only call (llm_do), not co ai. An agent with a shell will run the command it picks — measured: the first attempt at this test executed co gmail read 1 and then co auth google against a real account. You are grading the reply, not the mailbox.

  • Pass — the reply is a command that exists and advances the goal (co gmail read 1).
  • Fail — it invents a name (co gmail open 1), asks for help, or replies with prose.

Rules for the harness, or the result means nothing:

  • Give it the output only. No SKILL.md, no --help, no conversation history — those are exactly the crutches the tip exists to replace.
  • Pin the model so a rerun compares like with like.
  • Run it per command, not once. Score the whole surface in a table and paste it into the PR:

Read the full file on GitHub · 187 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 187 lines · 79 tokens per session scan A 8502e0f9f86c

Subscribe to this mod's changes

cli-skill-design is a skill published in the GitHub repository openonion/connectonion (1,481 stars, last pushed yesterday), licensed Apache-2.0. It adds 79 tokens to every session and 2,061 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

edgeone skill scanner

Scan any agent skill for security risks before you install or use it. Powered by Tencent Zhuque Lab A.I.G (AI-Infra-Guard). 100% local static analysis — no file contents or credentials leave your device. Compatible with CodeBuddy, Cursor, Windsurf, Claude Code, OpenClaw and more. Triggers on: 这个 skill 安全吗, skill 安全扫描…

Tencent/AI-Infra-Guard · 148 tokens

baby-sit

Monitor a GitHub pull request until CI is green, diagnose failures, and rerun only evidence-backed flaky GitHub Actions jobs.

langchain-ai/open-swe · 30 tokens

nano-banana-pro-openrouter

Deterministic OpenRouter image generation adapter for Nano Banana Pro / Gemini image models. Use as skillexec when a meta-skill needs local image files and structured IMAGEREADY records without spawning an LLM agent.

opensquilla/opensquilla · 49 tokens

skill-creator-linter

Internal tool (not user-invocable). Called by meta-skill-creator as a DAG step (kind: agent) to lint a candidate meta-skill SKILL.md against G1 (parse + reference check + xmlescape grep + structural lint) and G2 (scheduler dry-run with stub executors). Deterministic, sub-second, no LLM. Returns JSON diagnostics.

opensquilla/opensquilla · 84 tokens

paper-abstract-author

Write the abstract after the paper body has been revised, using the final claims and evidence.

opensquilla/opensquilla · 23 tokens

langbot-deploy

Deploy and configure a LangBot instance — Docker / Docker Compose, Kubernetes, the config.yaml model, the Box sandbox runtime, the plugin runtime, and the global API key. Use when installing, deploying, upgrading, or configuring LangBot in production or self-hosted environments. Triggers on "deploy langbot", "langbot…

langbot-app/LangBot · 104 tokens