Jorge Turbica / blog · Blog ← All articles ES · Leer en español
AI

Repo of the day: CLI-Anything, agent-ready CLIs generated from any app's source code

A Claude Code plugin that generates JSON-speaking CLIs from an application's source code. 54,000 stars and on GitHub Trending.

CLI-Anything picked up 574 stars in a single day and on October 18, 2026 ranked third among Python repositories on GitHub Trending, with more than 54,000 in total. Its pitch is simple: instead of teaching an agent to click through a GUI, give any program a command line designed for the agent.

What it is and how it works

CLI-Anything, from the HKUDS lab, is a plugin for Claude Code (and for other agents such as Codex, Cursor or OpenCode) that generates a Python CLI for an application from its source code. You hand it a directory or a GitHub URL and the agent runs a seven-phase pipeline: it analyses the code and maps GUI actions to the underlying APIs, designs the command groups and state model, implements the CLI with Click, plans and writes the tests, documents the results and packages it so it lands on your PATH.

Every generated CLI shares the same skeleton: subcommands for scripting, a stateful REPL when run with no arguments, undo and redo, and a --json flag on every command so the agent never has to parse tables. Each one also ships with a SKILL.md, so an Agent Skills-compatible agent can discover its commands without reading the code.

The most interesting design choice is that the CLI reimplements nothing: it writes valid project files (ODF, MLT XML, SVG) and hands off to the real application. LibreOffice produces the PDF and Blender renders the scene. That is why the tests fail, rather than skip, when the backend is missing. The README publishes a table with more than 2,400 tests across some thirty harnesses, from GIMP and Blender to Zoom, Ollama, LLDB and AdGuard Home.

Around the generator sits CLI-Hub, a registry with its own package manager that installs both the project's CLIs and third-party public CLIs from pip, npm or brew. The project is Apache 2.0 licensed and needs Python 3.10 or later.

How to use it

To generate a new CLI from Claude Code:

bash
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
/cli-anything ./gimp
/cli-anything:refine ./gimp "batch processing and filters"

The last command looks for capabilities the CLI does not cover yet and adds commands, tests and docs; it is incremental and can be run repeatedly. To use what already exists, go through the registry:

bash
pip install cli-anything-hub
cli-hub search image
cli-hub install gimp
cli-hub launch gimp

Two warnings before you install anything. The publish phase installs the generated code with pip install -e ., so this is model-written code running with your permissions: read it first. And the README suggests adding the CLI-Hub meta-skill with npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y, which installs it globally with no prompt and lets the agent search for and install CLIs from the registry on its own. On a machine holding production credentials, that deserves a second thought.

What I like and what I don't

I like the approach. A CLI with JSON output is the cheapest interface an agent can use: it is discoverable through --help, it composes into pipelines and it leaves a readable trail in the shell history. The insistence on driving the real software, with output checks such as verifying a PDF's magic bytes instead of trusting a zero exit code, is good practice for any integration.

What I am less sure about is maturity. The README itself admits three limits: it needs frontier models to generate reliable harnesses, it depends on having the source code, and one run rarely covers everything, so expect several refine passes. Activity has also slowed: the last commits with code changes date from August 21, 2026, and since then only the README has changed, with 75 open issues and 111 open pull requests. Most harnesses also target creative and desktop apps; for an SRE, the value is in the long tail (n8n, WireMock, LLDB, AdGuard Home) rather than in GIMP.

CLI-Anything vs an MCP server

The obvious alternative for giving an agent tools is the Model Context Protocol: a server that exposes tools and resources over a standard protocol, with official SDKs in ten languages and a public server registry.

CLI-AnythingMCP server
ApproachThe agent generates a CLI from source codeYou write (or install) a server that implements the protocol
How the agent uses itShell: commands, --help and --jsonTool calls over MCP
DeploymentLocal pip install, no extra processLocal or remote process configured in the client
LicenseApache 2.0Reference servers under Apache 2.0 (older code under MIT)
MaturityModel-generated, needs refining and reviewStandard protocol; reference servers are examples, not production-ready

When to use which. CLI-Anything fits when you want to automate an open source application that has no API or MCP server, especially if your agent already lives in a terminal: the CLI is just as useful in your own scripts. An MCP server is the better choice when the tool must serve several clients, runs on another machine or needs tight control over what the agent can do. They are not mutually exclusive: CLI-Anything's own registry includes harnesses that talk to the application through an MCP bridge.

Sources

Jorge Turbica

Software Engineer and SRE. I write about the real challenges I run into in production.

See portfolio ↗