CLI-Anything, a project from the HKUDS research lab, was one of the AI developer repositories trending on GitHub on October 14, 2026. Its premise is blunt: "Today's software serves humans. Tomorrow's users will be agents." Instead of asking an agent to click through a graphical interface or hand-write glue code, CLI-Anything has a coding agent read a program's source and generate a complete command-line interface around it, with structured JSON output, tests and a skill file other agents can load.
This guide covers what the CLI-Anything repository does, how its seven-phase generator and its CLI-Hub registry work, how it compares with MCP and agent skills, and what to check before installing community-built CLIs. We read the README and its news log; we did not run the generator against real software, so nothing here is a measurement of output quality.
CLI-Anything at a glance
| Question | Answer from the README |
|---|---|
| What does it do? | Generates an agent-native CLI for existing software |
| Who makes it? | HKUDS |
| How does it build a CLI? | A seven-phase pipeline run by a coding agent |
| Entry point | /cli-anything ./gimp or a GitHub repo URL |
| Output | Click-based CLI with REPL, JSON output, undo/redo, tests and docs |
| Registry | CLI-Hub, with pip install cli-anything-hub and cli-hub install <name> |
| Agent hosts | Claude Code, Codex, Pi, OpenClaw, nanobot, Cursor and other skill-compatible agents |
| Skills | npx skills add HKUDS/CLI-Anything --skill <name> -g -y |
| Example harnesses | GIMP, Blender, Inkscape, Shotcut, Kdenlive, QGIS, Obsidian, Calibre, n8n, Godot and more |
Why would an agent want a CLI?
The README gives a short argument for the command line as the agent interface: commands are structured and composable, they are lightweight with minimal dependencies, --help makes them self-describing, structured JSON output removes parsing work, and results are deterministic. It also notes that Claude Code already runs large numbers of workflows through the shell.
That matches how most coding agents work today. They are good at running a command, reading its output and chaining the next step; they are clumsy at controlling a desktop GUI by screenshots. A CLI turns a GUI-only program into something an agent can script. For background on how this fits with other agent tooling, see our guides to the Model Context Protocol and agent skills.
How does the seven-phase generator work?
After installing the plugin in a supported agent, you run /cli-anything ./gimp (or pass a GitHub URL such as Blender's repository). The README lists the pipeline:
- Analyze: scan the source code and map GUI actions to APIs.
- Design: architect command groups, a state model and output formats.
- Implement: build a Click CLI with a REPL, JSON output and undo/redo.
- Plan tests: write a TEST.md with unit and end-to-end test plans.
- Write tests: implement the test suite.
- Document: update TEST.md with results.
- Publish: create
setup.pyand install the CLI to PATH.
A later addition, called phase 6.5 in the news log, generates a SKILL.md for every CLI so agents can discover it. You can then iterate with /cli-anything:refine ./gimp, either broadly or with a focus such as "more CLIs on image batch processing and filters."
What is CLI-Hub?
CLI-Hub launched in March 2026 as a central registry and by April had become a package manager. The README says pip install cli-anything-hub gives you a cli-hub command to browse, search, install, update and uninstall harnesses. Version 0.2.0 added support for public CLIs from multiple install sources, including pip, npm, brew and bundled or system tools, backed by a public registry file. A CLI-Hub meta-skill lets agents discover and install the right CLI for a task by themselves.
The registry is community-driven: the project invites contributors to open a pull request or sign up to build a harness, and anyone can submit a wishlist request. The news log shows a steady stream of additions, including QGIS, Obsidian, Calibre, Joplin, Rekordbox and n8n harnesses, with test counts such as 48 unit and 7 end-to-end tests for Obsidian and 134 tests for Joplin.
How fast has the project moved?
The news log in the README gives a useful timeline, and it shows why the trending spike is not a one-day fluke.
| Date | Milestone |
|---|---|
| Mar 12, 2026 | Codex skill integration lands |
| Mar 16, 2026 | SKILL.md generation added as phase 6.5 |
| Mar 17, 2026 | The CLI-Hub web registry launches |
| Mar 23, 2026 | CLI-Hub meta-skill lets agents discover and install CLIs on their own |
| Apr 10, 2026 | CLI-Hub package manager launches on PyPI |
| Apr 15, 2026 | CLI-Hub v0.2.0 supports public CLIs from pip, npm, brew and bundled tools |
| Apr 18, 2026 | All SKILL.md files unified under a top-level skills/ directory |
| May 2026 | Calibre, Rekordbox, 3MF, MiniMax and Joplin harnesses added; security fixes across several |
A blank terminal window with a single green block cursor, illustrating a generated agent-native command line interface
The pace suggests a contributor community rather than a single maintainer. It also means the quality of individual harnesses differs: a harness merged with dozens of tests and real-application end-to-end evidence, like Calibre's 41 unit tests, is a different proposition from one proposed last week. When you pick a CLI from the hub, look for the test count, the last update and whether the pull request records tests against the real application.
What should you ask before trusting a generated harness?
- Does it call the real application or a stub? Generated CLIs sometimes wrap a library rather than the program you use. Check which one.
- Is state handled safely? Undo/redo and backups matter when a CLI edits documents, libraries or databases.
- Does it return structured errors? Agents recover from failures far better when the CLI prints a clear JSON error and a nonzero exit code.
- Is the SKILL.md honest? A skill file that overstates what the CLI can do will send your agent down dead ends.
- Who maintains it? A harness with a named contributor and recent commits is safer than an orphan.
How does it compare with MCP and skills?
| Approach | Strength | Trade-off |
|---|---|---|
| CLI-Anything CLIs | Local, scriptable, composable, easy for shell-driven agents | Generated code quality varies; each CLI is its own package |
| MCP servers | Standard protocol with typed tool schemas, works across hosts | Server setup and context cost for large tool lists |
| Agent skills | Lightweight instructions that teach a workflow | Does not itself provide the tool |
They are complementary. CLI-Anything even ships a SKILL.md with each CLI, and some entries wrap MCP servers (the registry lists a Safari harness built on safari-mcp and an Unreal Editor workbench with a Python proxy). Our post on installing skills with npx shows the same installer the project uses, and the Claude Code commands reference covers the plugin commands.
Which agents does it support?
The README says one command line makes software agent-ready for Pi, OpenClaw, nanobot, Cursor, Claude Code and others. Setup paths exist for Claude Code (add the marketplace and install the plugin), Codex, and the Pi coding agent (an install script copies an extension into Pi's extensions directory). If you run OpenClaw, see our coverage of OpenClaw 2.0 and the Hermes Agent vs OpenClaw comparison.
What are the risks?
CLI-Anything gives agents more reach, which cuts both ways.
- Generated code is unreviewed code. An agent wrote it from reading source, so test coverage and behavior depend on that run. Read the CLI before you give it write access to your files.
- Supply chain. CLI-Hub installs packages from pip, npm and brew sources. A malicious or compromised package runs with your user permissions. Pin versions and check authors.
- Untrusted input. The project's news log shows real hardening: token-file handling fixed against path traversal and symlink escapes in the Sketch CLI, and XML, SVG and ODF parsing moved to
defusedxmlfor untrusted input. That is good practice, and also a sign these classes of bug exist across harnesses. - Destructive operations. Wrapping a database or media library in a scriptable CLI is powerful. The Rekordbox harness notes guarded write paths and backup-required forced writes, the kind of safeguard you should look for in any CLI that mutates data.
- Licensing and terms. Generating a CLI for proprietary software may conflict with its license or terms of service. Check before you automate someone else's product.
For production agents, a runtime control layer such as AgentBeam, built by the explainx.ai team, can block dangerous actions even when the tool itself allows them.
A safe way to try it
- Start with open-source software you can run in a container, such as an image editor or a note-taking app.
- Generate the CLI in a throwaway environment and read the output, tests and SKILL.md.
- Run the tests it wrote, then add one test of your own for a case that matters to you.
- Give an agent a narrow task through the CLI and review its commands.
- Only then consider publishing or sharing it through CLI-Hub, with a clear README and pinned dependencies.
What this means for builders
If you build agents, the idea is worth studying even if you never use the project: treat every tool as an interface with a contract, give it JSON output and a self-describing help text, and test it. If you maintain a desktop or web application, shipping an official agent-friendly CLI may soon matter as much as shipping an API. Expect more projects to converge on the combination of a CLI, a SKILL.md and optionally an MCP wrapper.
Related reading
- What is the Model Context Protocol?
- What are agent skills? The complete guide
- Install Claude Code skills with npx skills
- Claude Code commands: complete reference
- OpenClaw 2.0 release
- Hermes Agent vs OpenClaw
Details come from the project's README as of October 14, 2026 and change frequently.
