cli-anything-hermes
GitHub指导 Hermes Agent 为 GUI 应用或源码构建、完善、测试及验证 CLI-Anything 适配工具集,支持新建、优化、测试和校验流程。
Trigger Scenarios
Install
npx skills add HKUDS/CLI-Anything --skill cli-anything-hermes -g -y
SKILL.md
Frontmatter
{
"name": "cli-anything-hermes",
"description": "Use when the user wants Hermes Agent to build, refine, test, or validate a CLI-Anything harness for a GUI application or source repository. Adapts the CLI-Anything methodology to Hermes without changing the generated Python harness format."
}
CLI-Anything for Hermes Agent
Use this skill when the user wants Hermes Agent to act like the CLI-Anything builder.
Before implementation, use the full methodology source of truth when available:
- If this skill is being used from inside the
CLI-Anythingrepository, read../cli-anything-plugin/HARNESS.mdfirst. - If that local file is unavailable, clone or download
cli-anything-pluginfromhttps://github.com/HKUDS/CLI-Anything/tree/main/cli-anything-plugin, then useHARNESS.mdand the resources around it from that folder. - Only if both local and network retrieval fail, follow the condensed rules below.
Inputs
Accept either:
- A local source path such as
./gimpor/path/to/software - A GitHub repository URL
Derive the software name from the local directory name after cloning if needed.
Hermes Tool Bindings
Hermes agents build harnesses by combining these built-in tools:
| Tool | Role in Harness Workflow |
|---|---|
terminal |
Run shell commands, install packages, execute CLI tools, run tests |
execute_code |
Generate and write Python files (Click CLI, backend modules, tests) |
delegate_task |
Parallelize analysis or generation subtasks |
read_file / write_file |
Read and write harness source files |
patch |
Make targeted edits to generated code |
Consult the Hermes Agent documentation for the exact tool invocation syntax.
Modes
Build
Use when the user wants a new harness.
Produce this structure:
<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
--jsonmachine-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:
test_core.pyfor unit coveragetest_full_e2e.pyfor workflow and backend validation
When possible, test the installed command via subprocess using cli-anything-<software> rather than only module imports.
Validate
Check that the harness:
- uses the
cli_anything.<software>namespace package layout - has an installable
setup.pyentry 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
cli_anything/as a namespace package without a top-level__init__.py - Expose
cli-anything-<software>throughconsole_scripts
Workflow
- Acquire the source tree locally (clone or use existing path).
- Analyze architecture, data model, existing CLIs, and GUI-to-API mappings.
- Design command groups and state model.
- Implement the harness.
- Write
TEST.md, then tests, then run them. - Update README usage docs.
- Verify local installation with
pip install -e .
Existing Harnesses (Reference)
For an up-to-date list of supported harnesses and their backend patterns, see registry.json at the repository root.
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
Version History
- 6f372d3 Current 2026-08-20 06:41


