CLI-Anything for Codex
Use this skill when the user wants Codex to act like the
builder.
If this skill is being used from inside the
repository, read
../cli-anything-plugin/HARNESS.md
before implementation. That file is the full methodology source of truth. If it is not available, follow the condensed rules below.
Inputs
Accept either:
- A local source path such as or
- A GitHub repository URL
Derive the software name from the local directory name after cloning if needed.
Modes
Build
Use when the user wants a new harness.
Produce this structure:
text
<software>/
└── agent-harness/
├── <SOFTWARE>.md
├── setup.py
└── cli_anything/
└── <software>/
├── README.md
├── __init__.py
├── __main__.py
├── <software>_cli.py
├── core/
├── utils/
└── tests/
Implement a stateful Click CLI with:
- one-shot subcommands
- REPL mode as the default when no subcommand is given
- machine-readable output
- session state with undo/redo where the target software supports it
Refine
Use when the harness already exists.
First inventory current commands and tests, then do gap analysis against the target software. Prefer:
- high-impact missing features
- easy wrappers around existing backend APIs or CLIs
- additions that compose well with existing commands
Do not remove existing commands unless the user explicitly asks for a breaking change.
Test
Plan tests before writing them. Keep both:
- for unit coverage
- for workflow and backend validation
When possible, test the installed command via subprocess using
rather than only module imports.
Validate
Check that the harness:
- uses the namespace package layout
- has an installable entry point
- supports JSON output
- has a REPL default path
- documents usage and tests
Backend Rules
Prefer the real software backend over reimplementation. Wrap the actual executable or scripting interface in
utils/<software>_backend.py
when possible. Use synthetic reimplementation only when the project explicitly requires it or no viable native backend exists.
Packaging Rules
- Use
find_namespace_packages(include=["cli_anything.*"])
- Keep as a namespace package without a top-level
- Expose through
Workflow
- Acquire the source tree locally.
- Analyze architecture, data model, existing CLIs, and GUI-to-API mappings.
- Design command groups and state model.
- Implement the harness.
- Write , then tests, then run them.
- Update README usage docs.
- Verify local installation with
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