CreateCLI

Generates production-ready TypeScript CLIs using a three-tier template system with Bun.

Updated Sep 3, 2026
One-click install
npx skills add https://github.com/ruban-s/DevOS --skill createcli-ruban-s
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: CreateCLI
Source: https://github.com/ruban-s/DevOS/tree/main/skills/CreateCLI
Command: npx skills add https://github.com/ruban-s/DevOS --skill createcli-ruban-s

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires commander, and includes references (resource) components.

What problem does it solve? Building a command-line tool from scratch repeatedly costs the same boilerplate: argument parsing, help text, error handling, type safety, and documentation. This Skill collapses that entire arc into one pass, generating a complete TypeScript CLI matched to the complexity the job actually needs. ## Core Features & Use Cases - Three-tier generation: Tier 1 manual argument parsing with zero dependencies (the default for most CLIs), Tier 2 Commander.js for subcommands and 10+ commands, Tier 3 oclif as reference documentation only. - Complete deliverables: Every generated CLI ships with full TypeScript implementation, README and QUICKSTART docs, Bun package.json, strict tsconfig, .env.example, deterministic JSON output, and correct exit codes. - Extension workflows: Add new commands to an existing CLI or upgrade a Tier 1 CLI to Tier 2 when complexity grows. - Use Case: Ask for a CLI wrapping the GitHub API with repos, issues, and search commands, and receive a working ~350-line zero-dependency tool with help text, config loading from ~/.claude/.env, and jq-composable JSON output. ## Quick Start Ask the agent to create a CLI for your chosen API or service, listing the commands you need and how it should authenticate.

Frequently Asked Questions about CreateCLI

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a TypeScript CLI without a framework?▼

Use manual argument parsing with process.argv, a switch statement for command routing, and one function per command. This Tier 1 pattern produces roughly 300-400 lines of zero-dependency, type-safe code suitable for CLIs with 2-10 commands.

Commander.js vs manual argument parsing for a CLI?▼

Manual parsing fits CLIs with 2-10 simple commands, JSON output, and no subcommands, covering roughly 80% of cases. Commander.js is justified when you need subcommands, 10+ grouped commands, plugin architecture, or multiple output formats.

Can I add a new command to an existing generated CLI?▼

Yes, the AddCommand workflow extends an existing CLI by adding a command function, registering it in the switch statement, and updating help text and README. It preserves existing functionality and code style.

Does this work with Node.js or only Bun?▼

Generated CLIs target the Bun runtime exclusively, using bun for execution and package management. TypeScript with strict mode is mandatory, and npm, npx, or Python generation are explicitly out of scope.

When should I upgrade a CLI from manual parsing to Commander.js?▼

Upgrade when the switch statement becomes unwieldy around 15+ commands, when you need git-style subcommands, or when complex nested options appear. The UpgradeTier workflow converts commands while preserving help text quality.