CLI-Anything es un plugin de código abierto para agentes de codificación de IA (principalmente Claude Code) que genera una interfaz de línea de comandos completa para cualquier software con una base de código. Apúntelo a GIMP, Blender, LibreOffice o cualquier otra aplicación, y analizará el código fuente y producirá una CLI estructurada que su agente de IA podrá usar para controlar ese software programáticamente.
El problema: los agentes de IA no pueden usar software con interfaz gráfica
La pila de software actual se divide en dos mundos que apenas se comunican entre sí.
Por un lado, tiene servicios modernos API-first: almacenamiento en la nube, procesadores de pagos, proveedores de correo electrónico, plataformas de análisis. Estos hablan HTTP. Un agente de IA puede llamarlos directamente sin necesidad de herramientas especiales.
Por otro lado, tiene el software del que dependen la mayoría de los flujos de trabajo profesionales: GIMP para edición de imágenes, Blender para trabajo 3D, LibreOffice para documentos, Audacity para audio. Estos fueron creados para que los humanos hagan clic. Exponen interfaces gráficas, no APIs estructuradas.
Cuando intenta conectar un agente de IA a esta segunda categoría de software, las opciones son limitadas. Puede escribir envoltorios personalizados a mano, lo que lleva semanas y se rompe cuando el software se actualiza. Puede probar herramientas de Automatización Robótica de Procesos (RPA), que automatizan las interacciones de la GUI a través de capturas de pantalla y clics de píxeles. Pero la RPA es frágil. Se rompe cuando cambian los diseños de las ventanas, cuando se actualizan los temas, cuando cambia la escala de visualización.
CLI-Anything adopta un enfoque diferente: en lugar de simular a un humano haciendo clic en los menús, analiza el código fuente del software para encontrar las APIs subyacentes que la GUI ya está llamando. Luego genera una CLI real que llama a esas APIs directamente.
Su agente de IA no necesita "ver" la pantalla. Emite comandos estructurados. El software hace el trabajo.
Qué hace CLI-Anything
CLI-Anything es un plugin de código abierto creado por HKUDS (Laboratorio de Ciencia de Datos de la Universidad de Hong Kong). Su creador, Chao Huang, lo expresó así en el anuncio del proyecto:
"El software de hoy sirve a los humanos. Los usuarios de mañana serán agentes. CLI-Anything: tendiendo un puente entre los agentes de IA y el software del mundo. Una línea de comandos para hacer que cualquier software esté listo para un agente."
En el momento de escribir esto, el proyecto tiene más de 6.100 estrellas en GitHub.
El plugin funciona dentro de Claude Code (y experimentalmente en Codex y OpenCode). Se apunta a la base de código de un software y ejecuta un pipeline automatizado de 7 fases:
- Analizar - Escanea el código fuente, mapea las acciones de la GUI a las APIs subyacentes y produce un documento de procedimiento operativo estándar específico del software
- Diseñar - Arquitecta grupos de comandos, modelos de estado y formatos de salida
- Implementar - Construye una CLI de Python basada en Click con modo REPL, soporte de salida
--jsony deshacer/rehacer - Planificar pruebas - Crea un archivo
TEST.mdcon planes de prueba unitarias y de extremo a extremo - Escribir pruebas - Escribe
test_core.py(pruebas unitarias con datos sintéticos) ytest_full_e2e.py(de extremo a extremo con archivos reales) - Documentar - Ejecuta pytest y adjunta los resultados completos a
TEST.md - Publicar - Crea
setup.py, configura los puntos de entrada del script de consola, instala en PATH
Al final de la fase 7, tendrá una CLI funcional instalada en su sistema. Su agente de IA podrá descubrirla con which cli-anything-gimp, inspeccionarla con cli-anything-gimp --help y empezar a emitir comandos.
Todas las CLIs generadas siguen un diseño consistente: salida de tabla legible por humanos por defecto, salida JSON legible por máquina con la bandera --json, estado de proyecto persistente, deshacer/rehacer y un modo REPL interactivo. Esta consistencia es importante: su agente no necesita aprender una interfaz diferente para cada herramienta.
Instalando CLI-Anything
CLI-Anything es un plugin basado en Python. No es un paquete npm. Lo instala en su agente de codificación de IA, y las CLIs generadas son paquetes de Python instalados con pip install -e ..
Requisitos:
- Python 3.10+
- El software de destino instalado en su sistema
- Un agente de codificación de IA compatible (Claude Code es el principal; Codex y OpenCode son experimentales)
Claude Code (método principal)
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
Esto instala el plugin y hace que los comandos de barra diagonal /cli-anything estén disponibles en su sesión de Claude Code.
OpenCode
Clone el repositorio, luego copie los archivos de comando y HARNESS.md a ~/.config/opencode/commands/. Esto añade cinco comandos de barra: /cli-anything, /cli-anything-refine, /cli-anything-test, /cli-anything-validate y /cli-anything-list.
Codex
bash CLI-Anything/codex-skill/scripts/install.sh
Qodercli
bash CLI-Anything/qoder-plugin/setup-qodercli.sh
Nota para Windows
El plugin requiere Git para Windows (que incluye bash y cygpath) o WSL. El shell nativo de Windows no es compatible. Si ve cygpath: command not found, instale Git para Windows e inténtelo de nuevo.
Instalando la CLI generada
Después de que el plugin genere una CLI para su software, instálela en su PATH:
cd <software>/agent-harness
pip install -e .
Esto utiliza el modo de instalación editable (-e), lo que significa que sus cambios en el código fuente generado persisten sin necesidad de reinstalar.
Generando su primera CLI
Una vez que el plugin está instalado, la generación es un solo comando. Aquí está el flujo de trabajo para GIMP:
En Claude Code:
/cli-anything ./gimp
O desde un repositorio de GitHub:
/cli-anything https://github.com/blender/blender
El plugin inicia el pipeline de 7 fases. Esto toma unos minutos dependiendo del tamaño de la base de código y de cuántas superficies de API exponga el software.
Durante la fase 1 (Analizar), el plugin lee el código fuente y construye un mapa de las acciones de la GUI a sus llamadas API subyacentes. Para un editor de imágenes como GIMP, esto significa encontrar todas las funciones que crean capas, aplican filtros, exportan archivos y gestionan proyectos. Produce un documento SOP (Procedimiento Operativo Estándar) específico del software (GIMP.md) que describe el conjunto completo de operaciones.
Durante la fase 3 (Implementar), construye la CLI usando el framework Click de Python. Cada comando soporta salida --json. Cada operación con estado (abrir un archivo, crear un proyecto) almacena el estado en un archivo JSON. La CLI incluye un REPL interactivo con prompts coloreados e historial persistente.
La estructura de directorios generada se ve así:
gimp/
agent-harness/
GIMP.md # Documento SOP del software
setup.py
cli_anything/ # Paquete de espacio de nombres (sin __init__.py - PEP 420)
gimp/
README.md
gimp_cli.py # Punto de entrada principal de la CLI
core/ # Módulos de proyecto, sesión, exportación
utils/ # Estilo REPL, ayudantes
tests/
test_core.py
test_full_e2e.py
TEST.md
Todas las CLIs generadas residen bajo el espacio de nombres cli_anything.* (por ejemplo, cli_anything.gimp). Esto evita conflictos de nombres si genera CLIs para múltiples aplicaciones.
Usando la CLI generada
Después de ejecutar pip install -e . en el directorio agent-harness, tiene una nueva CLI disponible:
cli-anything-gimp --help
Esto muestra todos los grupos de comandos disponibles y sus subcomandos. La nomenclatura es consistente: cada herramienta genera una CLI llamada cli-anything-<software>.
Salida legible por humanos (por defecto)
# Iniciar un nuevo proyecto
cli-anything-gimp project new --width 1920 --height 1080
# Listar capas
cli-anything-gimp layer list
# Añadir una capa
cli-anything-gimp layer add --name "Fondo" --type solid --color "#ffffff"
# Aplicar un filtro
cli-anything-gimp filter apply --name "gaussian-blur" --radius 3
# Exportar
cli-anything-gimp export save --format png --output ./output.png
Salida JSON para agentes de IA
Cuando su agente de IA llama a la CLI, usa --json para obtener una salida legible por máquina:
cli-anything-gimp --json project new --width 1920 --height 1080
# Devuelve: {"status": "ok", "project_id": "proj_abc123", "width": 1920, "height": 1080}
cli-anything-gimp --json layer add -n "Fondo"
# Devuelve: {"status": "ok", "layer_id": "layer_001", "name": "Fondo"}
La salida JSON es consistente en todos los comandos: status, campos específicos de la operación y detalles de error cuando algo sale mal.
Modo REPL interactivo
Para sesiones extendidas, inicie el REPL:
cli-anything-gimp
Esto lo lleva a un shell interactivo con prompts coloreados, autocompletado y historial persistente. Útil cuando está construyendo un flujo de trabajo y quiere probar comandos interactivamente antes de escribirlos en un script.
Deshacer/Rehacer
Las operaciones que modifican el estado admiten una pila de deshacer de 50 niveles:
cli-anything-gimp undo
cli-anything-gimp redo
Refinando y probando su CLI
Las CLIs generadas no siempre están completas en la primera pasada. El comando /cli-anything:refine realiza un análisis de brechas y añade los comandos que faltan.
Refinamiento general
/cli-anything:refine /home/user/gimp
Esto escanea la CLI existente contra la superficie de la API del software, identifica las operaciones que no están cubiertas y añade nuevos comandos para las brechas.
Refinamiento enfocado
/cli-anything:refine /home/user/blender "sistemas de partículas y simulación física"
Cuando sabe qué área necesita más cobertura, pase una descripción de enfoque. El plugin se dirige a esa parte de la base de código en lugar de volver a analizar todo.
Ejecutando pruebas
/cli-anything:test /home/user/gimp
Esto ejecuta las suites de pruebas y actualiza TEST.md con los resultados. El proyecto informa de más de 1.508 pruebas superadas en 11 aplicaciones con una tasa de aprobación del 100%.
Validación
/cli-anything:validate /home/user/gimp
Comprueba el arnés de la CLI contra la especificación HARNESS.md para confirmar que cumple todos los requisitos estructurales.
Listando las CLIs disponibles
/cli-anything:list
/cli-anything:list --json # Salida legible por máquina
/cli-anything:list --path /home # Buscar en un directorio específico
Casos de uso en el mundo real
CLI-Anything se ha demostrado en 11 aplicaciones. Así es como cada categoría se mapea a flujos de trabajo reales.
Pipelines de procesamiento de imágenes con GIMP
Un agente de IA puede procesar un lote de imágenes de productos: redimensionar a dimensiones estándar, aplicar una marca de agua consistente, exportar en múltiples formatos. Cada paso es un comando CLI estructurado. El agente puede manejar cientos de imágenes sin ninguna interacción humana.
cli-anything-gimp project open --file producto.jpg
cli-anything-gimp layer add --name "Marca de Agua" --type image --source watermark.png
cli-anything-gimp layer position --name "Marca de Agua" --x 10 --y 10
cli-anything-gimp export save --format webp --output producto-final.webp
Generación de documentos con LibreOffice
LibreOffice genera PDFs reales. Un agente puede crear facturas, informes o contratos a partir de plantillas, rellenar datos dinámicos y exportar a PDF, todo desde un script.
cli-anything-libreoffice document open --template plantilla-factura.ods
cli-anything-libreoffice cell set --address "B5" --value "Acme Corp"
cli-anything-libreoffice cell set --address "C10" --value "1500.00"
cli-anything-libreoffice export pdf --output factura-2026-001.pdf
Renderizado 3D con Blender
Los renderizados de Blender toman tiempo, pero son programables. Un agente puede poner en cola trabajos de renderizado, configurar parámetros de escena y gestionar la salida sin la GUI:
cli-anything-blender scene open --file escena-producto.blend
cli-anything-blender render set --samples 256 --output /renders/producto
cli-anything-blender render start --format png
Automatización de streaming con OBS Studio
OBS es una herramienta de transmisión. Con CLI-Anything, puede programar transiciones de escena, gestión de fuentes y controles de grabación:
cli-anything-obs scene set --name "Cámara Principal"
cli-anything-obs recording start
cli-anything-obs scene set --name "Compartir Pantalla"
cli-anything-obs recording stop --output sesion.mp4
Integración CI/CD
Cualquiera de estos puede integrarse en un pipeline de CI/CD. Una acción de GitHub que construye un renderizado de Blender en cada commit, o un flujo de trabajo que genera notas de lanzamiento en PDF desde una plantilla de LibreOffice, ambos se vuelven sencillos.
Construyendo flujos de trabajo de agente con Apidog
CLI-Anything maneja software local. Pero la mayoría de los flujos de trabajo de agente en producción también necesitan llamar a APIs externas: subir la imagen procesada a una CDN, enviar el PDF generado a un sistema de gestión de documentos, enviar el video renderizado a una plataforma de revisión.
Apidog se encarga de esa parte. Es un cliente API gratuito para probar, documentar y automatizar llamadas a API REST.
Aquí hay un ejemplo concreto: está construyendo un agente que procesa imágenes de productos con GIMP y las sube a una API de almacenamiento en la nube. CLI-Anything le proporciona los comandos de GIMP. Apidog le permite probar la API de almacenamiento antes de escribir cualquier código de aplicación.
En Apidog, usted:
- Configuraría un entorno con sus credenciales de API almacenadas como variables
- Probaría el endpoint de carga con un archivo de ejemplo para confirmar el formato de la solicitud
- Ejecutaría aserciones en la respuesta para verificar que la URL del archivo se devuelva correctamente
- Exportaría la solicitud de trabajo como un comando curl o un fragmento de código para insertar en su script de agente
Esto ahorra el ciclo de depuración en el que escribe código, lo ejecuta, obtiene un error críptico e intenta averiguar si el problema está en sus comandos de GIMP o en su llamada a la API. Sabe que la API funciona antes de integrarla.
Apidog también soporta suites de pruebas automatizadas. Una vez que su flujo de trabajo está funcionando, puede añadir aserciones de prueba que se ejecuten en cada ejecución para detectar regresiones.
Limitaciones a tener en cuenta
El soporte para Windows requiere Git Bash o WSL
Las CLIs generadas están basadas en Python y dependen del manejo de rutas estilo bash. En Windows, necesita Git para Windows (que incluye bash y cygpath) o WSL. El shell nativo de PowerShell no es compatible.
El software de destino debe estar instalado
CLI-Anything no incluye el software que envuelve. GIMP, Blender, LibreOffice y otras herramientas deben estar instaladas en la misma máquina donde ejecute la CLI generada. La CLI llama directamente a los backends de la aplicación real.
Salida solo en Python
Todas las CLIs generadas son aplicaciones Click de Python. No hay opción para generar CLIs en otros lenguajes. Si su flujo de trabajo necesita un envoltorio CLI para Node.js o Go, tendría que construirlo por separado.
Claude Code es la plataforma estable
Claude Code es el entorno principal y más probado. La integración con Codex y OpenCode está marcada como experimental. Las características pueden funcionar de forma inconsistente fuera de Claude Code.
La calidad de la generación depende de la base de código
El plugin analiza el código fuente para encontrar las APIs detrás de las acciones de la GUI. Si la base de código está mal estructurada, muy ofuscada o fuertemente acoplada al estado de la GUI, el análisis puede omitir comandos o generar envoltorios incompletos. El paso de refinamiento ayuda, pero el software propietario complejo puede ser más difícil de envolver limpiamente.
Preguntas frecuentes
¿Funciona CLI-Anything con cualquier software?
En principio, sí. Puede generar una CLI para cualquier software con una base de código accesible. En la práctica, funciona mejor con software de código abierto donde el código fuente mapea claramente las acciones de la GUI a las llamadas API subyacentes. El proyecto lo ha demostrado en GIMP, Blender, Inkscape, Audacity, Kdenlive, Shotcut, OBS Studio, Draw.io, LibreOffice, AnyGen y Zoom.
¿Es el proyecto de uso gratuito?
Sí. CLI-Anything tiene licencia MIT y es completamente de código abierto en github.com/HKUDS/CLI-Anything.
¿Necesito saber Python para usarlo?
No. No escribe nada de Python. El plugin genera todo el código Python. Sí necesita tener Python 3.10+ instalado en su sistema para ejecutar las CLIs generadas.
¿Puedo usar la CLI generada desde mi propio código, no solo desde un agente de IA?
Sí. La CLI generada es una herramienta de línea de comandos regular. Puede llamarla desde scripts de shell, Makefiles, código Python o cualquier cosa que pueda ejecutar un subproceso.
¿Qué es el archivo HARNESS.md?
HARNESS.md es el documento de especificación que define cómo debe ser un arnés generado por CLI-Anything. Cubre la estructura de comandos, los formatos de salida, los requisitos de prueba y el empaquetado. El paso de validación comprueba su CLI generada contra esta especificación.
¿Puedo generar CLIs para herramientas internas que mi empresa ha construido?
Sí. Apunte el plugin a cualquier base de código en su sistema de archivos, incluyendo herramientas internas privadas. El plugin se ejecuta localmente y no envía su código fuente a ninguna parte.
¿Cómo se compara esto con el Protocolo de Contexto del Modelo (MCP)?
MCP conecta agentes de IA a servicios externos a través de un protocolo de servidor estandarizado. CLI-Anything genera envoltorios CLI locales para aplicaciones GUI que no tienen APIs. Abordan problemas diferentes. Puede usar ambos: MCP para servicios en la nube, CLI-Anything para software de escritorio.
