Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

cli-anything — Claude Code skill: CLI harnesses for GUI apps

Builds a Python harness with Click commands for any GUI application or repository. Generates REPL, tests, and docs following the CLI-Anything methodology.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add HKUDS/CLI-Anything --skill cli-anything -a claude-code
npx skills add HKUDS/CLI-Anything --skill codex-skill -a claude-code
Open on GitHub

What cli-anything does

The skill reads the full methodology from references/HARNESS.md inside its own directory, then creates a structured Python package under the cli_anything/<software>/ namespace. The harness runs in five modes: build creates a new CLI from scratch given a local path or GitHub repository, refine adds commands to an existing harness, test verifies commands against the real backend, validate runs a checklist on structure and quality, list shows installed harnesses.

The output package includes Click subcommands for one-shot invocation, REPL mode with ReplSkin, --json and --dry-run support, undo and redo where the target software provides it. Tests are written first in TEST.md, then in test_core.py and test_full_e2e.py; the latter checks rendered and exported files, not just exit codes. The harness calls the real backend rather than reimplementing logic.

The methodology lives in vendored documents inside the skill; if unavailable, the skill clones HKUDS/CLI-Anything and reads from there. Without access to the full methodology it falls back to condensed rules — check that references/ is present.

What it helps with

  • wrap a GUI application with a command-line interface
  • generate REPL and one-shot commands for any software
  • test a CLI harness against the real backend
  • extend an existing CLI-Anything harness with new commands
  • package a harness as a namespace package with documentation

Example prompts for the agent

  • Build a CLI harness for `./gimp` using CLI-Anything methodology
  • Refine the existing harness in `./software` with new commands
  • Run harness tests against the real backend and update `TEST.md`

How to install cli-anything

1Skills CLI (Vercel)

npx skills add HKUDS/CLI-Anything --skill cli-anything -a claude-code
npx skills add HKUDS/CLI-Anything --skill codex-skill -a claude-code

2Manually: put the files in place

~/.claude/skills/codex-skill/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/codex-skill/

From the same set18

The whole set →
cli-hub-meta-skill HKUDS A skill that gives agents a catalog of professional command-line tools built for AI. Search, install, and run CLIs for video, design, AI, and development without leaving your editor. Claude Code CX Codex Cursor +1 5,300installs cli-anything-blender HKUDS A skill that adds a stateful command-line interface for editing Blender 3D scenes. Use it when an agent needs to assemble a scene, assign materials, or render a frame without manual clicking. Claude Code CX Codex Cursor +1 941installs cli-anything-obsidian HKUDS Manage an Obsidian vault from the terminal: read, create, search, and update notes or run editor commands. It suits agents that need to work without the GUI. Claude Code CX Codex Cursor +1 917installs cli-anything-notebooklm HKUDS Experimental harness to manage Google NotebookLM through a local CLI. It lets agents list notebooks, query sources, generate artifacts, and download files. Claude Code CX Codex Cursor +1 801installs cli-anything-libreoffice HKUDS Skill for creating and editing Writer, Calc, and Impress documents from the CLI without a GUI. Produces real ODF files (ZIP with XML) — useful when an AI agent needs to assemble a report, spreadsheet, or presentation programmatically. Claude Code CX Codex Cursor +1 669installs cli-anything-drawio HKUDS A command-line harness over Draw.io: the skill hands your agent commands to build a diagram step by step and export it to PNG, PDF or SVG. Claude Code CX Codex Cursor +1 666installs cli-anything-freecad HKUDS Turns FreeCAD into a scriptable CLI for your agent: 258 commands for primitives, sketches, PartDesign features and headless export. Claude Code CX Codex Cursor +1 643installs cli-anything-gimp HKUDS Provides a stateful image editing CLI built on Pillow and GIMP for AI agents. It handles layers, drawing, and headless rendering without a GUI. Claude Code CX Codex Cursor +1 609installs

Similar

ce-commit EveryInc Automatically creates git commits with meaningful messages, splitting changes into logical chunks. Use when you need to save staged or unstaged files without pushing. Claude Code CX Codex Cursor +1 3,400installs ce-ideate EveryInc Generates and critiques grounded project ideas before you start planning. Useful when you need fresh engineering directions or surprising angles anchored in your actual codebase. Claude Code CX Codex Cursor +1 3,400installs ce-simplify-code EveryInc Simplifies code after implementation while keeping its behavior, and removes tests or comments with little value. Use it before review or for a repository audit. Claude Code CX Codex Cursor +1 3,400installs yuanbao Teknium (teknium1), Hermes Agent Connects agents to Yuanbao groups to query members, send mentions using @nickname, and deliver direct messages with attachments. Claude Code CX Codex Cursor +1 564installs image-to-code nexu-io A skill for visually important web tasks. It generates design images first, analyzes them, then builds frontend to match the references. Claude Code CX Codex Cursor +1 1,800installs pr-feedback-quality-gate nexu-io Skill for tracking pull request feedback, resolving merge conflicts, and validating fixes. Runs read-only cross-review before commit to catch issues in follow-up changes. Claude Code CX Codex Cursor +1 1,800installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. Claude Code 711,230installs

Questions about cli-anything

How to install cli-anything in Codex?

Run npx skills add HKUDS/CLI-Anything --skill codex-skill -a codex, the skill file will appear at .agents/skills/codex-skill/SKILL.md.

What does cli-anything do?

It builds a Python harness with Click commands for a GUI application or repository: generates package structure, REPL, tests, docs, and packages everything under the cli_anything/ namespace.

Does it need access to the real software?

Yes. The harness calls the real backend of the target application rather than reimplementing its logic; tests verify the output of the real process.

Source text

SKILL.md · Apache-2.0
---
name: cli-anything
description: Use when the user wants Codex to build, refine, test, validate, or list CLI-Anything harnesses for GUI applications or source repositories. Adapts the full CLI-Anything methodology to Codex without changing the generated Python harness format.
---

# CLI-Anything for Codex

Use this skill when the user wants Codex to act like the `CLI-Anything` builder.

## Read the Full Methodology First

Before implementation, use the full methodology source of truth:

1. Read `references/HARNESS.md` relative to this skill directory.
2. Read the matching mode specification under `references/commands/`.
3. Read referenced files under `references/guides/` only when they apply to the target.
4. If the installed resources are unavailable and this skill is being used from a
   `CLI-Anything` repository checkout, read `../cli-anything-plugin/HARNESS.md` and
   the resources around it.
5. If neither local source is available, clone or download
   `https://github.com/HKUDS/CLI-Anything` and use `cli-anything-plugin/HARNESS.md`.
6. Only if all full-methodology sources are unavailable, follow the condensed rules below.

The installer vendors the canonical resources from `cli-anything-plugin/` into this
skill so a normal Codex installation is self-contained.

## Resource Map

| Path | Purpose |
|------|---------|
| `references/HARNESS.md` | Complete methodology and quality rules |
| `references/commands/cli-anything.md` | Build-mode specification |
| `references/commands/refine.md` | Refine-mode specification |
| `references/commands/test.md` | Test-mode specification |
| `references/commands/validate.md` | Validation checklist |
| `references/commands/list.md` | Installed/generated harness discovery |
| `references/guides/` | On-demand implementation guidance |
| `scripts/repl_skin.py` | Copy into generated harnesses as `utils/repl_skin.py` |
| `scripts/preview_bundle.py` | Copy into preview-capable harnesses as `utils/preview_bundle.py` |
| `scripts/skill_generator.py` | Generate canonical and packaged CLI skills |
| `scripts/templates/SKILL.md.template` | Skill generation template used by `skill_generator.py` |
| `references/docs/PREVIEW_PROTOCOL.md` | Shared preview bundle protocol |

When reading vendored documents, apply these path remappings instead of resolving
plugin paths against the current working directory:

| Document reference | Installed skill path |
|--------------------|----------------------|
| `guides/...` | `references/guides/...` |
| `cli-anything-plugin/repl_skin.py` | `scripts/repl_skin.py` |
| `cli-anything-plugin/preview_bundle.py` | `scripts/preview_bundle.py` |
| `cli-anything-plugin/skill_generator.py` | `scripts/skill_generator.py` |
| `templates/SKILL.md.template` | `scripts/templates/SKILL.md.template` |
| `docs/PREVIEW_PROTOCOL.md` | `references/docs/PREVIEW_PROTOCOL.md` |

## Inputs

Accept either:

- A local source path such as `./gimp` or `/path/to/software`
- A GitHub repository URL

Derive the software name from the local directory name after cloning if needed.

## Modes

### Build

Read `references/commands/cli-anything.md`. Build a complete harness through source
analysis, architecture design, implementation, test planning, test implementation,
test documentation, CLI-specific `SKILL.md` generation, and local installation.

### Refine

Read `references/commands/refine.md`. Inventory current commands and tests, compare
them against the target software, then incrementally add high-impact capabilities
without removing existing commands unless the user requests a breaking change.

### Test

Read `references/commands/test.md`. Run the harness tests against the real backend,
verify installed-command subprocess coverage, and update `TEST.md` only with passing
results.

### Validate

Read `references/commands/validate.md`. Validate the harness against the complete
directory, implementation, test, documentation, packaging, and code-quality checklist.

### List

Read `references/commands/list.md`. Discover installed and generated CLI-Anything tools
and support human-readable or JSON output as requested.

## Condensed Fallback Rules

Use these only when the full methodology cannot be retrieved.

### Harness Structure

Produce:

```text
<software>/
└── agent-harness/
    ├── <SOFTWARE>.md
    ├── setup.py
    └── cli_anything/
        └── <software>/
            ├── README.md
            ├── __init__.py
            ├── __main__.py
            ├── <software>_cli.py
            ├── core/
            ├── utils/
            └── tests/
```

### Required Behavior

- Prefer the real software backend over reimplementation.
- Provide one-shot Click subcommands and default REPL mode.
- Support `--json` machine-readable output.
- Add session state with undo/redo where the target supports it.
- Auto-save one-shot session mutations and support `--dry-run`.
- Use locked session-file writes to avoid concurrent JSON corruption.
- Copy and use the unified `ReplSkin`.
- Add truthful preview commands for software with meaningful visual or inspection state.
- Generate both canonical and packaged CLI-specific `SKILL.md` files.

### Testing

- Write `TEST.md` before test code.
- Keep `test_core.py` for unit coverage.
- Keep `test_full_e2e.py` for real-file workflows and real backend validation.
- Verify rendered/exported output programmatically, not only process exit codes.
- Test the installed `cli-anything-<software>` command via `_resolve_cli()`.
- Run release validation with `CLI_ANYTHING_FORCE_INSTALLED=1`.

### Packaging

- Use `find_namespace_packages(include=["cli_anything.*"])`.
- Keep `cli_anything/` as a namespace package without a top-level `__init__.py`.
- Expose `cli-anything-<software>` through `console_scripts`.
- Include the packaged CLI-specific `skills/SKILL.md`.

## Output Expectations

When reporting progress or final results, include:

- target software and source path
- files added or changed
- validation commands run
- open risks or backend limitations

© HKUDS · Apache-2.0 · HKUDS/CLI-Anything

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor