← ClaudeAtlas

cli-anythinglisted

Build a command-line harness that lets an agent drive GUI-only software — Blender, LibreOffice, GIMP, Inkscape, Audacity, QGIS, video editors, CAD tools — by generating the app's native project format and handing it to the real binary for rendering. Use when a task needs software that has no usable CLI, when an agent must produce a real artifact (render, export, conversion) from a desktop application, or when asked to wrap, automate, or headlessly drive a GUI program. Not for software that already ships an adequate CLI.
dmae97/omk · ★ 142 · AI & Automation · score 77
Install: claude install-skill dmae97/omk
# CLI-Anything Turn GUI-only software into something an agent can drive, without a display or a mouse. ## The rule that makes it work **Build the data → call the real software → verify the output.** The harness is an interface *to* the application, never a replacement for it. It generates the app's native project file, then invokes the actual binary to render. This one rule decides whether the harness is useful or a liability: - The application is a **hard dependency**. If it is not installed, fail with install instructions. Never fall back to a Python library that approximates the render. - A fallback renderer produces plausible output that is wrong in ways nobody checks. That is worse than an error, because the agent reports success. ## When to reach for this Use it when the target has no adequate CLI and the task needs a real artifact: a render, an export, a format conversion, a scripted edit. Skip it when the software already ships a CLI that covers the task. `ffmpeg`, `pandoc`, and `ImageMagick` are the harness you would have written. ## How to build one **1. Find the engine.** GUI apps separate presentation from logic. Locate the core library and any CLI the backend already ships — `melt` for Shotcut, `sox` for Audacity, `libreoffice --headless`, `blender --background --python`. Those are the building blocks, not things to reimplement. **2. Read the native format.** The project file is the data layer: MLT XML, ODF ZIP, SVG, `.blend` driven by a bpy scrip