muthuishere

Aos — Development skill for Claude Code

Development community

aos — one CLI over the machine that agents drive the same way you do.

How to install Aos

This entry records only its repository, not the path inside it, so there is no exact command to give. Open muthuishere/aos and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Aos does

aos — one CLI over the machine that agents drive the same way you do. Install the agent skill, or serve it over MCP. Windows, input, screenshots, files, shell, packages, services: 95 commands on macOS, Windows and Linux, headless included.

Alternatives in Development

  • Serve — Start a local http server on 127.0.0.1:4567 to avoid file:// CORS issues 102 ★
  • Windows To Wsl2 Screenshots — Automate Windows screenshots for Claude Code workflows in WSL2. Take screenshots (Win+Shift+S, Win+PrintScreen 85 ★
  • Dispatch Sessionless Job — Fire a one-shot, sessionless coding job at a connected Agensis daemon with farm job run --agent-id --prompt 67 ★

README

aos

**One CLI over the machine that an agent drives the same way you do — on macOS, Windows, and Linux.**

Give an agent your machine: windows, input, screenshots, files, shell commands, packages, network, audio, clipboard. Two ways in, and they run the same code:

  • The agent skill (primary) — aos skill install and an agent that already has a shell knows the CLI exists, what its exit codes mean, and which commands need a screen. Nothing running, nothing to connect to, and it works over ssh into any machine that has the binary.
  • MCP (second) — aos serve mcp turns every command into a typed tool for agents that prefer that.

One surface, one code path, so what you test by hand is exactly what the agent gets.

Two things a [2026 survey of desktop-automation tools for agents](https://chatforest.com/guides/best-desktop-automation-mcp-servers/) found missing across 25+ of them, and what this is built around:

**Safety is structural, not a disclaimer.** Commands that need a screen are refused with a reason on a headless box instead of failing somewhere deep. `file delete` will not touch a filesystem root, `$HOME`, or a system directory. `serve` binds loopback. Services are namespaced so removing one can never reach a system service. Telemetry records how many arguments a command got, never what they were.

**One verb set that actually means the same thing everywhere.** `pkg install` over brew, winget, scoop, choco, apt, pacman, yay and dnf. `--app=Chrome` matching the same window on all three platforms — which took fixing Windows and working around Linux to make true.

And it runs where there is no screen at all: most of the surface needs no display, and on Linux `headless start` provides one when something does.

$ aos system info
$ aos window move Chrome --zone=1B
$ aos capture screenshot --app=Chrome --out=/tmp/shot.png
$ aos pkg install ripgrep          # brew / winget / pacman / apt, same verb
$ aos obs audit --since=24h        #