CLI-Anything cli-anything-openclaw
install
source · Clone the upstream repo
git clone https://github.com/HKUDS/CLI-Anything
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/CLI-Anything "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cli-anything-openclaw" ~/.claude/skills/hkuds-cli-anything-cli-anything-openclaw-d170e6 && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/CLI-Anything "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/cli-anything-openclaw" ~/.openclaw/skills/hkuds-cli-anything-cli-anything-openclaw-d170e6 && rm -rf "$T"
manifest:
skills/cli-anything-openclaw/SKILL.mdsource content
OpenClaw Macro System CLI
What It Is
The OpenClaw Macro System converts valuable GUI workflows into parameterized, CLI-callable macros. Agents never touch the GUI directly — they call macros through this stable CLI, and the runtime routes execution to the best available backend (native plugin/API, file transformation, semantic UI control, or precompiled GUI macro replay).
Installation
cd openclaw-skill/agent-harness pip install -e .
Requirements: Python 3.10+, PyYAML, click, prompt-toolkit.
Quick Start (for agents)
# 1. See what macros are available cli-anything-openclaw macro list --json # 2. Inspect a macro's parameters cli-anything-openclaw macro info export_file --json # 3. Dry-run to check params without side effects cli-anything-openclaw --dry-run macro run export_file \ --param output=/tmp/test.txt --json # 4. Execute a macro cli-anything-openclaw macro run export_file \ --param output=/tmp/result.txt --json # 5. See what backends are available cli-anything-openclaw backends --json
Command Reference
Global Flags
| Flag | Description |
|---|---|
| Machine-readable JSON output on stdout |
| Simulate all steps, skip side effects |
| Resume or create a named session |
macro
group
macro| Command | Description |
|---|---|
| List all available macros |
| Show macro schema (parameters, steps, conditions) |
| Execute a macro |
| Simulate without side effects |
| Structural validation |
| Scaffold a new macro YAML |
session
group
session| Command | Description |
|---|---|
| Show session statistics |
| Show recent run history |
| Persist session to disk |
| List all saved sessions |
backends
backendscli-anything-openclaw backends --json # Shows: native_api, file_transform, semantic_ui, gui_macro, recovery # and whether each is available in the current environment.
Macro Parameters
Pass parameters with
--param key=value. Repeat for multiple:
cli-anything-openclaw macro run transform_json \ --param file=/path/to/data.json \ --param key=settings.theme \ --param value=dark \ --json
Output Format (--json)
All commands output JSON when
--json is set:
{ "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 } }
On failure (
"success": false), read the "error" field for the reason.
Exit code is 1 on failure.
Execution Backends
Backends are selected automatically based on the macro step definition:
| Backend | Triggered by | Use case |
|---|---|---|
| | Subprocess / shell command |
| | XML, JSON, text file editing |
| | Accessibility / keyboard shortcuts |
| | Precompiled coordinate replay |
| | Retry / fallback orchestration |
Writing Macros
Macros are YAML files in
cli_anything/openclaw/macro_definitions/.
Scaffold one with:
cli-anything-openclaw macro define my_macro --output \ cli_anything/openclaw/macro_definitions/examples/my_macro.yaml
Minimal schema:
name: my_macro version: "1.0" description: What this macro does. parameters: output: type: string required: true description: Where to write results. example: /tmp/result.txt preconditions: - file_exists: /path/to/input steps: - id: step1 backend: native_api action: run_command params: command: [my-app, --export, "${output}"] timeout_ms: 30000 on_failure: fail # or: skip, continue postconditions: - file_exists: ${output} - file_size_gt: [${output}, 100] outputs: - name: result_file path: ${output} agent_hints: danger_level: safe # safe | moderate | dangerous side_effects: [creates_file] reversible: true
Agent Usage Rules
- Always use
for programmatic output.--json - Use
to validate params before executing side-effectful macros.--dry-run - Check
field — do not assume success from exit code alone.success - Read
field whenerror
is false — it explains what failed.success - Use
to discover params before callingmacro info <name>
.macro run - Use absolute paths for all file parameters.
Example Workflow
# Step 1: What's available? cli-anything-openclaw macro list --json # Step 2: What params does transform_json need? cli-anything-openclaw macro info transform_json --json # Step 3: Test safely cli-anything-openclaw --dry-run macro run transform_json \ --param file=/tmp/config.json \ --param key=theme \ --param value=dark --json # Step 4: Execute for real cli-anything-openclaw macro run transform_json \ --param file=/tmp/config.json \ --param key=theme \ --param value=dark --json
Version
1.0.0