AI Guides › Workbench

CLI-Anything: Four Parts That Let Claude Code Drive Desktop Apps

By Nigel Guy · 7 min read

The usual move is to install a wrapper, open Claude Code and type "open my project and export it", assuming the wrapper can now do everything the app can. Then Claude spends ten minutes failing to load a file the wrapper was never built to read, and you decide the tool is broken. It isn't. It works on its own terms, and nobody read them.

The rule: install the hub, install one ready-made wrapper, read its command list, and only then ask Claude to use it. Build your own wrapper only when the hub has nothing.

CLI-Anything is an open-source project published by the HKUDS team on GitHub under the Apache 2.0 licence. It wraps apps such as Blender, GIMP and LibreOffice as typed terminal commands with a --json switch Claude Code can read. It is not an Anthropic product, and the wrappers ("harnesses") come from the project team and community, not the app makers.

The kit at a glance

All four parts are free. What you pay for is Claude Code: the Free claude.ai plan does not include it, so you need Pro or above. At time of writing Anthropic lists Pro at $20 a month ($17 billed annually), which is roughly £18 a month in the UK including VAT. Check the figure at checkout.

Part What it does Cost Best for Catch
cli-anything-hub (the cli-hub command) Browses, searches, installs, updates and removes wrappers Free (PyPI, Python 3.10+) Everyone, first Many installs pull straight from GitHub, so you need Git installed
A ready-made wrapper, e.g. cli-anything-blender Turns one app into commands Claude can run Free; the app itself must be installed too Apps already in the registry Works on its own project format, not always the app's native files
The Claude Code plugin (/cli-anything) Reads an app's source code and generates a new wrapper Free; uses your Claude usage Apps or internal tools with no wrapper yet Long, usage-hungry run; output needs testing
The CLI-Hub meta-skill Lets an agent find and install the right wrapper itself Free; needs Node.js for npx Repeat use across many apps You approve fewer steps, so you see less of what was installed

1. Install the hub

You need Python 3.10 or newer and Git. Open Terminal (macOS) or PowerShell (Windows) and check both:

python3 --version
git --version

On Windows, type python. If either says "not found", install it from python.org or git-scm.com. Then:

pip install cli-anything-hub
cli-hub list
cli-hub search "3d"
cli-hub info blender

Other commands at time of writing: install, update, uninstall and launch. cli-hub info is the one people skip, and it tells you what the wrapper needs. If pip reports a permissions error, use a virtual environment (python3 -m venv ~/cli-env, then activate it) rather than sudo.

2. Install one wrapper, plus the real app

cli-hub install blender
cli-anything-blender --help

The hub installs only the wrapper. The registry entry says Blender 4.2 or later must be installed separately; the wrapper calls it in the background to render. Install it from blender.org and confirm blender --version works, or the wrapper will fail too.

Per-tool notes worth knowing before you start:

Wrapper Needs Watch for
Blender Blender 4.2+ Scenes live in a .blend-cli.json file the wrapper creates. In the version checked, scene open reads that JSON format, not a native .blend file. Use absolute file paths, as its own instructions require
GIMP GIMP, run in batch mode Same pattern: its own project JSON, real GIMP for the output
LibreOffice LibreOffice Uses headless mode for conversions; close the app if exports hang

That is the biggest beginner trap: "open my scene.blend and render frame 1" is not something this wrapper does. It builds a scene through its own commands, then renders that.

3. Ask Claude to use it

Start Claude Code in your output folder (cd into it, type claude) and give it this brief:

You are operating the CLI-Anything Blender wrapper (command: cli-anything-blender) on my machine.

Goal: produce one rendered PNG of a simple scene so I can confirm the setup works.
Scene: [DESCRIBE_THE_SCENE, e.g. "a red cube on a grey plane, lit from the left"]
Project file: [ABSOLUTE_PATH_FOR_PROJECT].blend-cli.json
Output image: [ABSOLUTE_PATH_FOR_PNG]
Frame to render: [FRAME_NUMBER, default 1]

Steps:
1. Run `cli-anything-blender --help` and the --help for any command group you plan to use. Use only commands that appear there.
2. Create the project with `scene new`, then add objects, a material, a camera and a light.
3. Run every command with --json and an absolute path. After each one, check the exit code; stop and show me any error rather than retrying blindly.
4. Render the chosen frame with `render execute` and confirm the PNG file exists and is not empty.

Output: a numbered list of the exact commands you ran, the path of the PNG, and one line on anything that did not behave as expected.
Rules: do not install or uninstall anything without asking me. Do not touch files outside the two paths above. If an input is missing or the wrapper lacks a command you need, ask me instead of improvising.
Before you finish, check: did every command come from --help output, and does the PNG exist at the path I gave?

Fill in the scene, the two absolute paths and the frame. Claude Code asks before running each command unless you have allowed it, so read them as they pass.

4. Build a wrapper when the hub has none

Inside Claude Code, add the project's plugin marketplace and install the plugin:

/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything

Then point it at a folder or public repo: /cli-anything https://github.com/[OWNER]/[REPO]. Follow-ups are /cli-anything:refine, :test, :validate and :list. If you see "Unknown skill: cli-anything", run /reload-plugins first. On Windows, the project recommends Git for Windows or WSL.

Before generating, run a scoping pass:

You are helping me decide whether to generate a CLI-Anything wrapper for an application.

Application: [APP_NAME]
Source code or docs: [REPO_OR_DOCS_LINK]
The three jobs I want Claude to do with it: [JOB_1], [JOB_2], [JOB_3]
My operating system: [MACOS_WINDOWS_OR_LINUX]

Steps:
1. Run `cli-hub search [APP_NAME]`. If a wrapper exists, stop and tell me.
2. Read the source or docs and say whether the app has a scriptable or headless mode a wrapper could call, quoting the file or page.
3. For each job, say whether it looks achievable through that interface.
4. List what must be installed on my machine.

Output: a table (job, yes/no/unclear, evidence), the install list, then one line: generate, use an existing wrapper, or don't bother.
Rules: do not run the generator or install anything. If you cannot read the repo, say so and stop. Mark inferences "unclear".
Before answering, check that every "yes" is backed by a file or doc you actually opened.

Fill in the app, the link, your three jobs and your operating system.

How to choose

Your situation Use
The app appears in cli-hub list Parts 1 to 3 and nothing else
The app is open source but not listed Run the scoping prompt, then part 4
The app is closed source with no scripting mode Probably none of this; see guardrails
You switch between many apps daily Add the meta-skill (npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y) once you trust the basics

How to tell it worked

What goes wrong, and the fix

Symptom Likely cause Fix
Install fails mentioning git Git missing Install Git, rerun cli-hub install
Wrapper runs, render fails The real app is missing or too old Install it and check --version
"Invalid scene file" You pointed it at a native file Create a project with the wrapper's new command
Output lands somewhere odd Relative paths Use absolute paths throughout

What to skip

Guardrails

Sources

All 751 AI guides · JulieMango plans from £17/mo