NAME
CLI-Anything — CLI-Anything: Making ALL Software Agent-Native
SYNOPSIS
pip install -eINFO
DESCRIPTION
CLI-Anything: Making ALL Software Agent-Native
README
CLI-Anything: Making ALL Software Agent-Native
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. 中文文档
🤔 Why CLI?
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
🚀 Quick Start
Prerequisites
- Claude Code (with plugin support)
- Python 3.10+
- Target software installed (e.g., GIMP, Blender, LibreOffice, or your own application)
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-Anything
Step 2: Install the Plugin
# Install the cli-anything plugin from the marketplace
/plugin install cli-anything
That's it. The plugin is now available in your Claude Code session.
Step 3: Build a CLI in One Command
# /cli-anything <software-path-or-repo>
# Generate a complete CLI for GIMP (all 7 phases)
/cli-anything ./gimp
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: Use the CLI
# 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
Alternative: Manual Installation
If you prefer not to use the marketplace:
# Clone the repo git clone https://github.com/HKUDS/CLI-Anything.gitCopy plugin to Claude Code plugins directory
cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything
Reload plugins
/reload-plugins
💡 CLI-Anything's Vision: Building Agent-Native Software
• 🌐 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.
🔧 When to Use CLI-Anything
| 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 |
| 📐 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 |
CLI-Anything's Key Features
The Agent-Software Gap
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,436+ tests with real software validation. Battle-tested across 9 major applications |
🎯 What Can You Do with CLI-Anything?
🛠️ Let Agents Take Your WorkflowsProfessional or everyday — just throw the codebase at |
🔗 Unify Scattered APIs into One CLITired of juggling fragmented web service APIs? Feed the docs or SDK manuscripts to |
🚀 Replace or Supercharge GUI AgentsCLI-Anything can flat-out replace GUI-based agent approaches — no more screenshots, no brittle pixel-clicking. But here's the fun part: once you |
✨ ⚙️ How CLI-Anything Works
🏗️ Fully Automated 7-Phase PipelineFrom codebase analysis to PyPI publishing — the plugin handles architecture design, implementation, test planning, test writing, and documentation completely automatically. |
🎯 Authentic Software IntegrationDirect calls to real applications for actual rendering. LibreOffice generates PDFs, Blender renders 3D scenes, Audacity processes audio via sox. Zero compromises, Zero toy implementations. |
🔁 Smart Session ManagementPersistent project state with undo/redo capabilities, plus unified REPL interface (ReplSkin) that delivers consistent interactive experience across all CLIs. |
📦 Zero-Config InstallationSimple pip install -e . puts cli-anything- |
🧪 Production-Grade TestingMulti-layered validation: unit tests with synthetic data, end-to-end tests with real files and software, plus CLI subprocess verification of installed commands. |
🐍 Clean Package ArchitectureAll CLIs organized under cli_anything.* namespace — conflict-free, pip-installable, with consistent naming: cli-anything-gimp, cli-anything-blender, etc. |
🎬 Demonstrations
🎯 General-Purpose
CLI-Anything works on any software with a codebase — no domain restrictions or architectural limitations.
🏭 Professional-Grade Testing
Tested across 9 diverse, complex open-source applications spanning creative, productivity, and diagramming domains previously inaccessible to AI agents.
🎨 Diverse Domain Coverage
From creative workflows (image editing, 3D modeling, vector graphics) to production tools (audio, office, live streaming, video editing).
✅ Full CLI Generation
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 |
| 📐 Draw.io | Diagramming | cli-anything-drawio | mxGraph XML + draw.io CLI | ✅ 138 |
| Total | ✅ 1,436 | |||
100% pass rate across all 1,436 tests — 1,011 unit tests + 425 end-to-end tests.
📊 Test Results
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)
drawio 138 passed ✅ (116 unit + 22 e2e)
──────────────────────────────────────────────────────────────────────────────
TOTAL 1,436 passed ✅ 100% pass rate
🏗️ CLI-Anything's Architecture
🎯 Core Design Principles
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.
📂 Project Structure
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
│
├── 🎨 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)
└── 📐 drawio/agent-harness/ # Draw.io CLI (138 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.
🎯 Plugin Commands
| 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 |
Examples
# Build a complete CLI for GIMP from local source /cli-anything /home/user/gimpBuild 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/audacity
🎮 Demo: Using a Generated CLI
Here'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.jsonAdd 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 }
REPL Mode
$ 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! 👋
📖 The Standard Playbook: HARNESS.md
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 8 diverse, production-ready harnesses.
Critical Lessons
| 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
📦 Installation & Usage
For Plugin Users (Claude Code)
# Add marketplace & install (recommended) /plugin marketplace add HKUDS/CLI-Anything /plugin install cli-anythingBuild a CLI for any software with a codebase
/cli-anything <software-name>
For Generated CLIs
# 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
Running Tests
# Run tests for a specific CLI cd <software>/agent-harness python3 -m pytest cli_anything/<software>/tests/ -vForce-installed mode (recommended for validation)
CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<software>/tests/ -v -s
🤝 Contributing
We 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
Roadmap
- 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
📖 Documentation
| 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
⭐ Star History
If CLI-Anything helps make your software Agent-native, give us a star! ⭐
📄 License
MIT License — free to use, modify, and distribute.
CLI-Anything — Make any software with a codebase Agent-native.
A methodology for the age of AI agents | 9 professional software demos | 1,436 passing tests
Thanks for visiting ✨ CLI-Anything!