Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read/write commands, return stable JSON, manage auth, and pair with a companion skill.
cli-creator is a curated OpenAI skill that guides Codex through building a real, durable command-line tool from a variety of sources: API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. It solves the problem of one-off, throwaway scripts by producing a composable CLI that future Codex threads can invoke by command name from any working directory, exposing stable read/write commands, returning predictable JSON, and managing authentication cleanly.
The skill provides an opinionated workflow. It first inspects the machine (checking for cargo, rustc, node, npm, python3, uv, and existing command names) and picks the least surprising runtime, defaulting to Rust for durable binaries, TypeScript/Node when an official SDK or browser-automation library justifies it, and Python for data-heavy or file-transform sources. It then prescribes a command contract: a --help surface, a --json doctor command that verifies config, auth, version, and reachability, discovery and resolve commands that turn names and URLs into stable IDs, narrow read and write commands (with --dry-run/draft/preview support), and an honest raw escape hatch. A companion references file (agent-cli-patterns.md) documents the expected composable shape. The skill is notably security-conscious about credentials: auth precedence is environment variable, then user config file, then a flag only for one-off tests; it insists tokens must never be printed, JSON errors must not contain credentials, and copied cookies, bearer tokens, or production payloads must never be committed.
Target users are engineers and Codex users who want reliable, reusable internal tooling around APIs and services. Typical use cases include wrapping a CI logs API, a Slack or Sentry API, or an internal admin tool into a shareable CLI installed on PATH.
The skill defaults to Rust for durable single-binary tools, uses TypeScript/Node when an official SDK or automation library is the reason, and uses Python for data-science, file-transform, or Python-heavy admin sources. It chooses based on what is installed and least surprising.
It supports auth in precedence order: environment variable using the service's standard name, then a user config file, then a flag only for explicit one-off tests. It requires that tokens are never printed, that --json errors are machine-readable and contain no credentials, and that copied cookies, bearer tokens, or production payloads are never committed.
A --help overview, a --json doctor for config/auth/version/reachability checks, discovery and resolve commands for stable IDs, narrow read and write commands with --dry-run/draft/preview where supported, and a clearly named raw escape hatch.
No. It is explicitly for durable tools. If a short script in the current repo solves the task, the skill advises writing that script instead.
The workflow smoke-tests from another repo or /tmp, checks command availability, help output, and no-auth doctor, and runs format, typecheck/build, and unit tests including request/pagination builders and at least one fixture, dry-run, or live read-only call.
Quick Setup:
.claude/skills/Repository
openai/skills