Communitygithub.com

MacroCLI CLI

Convertit les flux de travail GUI en macros paramétrables appelables via CLI, permettant aux agents d'exécuter des actions GUI sans interaction directe avec l'interface graphique.

Qu'est-ce que MacroCLI CLI ?

MacroCLI est un outil CLI qui permet aux agents d'IA (comme Claude Code, Cursor ou Codex) de convertir des flux de travail GUI en macros paramétrables et réutilisables. Au lieu de manipuler directement l'interface graphique, les agents appellent ces macros via une CLI stable, et le runtime achemine l'exécution vers le meilleur backend disponible (plugin natif/API, transformation de fichiers, contrôle sémantique de l'UI ou relecture de macro GUI précompilée). Cela garantit la fiabilité, la reproductibilité et la sécurité des opérations. Pour les agents, l'utilisation est simple : `macro list` pour voir les macros disponibles, `macro info <nom>` pour inspecter les paramètres, `--dry-run` pour valider sans effets de bord, puis `macro run` pour exécuter. Toutes les commandes supportent le format JSON (`--json`) pour une sortie machine-readable. Les macros sont définies en YAML avec des préconditions, étapes et postconditions. Les backends sont sélectionnés automatiquement, et le système gère la récupération et le rollback en cas d'échec.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait MacroCLI CLI ?

Ce que c'est

MacroCLI convertit des flux de travail GUI utiles en macros paramétrables et appelables via CLI. Les agents ne touchent jamais la GUI directement — ils appellent des macros via cette CLI stable, et le runtime achemine l'exécution vers le meilleur backend disponible (plugin natif/API, transformation de fichier, contrôle sémantique de l'interface utilisateur ou relecture de macro GUI précompilée).

Installation

cd macrocli/agent-harness
pip install -e .

Prérequis : Python 3.10+, PyYAML, click, prompt-toolkit.

Démarrage rapide (pour les agents)

# 1. Voir les macros disponibles
cli-anything-macrocli macro list --json

# 2. Inspecter les paramètres d'une macro
cli-anything-macrocli macro info export_file --json

# 3. Test à blanc pour vérifier les paramètres sans effets de bord
cli-anything-macrocli --dry-run macro run export_file \
    --param output=/tmp/test.txt --json

# 4. Exécuter une macro
cli-anything-macrocli macro run export_file \
    --param output=/tmp/result.txt --json

# 5. Voir les backends disponibles
cli-anything-macrocli backends --json

Référence des commandes

Indicateurs globaux

IndicateurDescription
--jsonSortie JSON lisible par machine sur stdout
--dry-runSimule toutes les étapes, ignore les effets de bord
--session-id <id>Reprendre ou créer une session nommée

Groupe macro

CommandeDescription
macro listListe toutes les macros disponibles
macro info <nom>Affiche le schéma d'une macro (paramètres, étapes, conditions)
macro run <nom> --param clé=valeurExécute une macro
macro dry-run <nom> --param clé=valeurSimulation sans effets de bord
macro validate [nom]Validation structurelle
macro define <nom>Génère le squelette d'un fichier YAML de macro

Groupe session

CommandeDescription
session statusAffiche les statistiques de la session
session historyAffiche l'historique des exécutions récentes
session savePersiste la session sur le disque
session listListe toutes les sessions sauvegardées

backends

cli-anything-macrocli backends --json
# Affiche : native_api, file_transform, semantic_ui, gui_macro, recovery
# et indique si chacun est disponible dans l'environnement actuel.

Paramètres des macros

Passez les paramètres avec --param clé=valeur. Répétez pour plusieurs paramètres :

cli-anything-macrocli macro run transform_json \
    --param file=/chemin/vers/donnees.json \
    --param key=settings.theme \
    --param value=dark \
    --json

Format de sortie (--json)

Toutes les commandes produisent une sortie JSON lorsque --json est défini :

{
  "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
  }
}

En cas d'échec ("success": false), lisez le champ "error" pour connaître la raison. Le code de sortie est 1 en cas d'échec.

Backends d'exécution

Les backends sont sélectionnés automatiquement en fonction de la définition des étapes de la macro :

BackendDéclenché parCas d'usage
native_apibackend: native_apiSous-processus / commande shell
file_transformbackend: file_transformÉdition de fichiers XML, JSON, texte
semantic_uibackend: semantic_uiAccessibilité / raccourcis clavier
gui_macrobackend: gui_macroRelecture de coordonnées précompilées
recoverybackend: recoveryOrchestration de nouvelle tentative / repli

Écrire des macros

Les macros sont des fichiers YAML dans cli_anything/macrocli/macro_definitions/. Générez-en une avec :

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

Schéma minimal :

name: my_macro
version: "1.0"
description: Ce que fait cette macro.

parameters:
  output:
    type: string
    required: true
    description: Où écrire les résultats.
    example: /tmp/result.txt

preconditions:
  - file_exists: /chemin/vers/input

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

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

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

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

Règles d'utilisation pour les agents

  1. Utilisez toujours --json pour une sortie exploitable par programme.
  2. Utilisez --dry-run pour valider les paramètres avant d'exécuter des macros ayant des effets de bord.
  3. Vérifiez le champ success — ne supposez pas le succès uniquement d'après le code de sortie.
  4. Lisez le champ error lorsque success est faux — il explique la cause de l'échec.
  5. Utilisez macro info <nom> pour découvrir les paramètres avant d'appeler macro run.
  6. Utilisez des chemins absolus pour tous les paramètres de fichier.

Exemple de flux de travail

# Étape 1 : Qu'est-ce qui est disponible ?
cli-anything-macrocli macro list --json

# Étape 2 : De quels paramètres transform_json a-t-il besoin ?
cli-anything-macrocli macro info transform_json --json

# Étape 3 : Test sécurisé
cli-anything-macrocli --dry-run macro run transform_json \
    --param file=/tmp/config.json \
    --param key=theme \
    --param value=dark --json

# Étape 4 : Exécution réelle
cli-anything-macrocli macro run transform_json \
    --param file=/tmp/config.json \
    --param key=theme \
    --param value=dark --json

Version

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 associés