Command-line harnesses for Adobe desktop applications. AI agents and shell scripts can open projects, inspect timelines, manipulate documents, and trigger exports — without touching a mouse.
Built on the CLI-Anything methodology by HKUDS: a pattern for wrapping stateful GUI applications behind a local HTTP or IPC bridge so scripts and AI agents can drive them programmatically.
Not affiliated with Adobe Inc. This project is an independent, community-built tool. Adobe, Acrobat, and Premiere Pro are trademarks of Adobe Inc. Use of those names here is purely descriptive.
| Package | Application | Bridge |
|---|---|---|
cli-anything-premierepro |
Adobe Premiere Pro 2025 | CEP panel → ExtendScript |
cli-anything-acrobat |
Adobe Acrobat DC | Acrobat JS via osascript |
cli-anything-illustrator |
Adobe Illustrator 2026 | osascript do javascript + #include |
Drive Premiere Pro from scripts or agents: open projects, inspect sequences and timelines, manage markers, queue AME exports, and capture timeline frames for visual verification.
- macOS (Ventura / Sonoma)
- Adobe Premiere Pro 2025 (version 25.x)
- Python 3.10+
# 1. Enable unsigned CEP extensions (one-time)
defaults write com.adobe.CSXS.11 PlayerDebugMode 1
defaults write com.adobe.CSXS.12 PlayerDebugMode 1
# 2. Symlink the CEP extension (one-time)
ln -s "$(pwd)/premiere-pro/agent-harness/cli_anything/premierepro/cep" \
~/Library/Application\ Support/Adobe/CEP/extensions/com.cli-anything.premierepro
# 3. Install the Python package
pip install -e premiere-pro/agent-harness/
# 4. Relaunch Premiere Pro — the HTTP bridge starts automatically on port 7788
# 5. Verify
cli-anything-premierepro ping# Project
cli-anything-premierepro project info
cli-anything-premierepro project open /path/to/cut.prproj
# Sequences
cli-anything-premierepro sequence list
cli-anything-premierepro sequence activate "Main Cut"
# Timeline
cli-anything-premierepro timeline clips
cli-anything-premierepro timeline clips --sequence "B-Roll"
# Markers
cli-anything-premierepro markers list
cli-anything-premierepro markers add 30.5 --name "Chapter 2"
# Export (requires Adobe Media Encoder)
cli-anything-premierepro export render output.mp4 --preset h264-1080p
cli-anything-premierepro export presets
# Agent vision — capture what Premiere is showing
cli-anything-premierepro vision screenshot -o /tmp/frame.png
cli-anything-premierepro vision frame 30.5 # scrub + capture
cli-anything-premierepro vision burst 0 60 5 -d /tmp/frames/
cli-anything-premierepro vision compare /tmp/a.png /tmp/b.png
# Offline (no Premiere required)
cli-anything-premierepro project parse /path/to/cut.prproj
cli-anything-premierepro media /path/to/clip.mp4Use --json anywhere for machine-readable output:
cli-anything-premierepro --json sequence list
# [{"name": "Main Cut", "width": 1920, "height": 1080, "fps": 23.976, ...}]Run cli-anything-premierepro with no arguments to enter the interactive REPL.
Drive Illustrator 2026 from scripts or agents: inspect documents, enumerate layers and artboards, list page items and text frames, query swatches, and export artwork as PNG, JPEG, SVG, or PDF — no CEP extension required.
- macOS (Ventura / Sonoma)
- Adobe Illustrator 2026 (version 30.x)
- Python 3.10+
pipx install -e illustrator/agent-harness/# Health check
cli-anything-illustrator ping
# Document
cli-anything-illustrator document info
cli-anything-illustrator document open /path/to/file.ai
# Layers
cli-anything-illustrator layer list
cli-anything-illustrator layer visible "Artwork" off
# Artboards
cli-anything-illustrator artboard list
cli-anything-illustrator artboard set-active 1
# Objects & selection
cli-anything-illustrator object list --layer "Artwork"
cli-anything-illustrator object selection
# Text frames
cli-anything-illustrator text list
cli-anything-illustrator text set 0 "New headline"
# Swatches
cli-anything-illustrator swatch list
# Export
cli-anything-illustrator export png /tmp/out.png --resolution 300
cli-anything-illustrator export jpeg /tmp/out.jpg --artboard 0 --quality 9
cli-anything-illustrator export svg /tmp/out.svg
cli-anything-illustrator export pdf /tmp/out.pdfUse --json anywhere for machine-readable output. Run cli-anything-illustrator with no arguments for the REPL.
Perform PDF operations from scripts or agents: format conversion, page manipulation, merge, split, and metadata — using Acrobat's native engine.
- macOS
- Adobe Acrobat DC
- Python 3.10+
- Active Acrobat Pro subscription (format conversion only; all other ops work without one)
pip install -e acrobat/agent-harness/# PDF info
cli-anything-acrobat info document.pdf
# Format conversion (requires Acrobat Pro)
cli-anything-acrobat export to report.pdf report.docx
cli-anything-acrobat export to report.pdf report.png
# Page manipulation
cli-anything-acrobat pages delete document.pdf 1,3-5 -o out.pdf
cli-anything-acrobat pages extract document.pdf 2-4 -o chapter.pdf
cli-anything-acrobat pages rotate document.pdf 90 -o rotated.pdf
# Merge / split
cli-anything-acrobat merge a.pdf b.pdf c.pdf -o combined.pdf
cli-anything-acrobat split report.pdf --pages-per-chunk 5 -d chunks/
# Text extraction (no Acrobat required)
cli-anything-acrobat text document.pdf
# Metadata
cli-anything-acrobat metadata get document.pdf
cli-anything-acrobat metadata set document.pdf --title "Annual Report" -o out.pdfUse --json for machine-readable output. Run cli-anything-acrobat with no arguments for the REPL.
Attribution: The cli-anything pattern was created by HKUDS — see CLI-Anything: Making ALL Software Agent-Native. Browse and install community CLIs via the CLI Hub (
pip install cli-anything-hub).
Each harness follows the same structure:
<app>/agent-harness/
setup.py # pip-installable; namespace: cli_anything.<app>
<APP>.md # Developer SOP — architecture, gotchas, API quirks
cli_anything/<app>/
<app>_cli.py # Click CLI entry point
core/ # Business logic (pure functions, testable without running the app)
utils/
cep_backend.py OR backend.py # App-facing transport layer
tests/
test_core.py # Unit tests (no app required)
test_full_e2e.py # E2E tests (app must be running)
skills/SKILL.md # Agent skill descriptor (packaged copy)
skills/
cli-anything-<app>/SKILL.md # Canonical skill descriptor
The IPC strategy differs per app:
- Premiere Pro: CEP panel running Node.js HTTP server →
csInterface.evalScript()→ ExtendScript - Acrobat: Python →
osascript→ AppleScriptdo script→ Acrobat JavaScript API
Core modules are always pure Python and testable without the application running. The transport layer is the only component that requires the host app.
Elastic License 2.0 — free to use and modify; may not be offered as a hosted/managed service.
See CONTRIBUTING.md.