Communitygithub.com

MacroCLI CLI

O MacroCLI converte fluxos de trabalho GUI valiosos em macros parametrizadas, invocáveis por CLI. Agentes nunca tocam na interface gráfica diretamente — eles chamam macros por meio desta CLI estável.

O que é MacroCLI CLI?

O MacroCLI é uma ferramenta para agentes de IA que converte fluxos de trabalho GUI complexos em macros de linha de comando (CLI) invocáveis e parametrizadas. Ele permite que agentes executem tarefas que tradicionalmente exigiriam interação com a interface gráfica (como exportar arquivos, transformar dados ou configurar ferramentas) sem nunca tocar no GUI diretamente. O sistema seleciona automaticamente o backend mais adequado para cada etapa da macro entre opções como API nativa, transformação de arquivos, controle de interface semântico ou reprodução de macros GUI pré-compiladas. O MacroCLI suporta execução segura com dry-run, saída JSON para consumo programático, e uma sintaxe YAML clara para definir macros. É compatível com qualquer agente que possa executar comandos de terminal (como Claude Code, Cursor, Codex, etc.) e requer Python 3.10+.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que MacroCLI CLI faz?

O Que É

O MacroCLI converte fluxos de trabalho GUI valiosos em macros parametrizadas, invocáveis por CLI. Agentes nunca tocam no GUI diretamente — eles chamam macros por meio desta CLI estável, e o runtime roteia a execução para o melhor backend disponível (plugin/API nativa, transformação de arquivos, controle de interface semântico, ou reprodução de macro GUI pré-compilada).

Instalação

cd macrocli/agent-harness
pip install -e .

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

Início Rápido (para agentes)

# 1. Veja quais macros estão disponíveis
cli-anything-macrocli macro list --json

# 2. Inspecione os parâmetros de uma macro
cli-anything-macrocli macro info export_file --json

# 3. Dry-run para verificar parâmetros sem efeitos colaterais
cli-anything-macrocli --dry-run macro run export_file \
    --param output=/tmp/test.txt --json

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

# 5. Veja quais backends estão disponíveis
cli-anything-macrocli backends --json

Referência de Comandos

Flags Globais

FlagDescrição
--jsonSaída JSON legível por máquina no stdout
--dry-runSimula todas as etapas, ignora efeitos colaterais
--session-id <id>Retoma ou cria uma sessão nomeada

Grupo macro

ComandoDescrição
macro listLista todas as macros disponíveis
macro info <name>Exibe o esquema da macro (parâmetros, etapas, condições)
macro run <name> --param k=vExecuta uma macro
macro dry-run <name> --param k=vSimula sem efeitos colaterais
macro validate [name]Validação estrutural
macro define <name>Cria um esqueleto para um novo arquivo YAML de macro

Grupo session

ComandoDescrição
session statusExibe estatísticas da sessão
session historyExibe histórico recente de execuções
session savePersiste a sessão no disco
session listLista todas as sessões salvas

backends

cli-anything-macrocli backends --json
# Mostra: native_api, file_transform, semantic_ui, gui_macro, recovery
# e se cada um está disponível no ambiente atual.

Parâmetros de Macro

Passe parâmetros com --param chave=valor. Repita para múltiplos:

cli-anything-macrocli macro run transform_json \
    --param file=/caminho/para/dados.json \
    --param key=config.tema \
    --param value=escuro \
    --json

Formato de Saída (--json)

Todos os comandos produzem saída JSON quando --json é definido:

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

Em caso de falha ("success": false), leia o campo "error" para a razão. O código de saída é 1 em caso de falha.

Backends de Execução

Os backends são selecionados automaticamente com base na definição da etapa da macro:

BackendAcionado porCaso de uso
native_apibackend: native_apiSubprocesso / comando shell
file_transformbackend: file_transformEdição de XML, JSON, arquivos de texto
semantic_uibackend: semantic_uiAcessibilidade / atalhos de teclado
gui_macrobackend: gui_macroReprodução de coordenadas pré-compiladas
recoverybackend: recoveryOrquestração de repetição / fallback

Escrevendo Macros

As macros são arquivos YAML em cli_anything/macrocli/macro_definitions/. Crie um esqueleto com:

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

Esquema mínimo:

name: minha_macro
version: "1.0"
description: O que esta macro faz.

parameters:
  output:
    type: string
    required: true
    description: Onde escrever os resultados.
    example: /tmp/result.txt

preconditions:
  - file_exists: /caminho/para/entrada

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

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

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

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

Regras de Uso para Agentes

  1. Sempre use --json para saída programática.
  2. Use --dry-run para validar parâmetros antes de executar macros com efeitos colaterais.
  3. Verifique o campo success — não presuma sucesso apenas pelo código de saída.
  4. Leia o campo error quando success for false — ele explica o que falhou.
  5. Use macro info <nome> para descobrir parâmetros antes de chamar macro run.
  6. Use caminhos absolutos para todos os parâmetros de arquivo.

Exemplo de Fluxo de Trabalho

# Etapa 1: O que está disponível?
cli-anything-macrocli macro list --json

# Etapa 2: Quais parâmetros o transform_json precisa?
cli-anything-macrocli macro info transform_json --json

# Etapa 3: Teste com segurança
cli-anything-macrocli --dry-run macro run transform_json \
    --param file=/tmp/config.json \
    --param key=tema \
    --param value=escuro --json

# Etapa 4: Execute de verdade
cli-anything-macrocli macro run transform_json \
    --param file=/tmp/config.json \
    --param key=tema \
    --param value=escuro --json

Versão

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

>-

Habilidades Relacionadas