Communitygithub.com

MacroCLI CLI

Convierte flujos de trabajo GUI en macros invocables por CLI para que los agentes de IA automaticen tareas sin tocar la interfaz gráfica directamente.

¿Qué es MacroCLI CLI?

MacroCLI CLI es una herramienta que permite a los agentes de IA (como Claude Code, Cursor o Codex) ejecutar flujos de trabajo GUI complejos a través de una interfaz de línea de comandos estable, sin necesidad de interactuar directamente con la interfaz gráfica. El sistema convierte macros predefinidas (definidas en YAML) en comandos CLI parametrizados, y selecciona automáticamente el backend más adecuado para cada paso: API nativa, transformación de archivos, control semántico de UI o reproducción de macros GUI precompiladas. Es útil para automatizar tareas repetitivas, como exportación de archivos, transformación de configuraciones JSON o manipulación de archivos, ofreciendo una salida JSON estructurada ideal para consumo programático. Soporta sesiones, validación de parámetros en seco (dry-run) y backends múltiples, todo accesible desde un único comando.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HKUDS/CLI-Anything/tree/main/skills/cli-anything-macrocli

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace MacroCLI CLI?

Qué Es

MacroCLI convierte flujos de trabajo GUI valiosos en macros parametrizadas y invocables desde la CLI. Los agentes nunca tocan la GUI directamente — llaman a macros a través de esta CLI estable, y el runtime enruta la ejecución al mejor backend disponible (plugin/API nativa, transformación de archivos, control semántico de UI, o reproducción de macro GUI precompilada).

Instalación

cd macrocli/agent-harness
pip install -e .

Requisitos: Python 3.10+, PyYAML, click, prompt-toolkit.

Inicio Rápido (para agentes)

# 1. Ver qué macros están disponibles
cli-anything-macrocli macro list --json

# 2. Inspeccionar los parámetros de una macro
cli-anything-macrocli macro info export_file --json

# 3. Ejecución en seco para verificar parámetros sin efectos secundarios
cli-anything-macrocli --dry-run macro run export_file \
    --param output=/tmp/test.txt --json

# 4. Ejecutar una macro
cli-anything-macrocli macro run export_file \
    --param output=/tmp/result.txt --json

# 5. Ver qué backends están disponibles
cli-anything-macrocli backends --json

Referencia de Comandos

Banderas Globales

BanderaDescripción
--jsonSalida JSON legible por máquina en stdout
--dry-runSimular todos los pasos, omitir efectos secundarios
--session-id <id>Reanudar o crear una sesión con nombre

Grupo macro

ComandoDescripción
macro listListar todas las macros disponibles
macro info <name>Mostrar esquema de la macro (parámetros, pasos, condiciones)
macro run <name> --param k=vEjecutar una macro
macro dry-run <name> --param k=vSimular sin efectos secundarios
macro validate [name]Validación estructural
macro define <name>Crear esqueleto de una nueva macro YAML

Grupo session

ComandoDescripción
session statusMostrar estadísticas de la sesión
session historyMostrar historial de ejecuciones recientes
session savePersistir sesión en disco
session listListar todas las sesiones guardadas

backends

cli-anything-macrocli backends --json
# Muestra: native_api, file_transform, semantic_ui, gui_macro, recovery
# e indica si cada uno está disponible en el entorno actual.

Parámetros de Macros

Pasa parámetros con --param clave=valor. Repite para múltiples:

cli-anything-macrocli macro run transform_json \
    --param file=/ruta/a/datos.json \
    --param key=settings.theme \
    --param value=dark \
    --json

Formato de Salida (--json)

Todos los comandos emiten JSON cuando se establece --json:

{
  "success": true,
  "macro_name": "export_file",
  "output": {
    "exported_file": "/tmp/resultado.txt"
  },
  "error": "",
  "telemetry": {
    "duration_ms": 312,
    "steps_total": 2,
    "steps_run": 2,
    "backends_used": ["native_api"],
    "dry_run": false
  }
}

En caso de fallo ("success": false), lee el campo "error" para conocer el motivo. El código de salida es 1 en caso de fallo.

Backends de Ejecución

Los backends se seleccionan automáticamente según la definición del paso de la macro:

BackendActivado porCaso de uso
native_apibackend: native_apiSubproceso / comando shell
file_transformbackend: file_transformEdición de archivos XML, JSON, texto
semantic_uibackend: semantic_uiAccesibilidad / atajos de teclado
gui_macrobackend: gui_macroReproducción de coordenadas precompiladas
recoverybackend: recoveryOrquestación de reintentos / fallback

Escribir Macros

Las macros son archivos YAML en cli_anything/macrocli/macro_definitions/. Crea un esqueleto con:

cli-anything-macrocli macro define my_macro --output \
    cli_anything/macrocli/macro_definitions/examples/my_macro.yaml

Esquema mínimo:

name: my_macro
version: "1.0"
description: Qué hace esta macro.

parameters:
  output:
    type: string
    required: true
    description: Dónde escribir los resultados.
    example: /tmp/resultado.txt

preconditions:
  - file_exists: /ruta/a/entrada

steps:
  - id: paso1
    backend: native_api
    action: run_command
    params:
      command: [my-app, --export, "${output}"]
    timeout_ms: 30000
    on_failure: fail  # o: skip, continue

postconditions:
  - file_exists: ${output}
  - file_size_gt: [${output}, 100]

outputs:
  - name: archivo_resultado
    path: ${output}

agent_hints:
  danger_level: safe  # safe | moderate | dangerous
  side_effects: [creates_file]
  reversible: true

Reglas de Uso para Agentes

  1. Siempre usa --json para salida programática.
  2. Usa --dry-run para validar parámetros antes de ejecutar macros con efectos secundarios.
  3. Verifica el campo success — no asumas éxito solo por el código de salida.
  4. Lee el campo error cuando success sea falso — explica qué falló.
  5. Usa macro info <nombre> para descubrir parámetros antes de llamar a macro run.
  6. Usa rutas absolutas para todos los parámetros de archivo.

Ejemplo de Flujo de Trabajo

# Paso 1: ¿Qué hay disponible?
cli-anything-macrocli macro list --json

# Paso 2: ¿Qué parámetros necesita transform_json?
cli-anything-macrocli macro info transform_json --json

# Paso 3: Probar de forma segura
cli-anything-macrocli --dry-run macro run transform_json \
    --param file=/tmp/config.json \
    --param key=theme \
    --param value=dark --json

# Paso 4: Ejecutar realmente
cli-anything-macrocli macro run transform_json \
    --param file=/tmp/config.json \
    --param key=theme \
    --param value=dark --json

Versión

1.0.0

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

cli-anything-adguardhome

>-

cli-anything-anygen

>-

cli-anything-audacity

>-

cli-anything-blender

>-

cli-anything-browser

Browser automation CLI using DOMShell MCP server. Maps Chrome

cli-anything-calibre

>-

cli-anything-ccswitch

CLI interface for CC Switch — manage AI coding tool configurations from the terminal

cli-anything-chromadb

>-

cli-anything-cloudanalyzer

Command-line interface for CloudAnalyzer — Agent-friendly harness for CloudAnalyzer, a QA platform for mapping, localization, and perception outputs. Supports 27 commands across 8 groups: point cloud evaluation, trajectory evaluation, ground segmentation QA, config-driven quality gates, baseline evolution, processing, visualization, and interactive REPL.

cli-anything-cloudcompare

Command-line interface for CloudCompare — Agent-friendly harness for CloudCompare, the open-source 3D point cloud and mesh processing software. Supports 41 commands across 9 groups: project management, session control, point cloud operations (subsample, filter, segment, analyze), mesh operations, distance computation (C2C, C2M), transformations (ICP, matrix), export (LAS/LAZ/PLY/PCD/OBJ/STL/E57), and interactive REPL.

cli-anything-comfyui

>-

cli-anything-dify-workflow

Wrapper for the Dify workflow DSL CLI. Create, inspect, validate, edit, and export Dify workflow files through a CLI-Anything harness.

cli-anything-drawio

>-

cli-anything-eez-studio

Use EEZ Studio from the command line: inspect and modify native .eez-project files, edit LVGL screens/widgets, manage SCPI commands, and invoke the real EEZ Studio backend for LVGL builds.

cli-anything-eth2-quickstart

>-

cli-anything-exa

>-

cli-anything-firefly-iii

Firefly III CLI - Personal finance management via CLI-Anything

cli-anything-freecad

Complete CLI harness for FreeCAD parametric 3D CAD modeler (258 commands). Covers ALL workbenches: Part (29 primitives + boolean + mirror + loft + sweep), Sketcher (26 cmds: geometry + constraints + editing), PartDesign (38 cmds: pad/pocket/groove/fillet/chamfer/patterns/hole/datum), Assembly (11 cmds), Mesh (16 cmds), TechDraw (15 cmds: views + dimensions + PDF/SVG), Draft (33 cmds: 2D shapes + arrays + transforms), FEM (12 cmds), CAM/CNC (10 cmds), Surface (6 cmds), Spreadsheet (7 cmds), Import (13 formats), Export (17 formats), Measure (12 cmds), Materials (21 presets). Headless FreeCAD export to STEP/IGES/STL/OBJ/DXF/PDF/glTF/3MF.

cli-anything-gimp

>-

cli-anything-godot

>-

Skills relacionados