macOS · Windows · Linux · one binary

Let your AI use your computer, without taking it over.

aos is a CLI and an agent skill. Install it once, and your agent can arrange your windows, open apps, click, type, show you where to click, and record what it did, on macOS, Windows and Linux.

curl -fsSL https://raw.githubusercontent.com/muthuishere/aos/main/install.sh | sh

The agent skill installs itself on first run (opt out: AOS_NO_SKILL_AUTOINSTALL=1). Then run aos doctor. More install options.

Recorded live on macOS and Windows 11 with the real binary, every clip shot with aos capture video start smart. Captions show each exact command.

Why aos

Finds buttons by name, not pixels

aos reads the accessibility tree, so an agent presses "Equals" instead of guessing coordinates from a screenshot. No vision model, no brittle pixel loop.

aos mouse click --app=Calculator --find=Equals

Works beside you, not instead of you

Input goes to the app you name, even while you keep typing somewhere else. When you should act, it draws an arrow, a label or a subtitle that your clicks pass through.

aos draw --app=Calculator --find=7 --text="Press 7"

One binary, every OS, every agent

The same commands on macOS, Windows and Linux. The skill installs itself, so Claude Code or any CLI agent knows every command on first run, and MCP is there too.

aos window move Safari --zone=1A --monitor=2

What it does

121 commands across 36 groups. Same verbs, same exit codes, on every OS.

Windows & layout: aos window move Safari --zone=1A --monitor=2

Windows & layout

List, focus, move and resize any window. Snap to halves, quarters or N-way splits on any monitor.

aos window move Safari --zone=1A --monitor=2
Find on screen: aos find --app=Calculator --text=7

Find on screen

Locate a button, menu item or text inside a window via accessibility or OCR, and get its exact center.

aos find --app=Calculator --text=7
Point for humans: aos draw --app=Calculator --find=7 --text="Press 7"

Point for humans

Draw a big click-through arrow, ring or box with a sign, so a person knows exactly where to click.

aos draw --app=Calculator --find=7 --text="Press 7"
Focus-free input: aos key type --app=TextEdit --verify "hello"

Focus-free input

Type and press key combos into a named app while you keep working in another window. --verify reads the text back.

aos key type --app=TextEdit --verify "hello"
Labels & subtitles: aos subtitle show "Saving the report…"

Labels & subtitles

Put a styled text label or a film-style caption on screen so the agent can narrate what it is doing.

aos subtitle show "Saving the report…"
Capture video: aos capture video start smart

Capture video

Record the screen and get a .final.mp4 where a smart camera has already zoomed in on every action.

aos capture video start smart
Screenshots: aos capture screenshot window --app=Safari

Screenshots

Capture a monitor, a region or one app window so the agent can see what it did.

aos capture screenshot window --app=Safari
Shell & packages: aos exec capture -- git status

Shell & packages

Run commands with JSON-captured output, and one package verb set over brew, winget, apt and more.

aos exec capture -- git status
Browser & terminal tabs: aos tab focus --url=github.com/pulls

Browser & terminal tabs

List every tab in Chrome, Safari, Edge, Ghostty, iTerm and Windows Terminal, then focus, open, type into or close one by title, URL or folder.

aos tab focus --url=github.com/pulls
From WSL and SSH: aos doctor | grep host

From WSL and SSH

Screen commands follow the screen. Inside WSL they act on the Windows desktop; over SSH they reach back to the laptop you connected from.

aos doctor | grep host
Watch for changes: aos watch window

Watch for changes

Stream one JSON line whenever the clipboard, the focused window or a file changes, so an agent can react instead of polling.

aos watch window
Clipboard: aos clipboard paste

Clipboard

Copy words or stdin to the clipboard and paste it back out, the same way on every OS.

aos clipboard paste
Launch, open & web apps: aos webapp open https://mail.google.com

Launch, open & web apps

Start an app, hand a file or URL to its default app, or open a site as its own chromeless window.

aos webapp open https://mail.google.com
Processes & services: aos service create sync --autostart -- rclone sync a b

Processes & services

List, find and kill processes, and install any command as a per-user service that survives reboots.

aos service create sync --autostart -- rclone sync a b
Files: aos file read notes.md --lines=1:20

Files

Read line ranges, append, list, copy, move and delete files with exit codes an agent can trust.

aos file read notes.md --lines=1:20
System & hardware: aos audio volume 30

System & hardware

Volume and mute, battery, power, Wi-Fi and IP, monitors, fonts, plus lock and sleep.

aos audio volume 30
Audit log: aos obs audit --since=1h --failed

Audit log

Every command this machine was asked to run is recorded, with failures and latency, and exports as OTLP.

aos obs audit --since=1h --failed
Your own commands: aos adapters example --write

Your own commands

Add adapters as small config files and they show up as aos commands, in the skill and over MCP.

aos adapters example --write
Remote screen share: aos remote share

Remote screen share

Hand this screen and its input to a browser on the LAN, and watch the agent work from your phone.

aos remote share
Headless & MCP: aos serve mcp

Headless & MCP

Give a Linux server a virtual display, or serve every command as typed MCP tools.

aos serve mcp

Beyond windows: your whole machine

Clipboard, files, processes, packages, audio, the audit log. Every one is a command with the same exit codes, and most of them need no screen at all.

aos

Watch your machine at the OS level. One JSON line per change.

$ aos watch clipboard{"event":"clipboard","seq":1,"length":7,"digest":"4b559aab5a29",…}
$ aos watch window --max=1{"event":"window","app":"Google Chrome","title":"aos docs","monitor":3,…}
$ aos watch file ./src --recursive{"event":"file","kind":"created","path":"./src/x.go","size":0,…}

One CLI for you and your agent · macOS · Windows · Linux · muthuishere.github.io/aos

aos

The clipboard, in and out of a pipeline.

$ echo "hello from aos" | aos clipboard copy
$ aos clipboard pastehello from aos
$ aos watch clipboard --max=1 --content{"event":"clipboard","seq":1,"length":14,"text":"hello from aos"}

One CLI for you and your agent · macOS · Windows · Linux · muthuishere.github.io/aos

aos

Files with exit codes an agent can trust.

$ aos file stat package.json --json{"name":"package.json","size":499,"mode":"-rw-r--r--","dir":false,"modified":"2026-10-13T06:02:13+05:30"}
$ aos file read notes.md --lines=1:3# Monday - call the bank - ship the docs
$ aos file delete /aos: refusing to delete /

One CLI for you and your agent · macOS · Windows · Linux · muthuishere.github.io/aos

aos

Processes and services, without sudo.

$ aos process find Finder --json[{"pid":2424,"name":"Finder","cpu":0,"memory_mb":97.4,"user":"you"}]
$ aos process kill Calculator
$ aos service create mcp --autostart --now -- aos serve mcpname mcp label aos.mcp state running

One CLI for you and your agent · macOS · Windows · Linux · muthuishere.github.io/aos

aos

Audio, battery, network, lock. Same verbs on every OS.

$ aos audio volume 40 && aos audio mute off40
$ aos battery status && aos network status100% charged interface en0 address 192.168.1.24 wifi HomeNet
$ aos system lock

One CLI for you and your agent · macOS · Windows · Linux · muthuishere.github.io/aos

aos

Every command this machine was asked to run, recorded.

$ aos obs tail --limit=306:55:20 ok cli 56ms process find 06:55:21 err cli 47ms process kill 06:55:21 ok cli 351ms doctor
$ aos obs audit --since=24h --source=mcp2026-10-13 06:02:59 mcp window move 121ms ok 2026-10-13 06:03:07 mcp key type 306ms ok
$ aos obs export --since=1h > spans.json

One CLI for you and your agent · macOS · Windows · Linux · muthuishere.github.io/aos

aos

One package verb set over brew, winget, apt and more.

$ aos pkg managerhomebrew
$ aos pkg search ripgrepripgrep ripgrep-all
$ aos pkg install ripgrep

One CLI for you and your agent · macOS · Windows · Linux · muthuishere.github.io/aos

aos

Watch it from your phone. Hand it to an agent over MCP.

$ aos remote shareLAN http://192.168.1.24:8765/?k=… Press Ctrl-C to revoke the link and stop.
$ aos serve mcpaos mcp http://127.0.0.1:14320/mcp token YOUR_TOKEN tools 96
$ aos serve tools --groups=windowwindow_list List open windows window_move Move a window to a zone, a split, or bounds

One CLI for you and your agent · macOS · Windows · Linux · muthuishere.github.io/aos

Works with your agent

The skill ships inside the binary, so Claude Code already knows every command. Just ask in plain English.

Claude Code
> put TextEdit on the left half of monitor 2,
  then point at its Format menu with a green arrow
headless, from a script
$ claude -p "screenshot Safari and tell me
  what page is open"

Read more