commit 01488030bd5958db8e307d7ed1070e76a62cf255 Author: yuh Date: Sun Mar 8 21:58:43 2026 +0800 first commit diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 000000000..7424271e5 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "cli-anything", + "owner": { + "name": "cli-anything contributors" + }, + "metadata": { + "description": "Build powerful, stateful CLI interfaces for any GUI application using the cli-anything harness methodology." + }, + "plugins": [ + { + "name": "cli-anything", + "source": "./cli-anything-plugin", + "description": "Build powerful, stateful CLI interfaces for any GUI application using the cli-anything harness methodology.", + "author": { + "name": "cli-anything contributors" + }, + "category": "development" + } + ] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..a26c6091a --- /dev/null +++ b/.gitignore @@ -0,0 +1,75 @@ +# ============================================================ +# Only track: +# - cli-anything-plugin/** +# - */agent-harness/** (under each software dir) +# - .gitignore +# Everything else is ignored. +# ============================================================ + +# Step 1: Ignore everything at the root +/* + +# Step 2: Allow .gitignore, README, assets, and marketplace +!.gitignore +!/README.md +!/assets/ +!/.claude-plugin/ + +# Step 3: Allow cli-anything-plugin entirely +!/cli-anything-plugin/ + +# Step 4: Allow each software dir (top level only) +!/gimp/ +!/blender/ +!/inkscape/ +!/audacity/ +!/libreoffice/ +!/obs-studio/ +!/kdenlive/ +!/shotcut/ + +# Step 5: Inside each software dir, ignore everything (including dotfiles) +/gimp/* +/gimp/.* +/blender/* +/blender/.* +/inkscape/* +/inkscape/.* +/audacity/* +/audacity/.* +/libreoffice/* +/libreoffice/.* +/obs-studio/* +/obs-studio/.* +/kdenlive/* +/kdenlive/.* +/shotcut/* +/shotcut/.* + +# Step 6: ...except agent-harness/ +!/gimp/agent-harness/ +!/blender/agent-harness/ +!/inkscape/agent-harness/ +!/audacity/agent-harness/ +!/libreoffice/agent-harness/ +!/obs-studio/agent-harness/ +!/kdenlive/agent-harness/ +!/shotcut/agent-harness/ + +# Step 7: Ignore build artifacts within allowed dirs +**/__pycache__/ +**/*.egg-info/ +**/*.pyc +**/dist/ +**/build/ +**/.pytest_cache/ +**/*.egg +**/*.mp4 +**/*.wav +**/*.blend +**/*.xcf +**/*.mlt + +# Step 8: But allow assets images +!/assets/*.png +!/assets/*.jpg diff --git a/README.md b/README.md new file mode 100644 index 000000000..e4b42f273 --- /dev/null +++ b/README.md @@ -0,0 +1,618 @@ +
+CLI-Anything +
+ +

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

+

+ +

+ Quick Start + Demos + Tests + License +

+ +

+ Python + Click + Pytest + Coverage + Output + Feishu +WeChat +

+ +**One Command Line**: Make any software agent-ready for OpenClaw, nanobot, Cursor, Claude Code, etc. + +
+ +

+ CLI-Anything Teaser +

+ +--- + +## ๐Ÿค” 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 + +## ๐Ÿ’ก 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 | React, Linux, VSCode, TensorFlow, WordPress, Django, Vue, Angular | +| **๐Ÿค– AI/ML Platforms** | Automate model training, inference pipelines, and hyperparameter tuning through structured commands | Stable Diffusion WebUI, Transformers, PyTorch, TensorFlow, LangChain, OpenAI Gym, MLflow | +| **๐Ÿ“Š Data & Analytics** | Enable programmatic data processing, visualization, and statistical analysis workflows | Pandas, Jupyter, Apache Superset, Tableau, Power BI, R Studio, Matplotlib, Plotly | +| **๐Ÿ’ป Development Tools** | Streamline code editing, building, testing, and deployment processes via command interfaces | VSCode, Docker, Kubernetes, Jenkins, GitHub Actions, Webpack, Babel, ESLint | +| **๐ŸŽจ Creative & Media** | Control content creation, editing, and rendering workflows programmatically | Blender, GIMP, OBS Studio, Audacity, DaVinci Resolve, After Effects, Photoshop, Premiere Pro | +| **๐Ÿ”ฌ Scientific Computing** | Automate research workflows, simulations, and complex calculations | ImageJ, FreeCAD, QGIS, MATLAB, Mathematica, OriginPro, AutoCAD, SolidWorks | +| **๐Ÿข Enterprise & Office** | Convert business applications and productivity tools into agent-accessible systems | NextCloud, GitLab, Grafana, Slack, Microsoft Office, Google Workspace, Notion, Airtable | + +--- + +## 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,298+ tests with real software validation. Battle-tested across 8 major applications | + +--- + +## ๐Ÿš€ 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. + +```bash +# Add the CLI-Anything marketplace +/plugin marketplace add HKUDS/CLI-Anything +``` + +### Step 2: Install the Plugin + +```bash +# 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 + +```bash +# Generate a complete CLI for GIMP (all 7 phases) +/cli-anything gimp +``` + +This runs the full pipeline: +1. ๐Ÿ” **Analyze** โ€” Scans source code, maps GUI actions to APIs +2. ๐Ÿ“ **Design** โ€” Architects command groups, state model, output formats +3. ๐Ÿ”จ **Implement** โ€” Builds Click CLI with REPL, JSON output, undo/redo +4. ๐Ÿ“‹ **Plan Tests** โ€” Creates TEST.md with unit + E2E test plans +5. ๐Ÿงช **Write Tests** โ€” Implements comprehensive test suite +6. ๐Ÿ“ **Document** โ€” Updates TEST.md with results +7. ๐Ÿ“ฆ **Publish** โ€” Creates `setup.py`, installs to PATH + +### Step 4: Use the CLI + +```bash +# 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: + +```bash +# 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-plugins +``` + +
+ +--- + +## โœจ โš™๏ธ How CLI-Anything Works + + + + + + + + + + + + + + +
+ +### ๐Ÿ—๏ธ Fully Automated 7-Phase Pipeline +From codebase analysis to PyPI publishing โ€” the plugin handles architecture design, implementation, test planning, test writing, and documentation completely automatically. + + + +### ๐ŸŽฏ Authentic Software Integration +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**. + +
+ +### ๐Ÿ” Smart Session Management +Persistent project state with undo/redo capabilities, plus unified REPL interface (ReplSkin) that delivers consistent interactive experience across all CLIs. + + + +### ๐Ÿ“ฆ Zero-Config Installation +Simple pip install -e . puts cli-anything- directly on PATH. Agents discover tools via standard which commands. No setup, no wrappers. + +
+ +### ๐Ÿงช Production-Grade Testing +Multi-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 Architecture +All 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 8 diverse, complex open-source applications spanning creative and productivity 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SoftwareDomainCLI CommandBackendTests
๐ŸŽจ GIMPImage Editingcli-anything-gimpPillow + GEGL/Script-Fuโœ… 107
๐ŸงŠ Blender3D Modeling & Renderingcli-anything-blenderbpy (Python scripting)โœ… 208
โœ๏ธ InkscapeVector Graphicscli-anything-inkscapeDirect SVG/XML manipulationโœ… 202
๐ŸŽต AudacityAudio Productioncli-anything-audacityPython wave + soxโœ… 161
๐Ÿ“„ LibreOfficeOffice Suite (Writer, Calc, Impress)cli-anything-libreofficeODF generation + headless LOโœ… 158
๐Ÿ“น OBS StudioLive Streaming & Recordingcli-anything-obs-studioJSON scene + obs-websocketโœ… 153
๐ŸŽž๏ธ KdenliveVideo Editingcli-anything-kdenliveMLT XML + melt rendererโœ… 155
๐ŸŽฌ ShotcutVideo Editingcli-anything-shotcutDirect MLT XML + meltโœ… 154
Totalโœ… 1,298
+ +> **100% pass rate** across all 1,298 tests โ€” 895 unit tests + 403 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) +โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +TOTAL 1,298 passed โœ… 100% pass rate +``` + +--- + +## ๐Ÿ—๏ธ CLI-Anything's Architecture + +

+ CLI-Anything Architecture +

+ +### ๐ŸŽฏ Core Design Principles + +1. **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**. + +2. **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**. + +3. **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. + +4. **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**. + +5. **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 +โ”‚ โ”‚ โ”œโ”€โ”€ build.md # Phase-by-phase control +โ”‚ โ”‚ โ”œโ”€โ”€ 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) +``` + +Each `agent-harness/` contains an installable Python package under `cli_anything./` with Click CLI, core modules, utils (including `repl_skin.py` and backend wrapper), and comprehensive tests. + +--- + +## ๐ŸŽฏ Plugin Commands + +| Command | Description | +|---------|-------------| +| `/cli-anything ` | Build complete CLI harness โ€” all 7 phases | +| `/cli-anything:refine [focus]` | Refine an existing harness โ€” expand coverage with gap analysis | +| `/cli-anything:test ` | Run tests and update TEST.md with results | +| `/cli-anything:validate ` | Validate against HARNESS.md standards | + +### Examples + +```bash +# 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/audacity +``` + +--- + +## ๐ŸŽฎ Demo: Using a Generated CLI + +Here's what an agent can do with `cli-anything-libreoffice`: + +```bash +# 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 +} +``` + +### 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`](cli-anything-plugin/HARNESS.md) + +--- + +## ๐Ÿ“ฆ Installation & Usage + +### For Plugin Users (Claude Code) + +```bash +# 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 +``` + +### For Generated CLIs + +```bash +# Install any generated CLI +cd /agent-harness +pip install -e . + +# Verify +which cli-anything- + +# Use +cli-anything- --help +cli-anything- # enters REPL +cli-anything- --json # JSON output for agents +``` + +### Running Tests + +```bash +# Run tests for a specific CLI +cd /agent-harness +python3 -m pytest cli_anything//tests/ -v + +# Force-installed mode (recommended for validation) +CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything//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`](cli-anything-plugin/PUBLISHING.md). +- **Methodology improvements** โ€” PRs to `HARNESS.md` that 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 + +--- + +## ๐Ÿ“– Documentation + +| Document | Description | +|----------|-------------| +| [`cli-anything-plugin/HARNESS.md`](cli-anything-plugin/HARNESS.md) | The methodology SOP โ€” single source of truth | +| [`cli-anything-plugin/README.md`](cli-anything-plugin/README.md) | Plugin documentation โ€” commands, options, phases | +| [`cli-anything-plugin/QUICKSTART.md`](cli-anything-plugin/QUICKSTART.md) | 5-minute getting started guide | +| [`cli-anything-plugin/PUBLISHING.md`](cli-anything-plugin/PUBLISHING.md) | Distribution and publishing guide | + +Each generated harness also includes: +- `.md` โ€” Architecture SOP specific to that application +- `tests/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 | 8 professional software demos | 1,298 passing tests + +
+ +CLI-Anything Icon + +
+ +

+ Thanks for visiting โœจ CLI-Anything!

+ Views +

diff --git a/assets/.gitkeep b/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/assets/architecture.png b/assets/architecture.png new file mode 100644 index 000000000..6a525a8f8 Binary files /dev/null and b/assets/architecture.png differ diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 000000000..57442f9a0 Binary files /dev/null and b/assets/icon.png differ diff --git a/assets/teaser.png b/assets/teaser.png new file mode 100644 index 000000000..37f923acc Binary files /dev/null and b/assets/teaser.png differ diff --git a/audacity/agent-harness/AUDACITY.md b/audacity/agent-harness/AUDACITY.md new file mode 100644 index 000000000..176129281 --- /dev/null +++ b/audacity/agent-harness/AUDACITY.md @@ -0,0 +1,167 @@ +# Audacity: Project-Specific Analysis & SOP + +## Architecture Summary + +Audacity is a multi-platform audio editor built on PortAudio for I/O and +libsndfile for file format support. Its native `.aup3` format is a SQLite +database containing audio data and project metadata. + +``` ++-------------------------------------------------+ +| Audacity GUI | +| +----------+ +----------+ +----------------+ | +| | Timeline | | Mixer | | Effects | | +| | (wxGTK) | | (wxGTK) | | (wxGTK) | | +| +----+-----+ +----+-----+ +------+---------+ | +| | | | | +| +----+-------------+--------------+----------+ | +| | Internal Audio Engine | | +| | Block-based audio storage, real-time | | +| | processing, effect chain, undo history | | +| +--------------------+-----------------------+ | ++------------------------+------------------------+ + | + +--------------+--------------+ + | PortAudio (I/O) | libsndfile | + | SoX resampler | LAME (MP3) | + +---------------------------------+ +``` + +## CLI Strategy: Python stdlib + JSON Project + +Unlike applications with XML project files, Audacity's .aup3 is SQLite, +making direct manipulation complex. Our strategy: + +1. **JSON project format** tracks all state (tracks, clips, effects, labels) +2. **Python stdlib** (`wave`, `struct`, `math`) handles WAV I/O and audio processing +3. **pydub** (optional) for advanced format support (MP3, FLAC, OGG) + +### Why Not .aup3 Directly? + +The .aup3 format is a SQLite database with: +- Binary audio block storage (custom compression) +- Complex relational schema for tracks, clips, envelopes +- Undo history embedded in the database +- Project metadata interleaved with audio data + +Parsing and writing this format requires deep knowledge of Audacity internals. +Instead, we use a JSON manifest and render to standard audio formats. + +## The Project Format (.audacity-cli.json) + +```json +{ + "version": "1.0", + "name": "my_podcast", + "settings": { + "sample_rate": 44100, + "bit_depth": 16, + "channels": 2 + }, + "tracks": [...], + "labels": [...], + "selection": {"start": 0.0, "end": 0.0}, + "metadata": {"title": "", "artist": "", "album": "", ...} +} +``` + +## Command Map: GUI Action -> CLI Command + +| GUI Action | CLI Command | +|-----------|-------------| +| File -> New | `project new --name "My Project"` | +| File -> Open | `project open ` | +| File -> Save | `project save [path]` | +| File -> Export Audio | `export render [--preset wav]` | +| Tracks -> Add New -> Audio | `track add --name "Track"` | +| Track -> Remove | `track remove ` | +| Track -> Mute/Solo | `track set mute true` | +| Track -> Volume | `track set volume 0.8` | +| Track -> Pan | `track set pan -0.5` | +| File -> Import -> Audio | `clip add ` | +| Edit -> Remove | `clip remove ` | +| Edit -> Clip Boundaries -> Split | `clip split