DEV Community

Christopher Taylor
Christopher Taylor

Posted on

Auto-CLI: giving coding agents a real CLI for apps that don't have an API

The problem

Coding agents are good at calling CLIs and APIs. A lot of the software people use every day has neither, especially Windows desktop apps. An agent can often see the pieces: a local database, a couple of IPC hooks, the window's UI tree. But each session it rediscovers the app, guesses at commands, and leaves you to check whether anything worked.

Auto-CLI does that discovery once and turns it into a CLI harness the agent can rely on, with evidence of what was actually verified.

The pipeline

pipeline

target app ──► REA probes ──► findings ──► surface classifier ──► scaffold ──► validator
Enter fullscreen mode Exit fullscreen mode
  • REA reverse-engineers an app's automation surface.
  • Auto-CLI classifies the findings into a harness plan and generates a skeleton in CLI-Anything's layout.
  • verify proves findings against the live app. drive exercises IPC channels. complete generates commands from readable DB schemas and verified endpoints. gui drives Windows apps via UI Automation.
  • auto chains it all: recon → scaffold → verify → optional IPC drive → complete → optional GUI capture → validate.

Worked example 1: a SQLite "library" app

The README quickstart creates a two-row books table, then runs:

python -m auto_cli auto --target library-demo --name library --out out --repl-skin repl_skin.py
pip install --editable ./out/library/agent-harness
cli-anything-library --json books list
cli-anything-library --json books search Dune
cli-anything-library export books books.csv --format csv
Enter fullscreen mode Exit fullscreen mode

You should see result: OK, a search hit for Dune, and a CSV with both books. complete generated a books command group (list/get/search/add/update/delete), database tests and a SKILL.md. Reads use a read-only connection. Writes require --yes and take a timestamped backup first.

Worked example 2: real Windows Notepad

demo
Auto-CLI generates a harness from recon and the live UI. The generated commands then write a release checklist into Notepad, read it back with ui-read-text, and export the text to release-notes.txt. The export doesn't use Notepad's Save command. The video is edited (setup waits shortened) and was tested on classic English Notepad. Modern or localized builds expose different controls, so inspect ui-tree first.

New in v0.2.0: a full WordPad document round trip

For native English WordPad, the generated CLI now has open, read, replace, append, bold, save-as and workflow commands. The workflow command edits a private copy of an RTF document, saves it through WordPad's real Save As dialog, reopens the result, and checks the text, the heading's bold formatting and the file's integrity. It refuses to overwrite files, refuses to run without confirmation, and rejects malformed RTF or ambiguous markers. The steps are in the Windows and WordPad guide.

Generated GUI commands also now find the app by its executable and window class rather than a captured process ID, so they keep working after the app restarts, and they refuse to act if more than one window matches.

There's also an optional handoff to Codex or Claude Code for richer commands and workflows (guide). In one real GUI-only handoff, the generated harness passed 18 tests. That's one run, not a benchmark.

Honesty section

  • Still early (v0.2.0). Live GUI testing has covered Windows Notepad, Calculator and WordPad only. The WordPad test needs an interactive Windows desktop with English WordPad, so hosted CI doesn't run it. Other editors need their own document operations.
  • The test suite is at 278 passed, 4 skipped. Hosted CI runs it on Windows, Linux and macOS with Python 3.10 and 3.13, plus a package install check and real REA, sqlite-utils and Datasette integrations.
  • It doesn't implement every workflow. Auth, POST bodies, MCP and scripting surfaces need manual implementation and review.
  • It doesn't launch arbitrary desktop apps by default.
  • No agent benchmarks or success-rate claims. The verification report tells you what was checked, per finding.
  • Independent project, not affiliated with REA or CLI-Anything. Credit to both.

Try it

Windows with Git, Python 3.10+ and Node 22.19+/24.11+/26+:

npm i -g rea-agents
pip install "git+https://github.com/Northernator/Auto-CLI.git@v0.2.0" pytest click prompt-toolkit
python -m auto_cli doctor
Enter fullscreen mode Exit fullscreen mode

Then paste the README's full quickstart. Repo: https://github.com/Northernator/Auto-CLI (MIT).
Feedback I'd love: are the generated commands usable as-is, do the verification reports tell you what you need, and which Windows apps should I try next?

Top comments (0)