Today's Software Serves Humans👨💻. Tomorrow's Users will be Agents🤖.
CLI-Anything: Bridging the Gap Between AI Agents and the World's Software
One Command Line: Make any software agent-ready for OpenClaw, nanobot, Cursor, Claude Code, etc. 中文文档
CLI is the universal interface for both humans and AI agents:
• Structured & Composable - Text commands match LLM format and chain for complex workflows
• Lightweight & Universal - Minimal overhead, works across all systems without dependencies
• Self-Describing - --help flags provide automatic documentation agents can discover
• Proven Success - Claude Code runs thousands of real workflows through CLI daily
• Agent-First Design - Structured JSON output eliminates parsing complexity
• Deterministic & Reliable - Consistent results enable predictable agent behavior
- Python 3.10+
- Target software installed (e.g., GIMP, Blender, LibreOffice, or your own application)
- A supported AI coding agent: Claude Code | OpenCode | Codex | Qodercli | More Platforms
Step 1: Add the Marketplace
CLI-Anything is distributed as a Claude Code plugin marketplace hosted on GitHub.
# Add the CLI-Anything marketplace
/plugin marketplace add HKUDS/CLI-AnythingStep 2: Install the Plugin
# Install the cli-anything plugin from the marketplace
/plugin install cli-anythingThat's it. The plugin is now available in your Claude Code session.
Step 3: Build a CLI in One Command
# /cli-anything:cli-anything <software-path-or-repo>
# Generate a complete CLI for GIMP (all 7 phases)
/cli-anything:cli-anything ./gimp
# Note: If your Claude Code is under 2.x, use "/cli-anything" instead.This runs the full pipeline:
- 🔍 Analyze — Scans source code, maps GUI actions to APIs
- 📐 Design — Architects command groups, state model, output formats
- 🔨 Implement — Builds Click CLI with REPL, JSON output, undo/redo
- 📋 Plan Tests — Creates TEST.md with unit + E2E test plans
- 🧪 Write Tests — Implements comprehensive test suite
- 📝 Document — Updates TEST.md with results
- 📦 Publish — Creates
setup.py, installs to PATH
Step 4 (Optional): Refine and Improve the CLI
After the initial build, you can iteratively refine the CLI to expand coverage and add missing capabilities:
# Broad refinement — agent analyzes gaps across all capabilities
/cli-anything:refine ./gimp
# Focused refinement — target a specific functionality area
/cli-anything:refine ./gimp "I want more CLIs on image batch processing and filters"The refine command performs gap analysis between the software's full capabilities and current CLI coverage, then implements new commands, tests, and documentation for the identified gaps. You can run it multiple times to steadily expand coverage — each run is incremental and non-destructive.
Alternative: Manual Installation
If you prefer not to use the marketplace:
# Clone the repo
git clone https://github.com/HKUDS/CLI-Anything.git
# Copy plugin to Claude Code plugins directory
cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything
# Reload plugins
/reload-pluginsStep 1: Install the Commands
Copy the CLI-Anything commands and HARNESS.md to your OpenCode commands directory:
# Clone the repo
git clone https://github.com/HKUDS/CLI-Anything.git
# Global install (available in all projects)
cp CLI-Anything/opencode-commands/*.md ~/.config/opencode/commands/
cp CLI-Anything/cli-anything-plugin/HARNESS.md ~/.config/opencode/commands/
# Or project-level install
cp CLI-Anything/opencode-commands/*.md .opencode/commands/
cp CLI-Anything/cli-anything-plugin/HARNESS.md .opencode/commands/Note:
HARNESS.mdis the methodology spec that all commands reference. It must be in the same directory as the commands.
This adds 5 slash commands: /cli-anything, /cli-anything-refine, /cli-anything-test, /cli-anything-validate, and /cli-anything-list.
Step 2: Build a CLI in One Command
# Generate a complete CLI for GIMP (all 7 phases)
/cli-anything ./gimp
# Build from a GitHub repo
/cli-anything https://github.com/blender/blenderThe command runs as a subtask and follows the same 7-phase methodology as Claude Code.
Step 3 (Optional): Refine and Improve the CLI
# Broad refinement — agent analyzes gaps across all capabilities
/cli-anything-refine ./gimp
# Focused refinement — target a specific functionality area
/cli-anything-refine ./gimp "batch processing and filters"Step 1: Register the Plugin
git clone https://github.com/HKUDS/CLI-Anything.git
bash CLI-Anything/qoder-plugin/setup-qodercli.shThis registers the cli-anything plugin in ~/.qoder.json. Start a new Qodercli session after registration.
Step 2: Use CLI-Anything from Qodercli
/cli-anything:cli-anything ./gimp
/cli-anything:refine ./gimp "batch processing and filters"
/cli-anything:validate ./gimpStep 1: Install the Skill
Run the bundled installer:
# Clone the repo
git clone https://github.com/HKUDS/CLI-Anything.git
# Install the skill
bash CLI-Anything/codex-skill/scripts/install.shOn Windows PowerShell, use:
.\CLI-Anything\codex-skill\scripts\install.ps1This installs the skill to $CODEX_HOME/skills/cli-anything (or ~/.codex/skills/cli-anything if CODEX_HOME is unset).
Restart Codex after installation so it is discovered.
Step 2: Use CLI-Anything from Codex
Describe the task in natural language, for example:
Use CLI-Anything to build a harness for ./gimp
Use CLI-Anything to refine ./shotcut for picture-in-picture workflows
Use CLI-Anything to validate ./libreoffice
The Codex skill adapts the same methodology used by the Claude Code plugin and OpenCode commands, while keeping the generated Python harness format unchanged.
CLI-Anything is designed to be platform-agnostic. Support for more AI coding agents is planned:
- Codex — available via the bundled skill in
codex-skill/ - Cursor — coming soon
- Windsurf — coming soon
- Your favorite tool — contributions welcome! See the
opencode-commands/directory for a reference implementation.
Regardless of which platform you used to build it, the generated CLI works the same way:
# Install to PATH
cd gimp/agent-harness && pip install -e .
# Use from anywhere
cli-anything-gimp --help
cli-anything-gimp project new --width 1920 --height 1080 -o poster.json
cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"
# Enter interactive REPL
cli-anything-gimp• 🌐 Universal Access - Every software becomes instantly agent-controllable through structured CLI.
• 🔗 Seamless Integration - Agents control any application without APIs, GUI, rebuilding or complex wrappers.
• 🚀 Future-Ready Ecosystem - Transform human-designed software into agent-native tools with one command.
| Category | How to be Agent-native | Notable Examples |
|---|---|---|
| 📂 GitHub Repositories | Transform any open-source project into agent-controllable tools through automatic CLI generation | VSCodium, WordPress, Calibre, Zotero, Joplin, Logseq, Penpot, Super Productivity |
| 🤖 AI/ML Platforms | Automate model training, inference pipelines, and hyperparameter tuning through structured commands | Stable Diffusion WebUI, ComfyUI, InvokeAI, Text-generation-webui, Open WebUI, Fooocus, Kohya_ss, AnythingLLM, SillyTavern |
| 📊 Data & Analytics | Enable programmatic data processing, visualization, and statistical analysis workflows | JupyterLab, Apache Superset, Metabase, Redash, DBeaver, KNIME, Orange, OpenSearch Dashboards, Lightdash |
| 💻 Development Tools | Streamline code editing, building, testing, and deployment processes via command interfaces | Jenkins, Gitea, Hoppscotch, Portainer, pgAdmin, SonarQube, ArgoCD, OpenLens, Insomnia, Beekeeper Studio |
| 🎨 Creative & Media | Control content creation, editing, and rendering workflows programmatically | Blender, GIMP, OBS Studio, Audacity, Krita, Kdenlive, Shotcut, Inkscape, Darktable, LMMS, Ardour |
| 🔬 Scientific Computing | Automate research workflows, simulations, and complex calculations | ImageJ, FreeCAD, QGIS, ParaView, Gephi, LibreCAD, Stellarium, KiCad, JASP, Jamovi |
| 🏢 Enterprise & Office | Convert business applications and productivity tools into agent-accessible systems | NextCloud, GitLab, Grafana, Mattermost, LibreOffice, AppFlowy, NocoDB, Odoo (Community), Plane, ERPNext |
| 📞 Communication & Collaboration | Automate meeting scheduling, participant management, recording retrieval, and reporting through structured CLI | Zoom, Jitsi Meet, BigBlueButton, Mattermost |
| 📐 Diagramming & Visualization | Create and manipulate diagrams, flowcharts, architecture diagrams, and visual documentation programmatically | Draw.io (diagrams.net), Mermaid, PlantUML, Excalidraw, yEd |
| ✨ AI Content Generation | Generate professional deliverables (slides, docs, diagrams, websites, research reports) through AI-powered cloud APIs | AnyGen, Gamma, Beautiful.ai, Tome |
AI agents are great at reasoning but terrible at using real professional software. Current solutions are fragile UI automation, limited APIs, or dumbed-down reimplementations that miss 90% of functionality.
CLI-Anything's Solution: Transform any professional software into agent-native tools without losing capabilities.
| Current Pain Point | CLI-Anything's Fix |
|---|---|
| 🤖 "AI can't use real tools" | Direct integration with actual software backends (Blender, LibreOffice, FFmpeg) — full professional capabilities, zero compromises |
| 💸 "UI automation breaks constantly" | No screenshots, no clicking, no RPA fragility. Pure command-line reliability with structured interfaces |
| 📊 "Agents need structured data" | Built-in JSON output for seamless agent consumption + human-readable formats for debugging |
| 🔧 "Custom integrations are expensive" | One Claude plugin auto-generates CLIs for ANY codebase through proven 7-phase pipeline |
| ⚡ "Prototype vs Production gap" | 1,508+ tests with real software validation. Battle-tested across 11 major applications |
|
Professional or everyday — just throw the codebase at |
Tired of juggling fragmented web service APIs? Feed the docs or SDK manuscripts to |
CLI-Anything can flat-out replace GUI-based agent approaches — no more screenshots, no brittle pixel-clicking. But here's the fun part: once you |
|
From codebase analysis to PyPI publishing — the plugin handles architecture design, implementation, test planning, test writing, and documentation completely automatically. |
Direct calls to real applications for actual rendering. LibreOffice generates PDFs, Blender renders 3D scenes, Audacity processes audio via sox. Zero compromises, Zero toy implementations. |
|
Persistent project state with undo/redo capabilities, plus unified REPL interface (ReplSkin) that delivers consistent interactive experience across all CLIs. |
Simple pip install -e . puts cli-anything- directly on PATH. Agents discover tools via standard which commands. No setup, no wrappers. |
|
Multi-layered validation: unit tests with synthetic data, end-to-end tests with real files and software, plus CLI subprocess verification of installed commands. |
All CLIs organized under cli_anything.* namespace — conflict-free, pip-installable, with consistent naming: cli-anything-gimp, cli-anything-blender, etc. |
CLI-Anything works on any software with a codebase — no domain restrictions or architectural limitations.
Tested across 11 diverse, complex applications spanning creative, productivity, communication, diagramming, and AI content generation domains previously inaccessible to AI agents.
From creative workflows (image editing, 3D modeling, vector graphics) to production tools (audio, office, live streaming, video editing).
Each application received complete, production-ready CLI interfaces — not demos, but comprehensive tool access preserving full capabilities.
| Software | Domain | CLI Command | Backend | Tests |
|---|---|---|---|---|
| 🎨 GIMP | Image Editing | cli-anything-gimp |
Pillow + GEGL/Script-Fu | ✅ 107 |
| 🧊 Blender | 3D Modeling & Rendering | cli-anything-blender |
bpy (Python scripting) | ✅ 208 |
| ✏️ Inkscape | Vector Graphics | cli-anything-inkscape |
Direct SVG/XML manipulation | ✅ 202 |
| 🎵 Audacity | Audio Production | cli-anything-audacity |
Python wave + sox | ✅ 161 |
| 📄 LibreOffice | Office Suite (Writer, Calc, Impress) | cli-anything-libreoffice |
ODF generation + headless LO | ✅ 158 |
| 📹 OBS Studio | Live Streaming & Recording | cli-anything-obs-studio |
JSON scene + obs-websocket | ✅ 153 |
| 🎞️ Kdenlive | Video Editing | cli-anything-kdenlive |
MLT XML + melt renderer | ✅ 155 |
| 🎬 Shotcut | Video Editing | cli-anything-shotcut |
Direct MLT XML + melt | ✅ 154 |
| 📞 Zoom | Video Conferencing | cli-anything-zoom |
Zoom REST API (OAuth2) | ✅ 22 |
| 📐 Draw.io | Diagramming | cli-anything-drawio |
mxGraph XML + draw.io CLI | ✅ 138 |
| ✨ AnyGen | AI Content Generation | cli-anything-anygen |
AnyGen REST API (anygen.io) | ✅ 50 |
| Total | ✅ 1,508 | |||
100% pass rate across all 1,508 tests — 1,073 unit tests + 435 end-to-end tests.
Each CLI harness undergoes rigorous multi-layered testing to ensure production reliability:
| Layer | What it tests | Example |
|---|---|---|
| Unit tests | Every core function in isolation with synthetic data | test_core.py — project creation, layer ops, filter params |
| E2E tests (native) | Project file generation pipeline | Valid ODF ZIP structure, correct MLT XML, SVG well-formedness |
| E2E tests (true backend) | Real software invocation + output verification | LibreOffice → PDF with %PDF- magic bytes, Blender → rendered PNG |
| CLI subprocess tests | Installed command via subprocess.run |
cli-anything-gimp --json project new → valid JSON output |
================================ Test Summary ================================
gimp 107 passed ✅ (64 unit + 43 e2e)
blender 208 passed ✅ (150 unit + 58 e2e)
inkscape 202 passed ✅ (148 unit + 54 e2e)
audacity 161 passed ✅ (107 unit + 54 e2e)
libreoffice 158 passed ✅ (89 unit + 69 e2e)
obs-studio 153 passed ✅ (116 unit + 37 e2e)
kdenlive 155 passed ✅ (111 unit + 44 e2e)
shotcut 154 passed ✅ (110 unit + 44 e2e)
zoom 22 passed ✅ (22 unit + 0 e2e)
drawio 138 passed ✅ (116 unit + 22 e2e)
anygen 50 passed ✅ (40 unit + 10 e2e)
──────────────────────────────────────────────────────────────────────────────
TOTAL 1,508 passed ✅ 100% pass rate
-
Authentic Software Integration — The CLI generates valid project files (ODF, MLT XML, SVG) and delegates to real applications for rendering. We build structured interfaces TO software, not replacements.
-
Flexible Interaction Models — Every CLI operates in dual modes: stateful REPL for interactive agent sessions + subcommand interface for scripting/pipelines. Run bare command → enter REPL mode.
-
Consistent User Experience — All generated CLIs share unified REPL interface (repl_skin.py) with branded banners, styled prompts, command history, progress indicators, and standardized formatting.
-
Agent-Native Design — Built-in --json flag on every command delivers structured data for machine consumption, while human-readable tables serve interactive use. Agents discover capabilities via standard --help and which commands.
-
Zero Compromise Dependencies — Real software is a hard requirement — no fallbacks, no graceful degradation. Tests fail (not skip) when backends are missing, ensuring authentic functionality.
cli-anything/
├── 📄 README.md # You are here
├── 📁 assets/ # Images and media
│ ├── icon.png # Project icon
│ └── teaser.png # Teaser figure
│
├── 🔌 cli-anything-plugin/ # The Claude Code plugin
│ ├── HARNESS.md # Methodology SOP (source of truth)
│ ├── README.md # Plugin documentation
│ ├── QUICKSTART.md # 5-minute getting started
│ ├── PUBLISHING.md # Distribution guide
│ ├── repl_skin.py # Unified REPL interface
│ ├── commands/ # Plugin command definitions
│ │ ├── cli-anything.md # Main build command
│ │ ├── refine.md # Expand existing harness coverage
│ │ ├── test.md # Test runner
│ │ └── validate.md # Standards validation
│ └── scripts/
│ └── setup-cli-anything.sh # Setup script
│
├── 🤖 codex-skill/ # Codex skill entry point
├── 🎨 gimp/agent-harness/ # GIMP CLI (107 tests)
├── 🧊 blender/agent-harness/ # Blender CLI (208 tests)
├── ✏️ inkscape/agent-harness/ # Inkscape CLI (202 tests)
├── 🎵 audacity/agent-harness/ # Audacity CLI (161 tests)
├── 📄 libreoffice/agent-harness/ # LibreOffice CLI (158 tests)
├── 📹 obs-studio/agent-harness/ # OBS Studio CLI (153 tests)
├── 🎞️ kdenlive/agent-harness/ # Kdenlive CLI (155 tests)
├── 🎬 shotcut/agent-harness/ # Shotcut CLI (154 tests)
├── 📞 zoom/agent-harness/ # Zoom CLI (22 tests)
├── 📐 drawio/agent-harness/ # Draw.io CLI (138 tests)
└── ✨ anygen/agent-harness/ # AnyGen CLI (50 tests)
Each agent-harness/ contains an installable Python package under cli_anything.<software>/ with Click CLI, core modules, utils (including repl_skin.py and backend wrapper), and comprehensive tests.
| Command | Description |
|---|---|
/cli-anything <software-path-or-repo> |
Build complete CLI harness — all 7 phases |
/cli-anything:refine <software-path> [focus] |
Refine an existing harness — expand coverage with gap analysis |
/cli-anything:test <software-path-or-repo> |
Run tests and update TEST.md with results |
/cli-anything:validate <software-path-or-repo> |
Validate against HARNESS.md standards |
# Build a complete CLI for GIMP from local source
/cli-anything /home/user/gimp
# Build from a GitHub repo
/cli-anything https://github.com/blender/blender
# Refine an existing harness — broad gap analysis
/cli-anything:refine /home/user/gimp
# Refine with a specific focus area
/cli-anything:refine /home/user/shotcut "vid-in-vid and picture-in-picture compositing"
# Run tests and update TEST.md
/cli-anything:test /home/user/inkscape
# Validate against HARNESS.md standards
/cli-anything:validate /home/user/audacityHere's what an agent can do with cli-anything-libreoffice:
# Create a new Writer document
$ cli-anything-libreoffice document new -o report.json --type writer
✓ Created Writer document: report.json
# Add content
$ cli-anything-libreoffice --project report.json writer add-heading -t "Q1 Report" --level 1
✓ Added heading: "Q1 Report"
$ cli-anything-libreoffice --project report.json writer add-table --rows 4 --cols 3
✓ Added 4×3 table
# Export to real PDF via LibreOffice headless
$ cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite
✓ Exported: output.pdf (42,831 bytes) via libreoffice-headless
# JSON mode for agent consumption
$ cli-anything-libreoffice --json document info --project report.json
{
"name": "Q1 Report",
"type": "writer",
"pages": 1,
"elements": 2,
"modified": true
}$ cli-anything-blender
╔══════════════════════════════════════════╗
║ cli-anything-blender v1.0.0 ║
║ Blender CLI for AI Agents ║
╚══════════════════════════════════════════╝
blender> scene new --name ProductShot
✓ Created scene: ProductShot
blender[ProductShot]> object add-mesh --type cube --location 0 0 1
✓ Added mesh: Cube at (0, 0, 1)
blender[ProductShot]*> render execute --output render.png --engine CYCLES
✓ Rendered: render.png (1920×1080, 2.3 MB) via blender --background
blender[ProductShot]> exit
Goodbye! 👋
HARNESS.md is our definitive SOP for making any software agent-accessible via automated CLI generation.
It encodes proven patterns and methodologies refined through automated generation processes.
The playbook distills key insights from successfully building all 11 diverse, production-ready harnesses.
| Lesson | Description |
|---|---|
| Use the real software | The CLI MUST call the actual application for rendering. No Pillow replacements for GIMP, no custom renderers for Blender. Generate valid project files → invoke the real backend. |
| The Rendering Gap | GUI apps apply effects at render time. If your CLI manipulates project files but uses a naive export tool, effects get silently dropped. Solution: native renderer → filter translation → render script. |
| Filter Translation | When mapping effects between formats (MLT → ffmpeg), watch for duplicate filter merging, interleaved stream ordering, parameter space differences, and unmappable effects. |
| Timecode Precision | Non-integer frame rates (29.97fps) cause cumulative rounding. Use round() not int(), integer arithmetic for display, and ±1 frame tolerance in tests. |
| Output Verification | Never trust that export worked because it exited 0. Verify: magic bytes, ZIP/OOXML structure, pixel analysis, audio RMS levels, duration checks. |
See the full methodology:
cli-anything-plugin/HARNESS.md
# Add marketplace & install (recommended)
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
# Build a CLI for any software with a codebase
/cli-anything <software-name># Install any generated CLI
cd <software>/agent-harness
pip install -e .
# Verify
which cli-anything-<software>
# Use
cli-anything-<software> --help
cli-anything-<software> # enters REPL
cli-anything-<software> --json <command> # JSON output for agents# Run tests for a specific CLI
cd <software>/agent-harness
python3 -m pytest cli_anything/<software>/tests/ -v
# Force-installed mode (recommended for validation)
CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<software>/tests/ -v -sWe welcome contributions! CLI-Anything is designed to be extensible:
- New software targets — Use the plugin to generate a CLI for any software with a codebase, then submit your harness via
cli-anything-plugin/PUBLISHING.md. - Methodology improvements — PRs to
HARNESS.mdthat encode new lessons learned - Plugin enhancements — New commands, phase improvements, better validation
- Test coverage — More E2E scenarios, edge cases, workflow tests
- Requires strong foundation models — CLI-Anything relies on frontier-class models (e.g., Claude Opus 4.6, Claude Sonnet 4.6, GPT-5.4) for reliable harness generation. Weaker or smaller models may produce incomplete or incorrect CLIs that require significant manual correction.
- Relies on available source code — The 7-phase pipeline analyzes and generates from source code. When the target software only provides compiled binaries that require decompilation, harness quality and coverage will degrade substantially.
- May require iterative refinement — A single
/cli-anythingrun may not fully cover all capabilities. Running/refineone or more times is often needed to push the CLI's performance and coverage to production quality.
- Support for more application categories (CAD, DAW, IDE, EDA, scientific tools)
- Benchmark suite for agent task completion rates
- Community-contributed CLI harnesses for internal/custom software
- Integration with additional agent frameworks beyond Claude Code
- Support packaging APIs for closed-source software and web services into CLIs
- Produce SKILL.md alongside the CLI for agent skill discovery and orchestration
| Document | Description |
|---|---|
cli-anything-plugin/HARNESS.md |
The methodology SOP — single source of truth |
cli-anything-plugin/README.md |
Plugin documentation — commands, options, phases |
cli-anything-plugin/QUICKSTART.md |
5-minute getting started guide |
cli-anything-plugin/PUBLISHING.md |
Distribution and publishing guide |
Each generated harness also includes:
<SOFTWARE>.md— Architecture SOP specific to that applicationtests/TEST.md— Test plan and results documentation
If CLI-Anything helps make your software Agent-native, give us a star! ⭐
MIT License — free to use, modify, and distribute.


