PluginBench
Skill
Fail
Audit score 45

cli-anything

hkuds/cli-anything

Build, refine, test, and validate CLI harnesses for GUI applications using the CLI-Anything methodology.

What is cli-anything?

CLI-Anything for Codex adapts the full CLI-Anything methodology to help you create Python-based command-line harnesses for GUI applications and source repositories. Use it when you need to build new harnesses, refine existing ones, run tests, validate quality, or discover installed tools.

  • Build complete harnesses through source analysis, architecture design, implementation, and testing
  • Refine existing harnesses by inventorying commands and incrementally adding high-impact capabilities
  • Test harnesses against real backends and verify subprocess coverage
  • Validate harnesses against comprehensive directory, implementation, test, documentation, and code-quality checklists
  • Discover and list installed or generated CLI-Anything tools in human-readable or JSON format

How to install cli-anything

npx skills add https://github.com/hkuds/cli-anything --skill cli-anything
Prerequisites
  • Access to the target GUI application or source repository (local path or GitHub URL)
  • Python environment with Click framework support
  • Understanding of the target software's capabilities and architecture
Claude Code
Cursor
Windsurf
Cline

How to use cli-anything

  1. 1.Choose a mode: build (new harness), refine (extend existing), test (validate), validate (quality check), or list (discover tools)
  2. 2.For build mode: provide a local source path or GitHub repository URL; the skill will analyze the software and generate a complete harness
  3. 3.For refine mode: point to an existing harness; the skill will inventory current commands and suggest high-impact additions
  4. 4.For test mode: run the harness tests against the real backend and verify command coverage
  5. 5.For validate mode: run the comprehensive checklist against your harness directory and implementation
  6. 6.Consult the vendored methodology documents in references/ for detailed specifications and guidance

Use cases

Good for
  • Create a CLI wrapper for a complex GUI application like GIMP to enable scriptable workflows
  • Extend an existing harness with new commands that match recent software updates
  • Validate a generated harness meets all quality standards before packaging and distribution
  • Test a harness against real files and backends to ensure commands work correctly
  • Inventory all installed CLI-Anything tools across your development environment
Who it's for
  • Developers building CLI interfaces for GUI applications
  • DevOps engineers automating workflows around desktop software
  • Maintainers extending or validating existing CLI-Anything harnesses
  • Teams standardizing CLI access to proprietary or complex tools

cli-anything FAQ

What is the difference between build and refine modes?

Build mode creates a complete new harness from scratch through source analysis and implementation. Refine mode works with an existing harness, inventories its current commands, and incrementally adds new capabilities without removing existing ones.

Do I need the full CLI-Anything repository to use this skill?

No. The skill vendors canonical resources from cli-anything-plugin/ so a normal Codex installation is self-contained. The skill will use local vendored documents first, then fall back to cloning the repository if needed.

What output format does the harness support?

Harnesses support both human-readable REPL mode and machine-readable --json output for integration with other tools and scripts.

How does the skill handle session state and mutations?

Harnesses auto-save one-shot session mutations and support --dry-run mode. Session files use locked writes to prevent concurrent JSON corruption, and undo/redo is added where the target software supports it.

What should I do after generating a harness?

Run validate mode to check the harness against the complete quality checklist, then run test mode to verify all commands work against the real backend before packaging and distribution.

Full instructions (SKILL.md)

Source of truth, from hkuds/cli-anything.


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

PathPurpose
references/HARNESS.mdComplete methodology and quality rules
references/commands/cli-anything.mdBuild-mode specification
references/commands/refine.mdRefine-mode specification
references/commands/test.mdTest-mode specification
references/commands/validate.mdValidation checklist
references/commands/list.mdInstalled/generated harness discovery
references/guides/On-demand implementation guidance
scripts/repl_skin.pyCopy into generated harnesses as utils/repl_skin.py
scripts/preview_bundle.pyCopy into preview-capable harnesses as utils/preview_bundle.py
scripts/skill_generator.pyGenerate canonical and packaged CLI skills
scripts/templates/SKILL.md.templateSkill generation template used by skill_generator.py
references/docs/PREVIEW_PROTOCOL.mdShared preview bundle protocol

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

Document referenceInstalled skill path
guides/...references/guides/...
cli-anything-plugin/repl_skin.pyscripts/repl_skin.py
cli-anything-plugin/preview_bundle.pyscripts/preview_bundle.py
cli-anything-plugin/skill_generator.pyscripts/skill_generator.py
templates/SKILL.md.templatescripts/templates/SKILL.md.template
docs/PREVIEW_PROTOCOL.mdreferences/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:

<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