Skip to content

Every command

This page is generated. site/scripts/gen-commands.mjs runs aos commands --json --all against the source tree and writes this file every time the site is built, so it cannot describe a command the binary does not have, or miss one it does.

103 commands across 33 groups. 3 internal ones are marked hidden and not listed below.

needs a display marks a command that is refused with a reason on a machine with no screen. platforms appears only where a command does not exist everywhere; everything else runs on macOS, Windows and Linux.

The same data, machine-readable, comes from the binary you installed:

Terminal window
aos commands --json --all

Print a starter adapter, ready to save and edit

Terminal window
aos adapters example
aos adapters example --write

List the adapters this machine has loaded

Terminal window
aos adapters list

Print the directory adapters are read from

Terminal window
aos adapters path

Print or change the output mute state

Terminal window
aos audio mute toggle

Print the output volume, or set it

Terminal window
aos audio volume
aos audio volume 40
aos audio volume +5

Print the charge percentage as a bare number

Terminal window
aos battery percent # 87

Exit 0 when a battery is present, 1 otherwise

Terminal window
aos battery present && echo has a battery

Print battery charge and charging state

Terminal window
aos battery status

aos capture screenshot [fullscreen|region|window] [--monitor=<n>] [--region=<x,y,w,h>] [--app=<name>] [--copy] [--out=<path>]

Section titled “aos capture screenshot [fullscreen|region|window] [--monitor=<n>] [--region=<x,y,w,h>] [--app=<name>] [--copy] [--out=<path>]”

Take a screenshot

needs a display · also: screenshot

Terminal window
aos screenshot
aos capture screenshot region --copy
aos capture screenshot --monitor=2
aos capture screenshot --app=Chrome --out=/tmp/term.png
aos capture screenshot --region=0,0,800,600

Copy stdin, or the given words, to the clipboard

Terminal window
echo hello | aos clipboard copy
aos clipboard copy "some text"

Print the clipboard to stdout

Terminal window
aos clipboard paste > note.txt

Print a shell completion script generated from the command tree

Terminal window
aos completion bash
aos completion zsh
aos completion fish

Print a diagnostic dump: platform, tools, plugin dirs

Terminal window
aos debug

Report which helper tools are installed

Terminal window
aos debug tools

Print the ID of the monitor the pointer is on

needs a display

Terminal window
aos capture screenshot --monitor=$(aos display active)

Print the ID of the monitor holding the frontmost window

needs a display

Terminal window
aos window move Chrome --monitor=$(aos display focused)

List attached monitors with geometry and focus state

needs a display · also: monitors

Terminal window
aos display list

Diagnose this installation and say how to fix what is broken

Terminal window
aos doctor
aos doctor --json

Run a command and print stdout, stderr, and exit code as JSON

Terminal window
aos exec capture git status
aos exec capture -- ls -la

Run a command with its output streamed to this terminal

Terminal window
aos exec run git status

Run a command line through the platform shell

Terminal window
aos exec shell "git log --oneline | head -5"

Append stdin, or the given words, to a file

Terminal window
aos file append log.txt "done"

Copy a file

Terminal window
aos file copy a.txt b.txt

Delete a file, or a directory with –recursive

Terminal window
aos file delete /tmp/scratch --recursive

List a directory

Terminal window
aos file list
aos file list ~/Downloads --json

Create a directory, including parents

Terminal window
aos file mkdir ~/.config/aos/layouts

Move or rename a path

Terminal window
aos file move old.txt new.txt

aos file read <path> [--lines=<from>:<to>]

Section titled “aos file read <path> [--lines=<from>:<to>]”

Print a file, optionally a line range

Terminal window
aos file read go.mod
aos file read main.go --lines=10:40

Print one path’s size, mode, and modified time

Terminal window
aos file stat go.mod --json

Write stdin, or the given words, to a file

Terminal window
aos file write notes.txt "first line"
cat in.txt | aos file write out.txt

Print the directories fonts are read from

Terminal window
aos font dirs

List installed font families

Terminal window
aos font list
aos font list mono

Run a command against the managed virtual display

Terminal window
aos headless run aos window list

aos headless start [--display=:99] [--size=<WxH>] [--wm]

Section titled “aos headless start [--display=:99] [--size=<WxH>] [--wm]”

Start a virtual display, so window and input commands work

platforms: linux

Terminal window
aos headless start
aos headless start --display=:101 --size=1920x1080 --wm

Report whether a display is available, and where it came from

Terminal window
aos headless status

Stop the virtual display this machine started

platforms: linux

Terminal window
aos headless stop

aos key press <combo> [--app=<name>|--title=<substring>]

Section titled “aos key press <combo> [--app=<name>|--title=<substring>]”

Press a key combination

needs a display

Terminal window
aos key press cmd+shift+s
aos key press enter --app=Chrome

aos key type <text...> [--app=<name>|--title=<substring>]

Section titled “aos key type <text...> [--app=<name>|--title=<substring>]”

Type text, optionally into a named window

needs a display

Terminal window
aos key type "hello world"
aos key type "hello" --app=Chrome

aos launch <app> [args...] [--wait[=<ms>]]

Section titled “aos launch <app> [args...] [--wait[=<ms>]]”

Launch an application, optionally waiting for its window

needs a display

Terminal window
aos launch "Visual Studio Code"
aos launch Chrome --wait

aos mouse click [<x> <y>] [--button=left|right|middle] [--double] [--monitor=<n>]

Section titled “aos mouse click [<x> <y>] [--button=left|right|middle] [--double] [--monitor=<n>]”

Click, optionally moving to a point first

needs a display

Terminal window
aos mouse click
aos mouse click 400 300 --double
aos mouse click --button=right

Move the pointer

needs a display

Terminal window
aos mouse move 400 300
aos mouse move 400 300 --monitor=2

Print the pointer position as x y

needs a display

Terminal window
aos mouse position # 784 539

Print the local address of the active interface

Terminal window
aos network ip # 192.168.1.20

Print the active interface, address, and Wi-Fi network

Terminal window
aos network status

Print the Wi-Fi network currently joined

Terminal window
aos network wifi

aos obs audit [--since=<duration>] [--source=<cli|mcp>] [--failed] [--json]

Section titled “aos obs audit [--since=<duration>] [--source=<cli|mcp>] [--failed] [--json]”

Every command this machine was asked to run, oldest first

Terminal window
aos obs audit --since=24h
aos obs audit --source=mcp # only what agents asked for
aos obs audit --failed

Emit recorded spans as OTLP JSON, ready for a collector

Terminal window
aos obs export --since=1h > spans.json

Print where telemetry is written

Terminal window
aos obs path

aos obs stats [--since=<duration>] [--source=<cli|mcp>] [--json]

Section titled “aos obs stats [--since=<duration>] [--source=<cli|mcp>] [--json]”

Summarise recorded work: calls, failures, and latency per route

Terminal window
aos obs stats
aos obs stats --since=24h --source=mcp

aos obs summary [--since=<duration>] [--json]

Section titled “aos obs summary [--since=<duration>] [--json]”

How much this machine is actually used, and by what

Terminal window
aos obs summary
aos obs summary --since=7d

aos obs tail [--limit=<n>] [--since=<duration>]

Section titled “aos obs tail [--limit=<n>] [--since=<duration>]”

Print the most recent spans, newest last

Terminal window
aos obs tail --limit=20

Open a file, folder, or URL with the system default handler

needs a display

Terminal window
aos open https://claude.ai
aos open .

Report whether accessibility and screen capture are granted

needs a display

Terminal window
aos permission check

aos permission request [accessibility|screen]

Section titled “aos permission request [accessibility|screen]”

Ask the OS for the permissions that are missing

needs a display

Terminal window
aos permission request
aos permission request screen

Install packages

Terminal window
aos pkg install <package...>

List installed packages

Terminal window
aos pkg list

Print which package manager this machine uses

Terminal window
aos pkg manager # homebrew

Refresh the package index

Terminal window
aos pkg refresh

Remove packages

Terminal window
aos pkg remove <package...>

Search for packages

Terminal window
aos pkg search <term>

Upgrade installed packages

Terminal window
aos pkg upgrade

Print the current power source (ac or battery)

Terminal window
aos power status

Find processes whose name contains a substring

Terminal window
aos process find Chrome
aos process find node --json

Kill a process by pid, or by name when it is unambiguous

Terminal window
aos process kill 4821
aos process kill Calculator
aos process kill Calculator --force

aos process list [--filter=<substring>] [--json]

Section titled “aos process list [--filter=<substring>] [--json]”

List running processes

Terminal window
aos process list
aos process list --filter=chrome
aos process list --json

aos remote share [--monitor=<n>] [--port=<n>] [--fps=<n>] [--key=<k>]

Section titled “aos remote share [--monitor=<n>] [--port=<n>] [--fps=<n>] [--key=<k>]”

Share this screen and its mouse/keyboard over the LAN until interrupted

needs a display

Terminal window
aos remote share
aos remote share --monitor=2 --fps=8

Print the URL of the share running on this machine

needs a display

Terminal window
aos remote url

aos serve mcp [--addr=<host:port>] [--token=<k>] [--groups=<a,b>] [--gui=on|off|auto] [--quiet]

Section titled “aos serve mcp [--addr=<host:port>] [--token=<k>] [--groups=<a,b>] [--gui=on|off|auto] [--quiet]”

Serve every command as an MCP tool over streamable HTTP

Terminal window
aos serve mcp
aos serve mcp --addr=127.0.0.1:9000 --groups=window,capture,exec
aos serve mcp --gui=off # screenless tools only

Print the MCP tool catalogue this machine would expose

Terminal window
aos serve tools --groups=window

aos service create <name> [--autostart] [--now] -- <command> [args...]

Section titled “aos service create <name> [--autostart] [--now] -- <command> [args...]”

Install a command as a service

Terminal window
aos service create mcp --autostart --now -- aos serve mcp
aos service create nap -- /bin/sleep 60

List the services aos manages

Terminal window
aos service list

Stop a service and delete its definition

Terminal window
aos service remove mcp

Start an installed service

Terminal window
aos service start mcp

Report whether a service is running; exits non-zero when it is not

Terminal window
aos service status mcp

Stop a running service

Terminal window
aos service stop mcp

Install the bundled agent skill for every agent on this machine

Terminal window
aos skill install

Print where skill install would write

Terminal window
aos skill path

Print the bundled skill without installing it

Terminal window
aos skill show

Remove the installed agent skill

Terminal window
aos skill uninstall

aos subtitle show <text...> [--seconds=<n>] [--position=bottom|top|center] [--size=<px>] [--wait]

Section titled “aos subtitle show <text...> [--seconds=<n>] [--position=bottom|top|center] [--size=<px>] [--wait]”

Show large text over everything for a few seconds

needs a display

Terminal window
aos subtitle show "installing dependencies"
aos subtitle show "running the migration" --seconds=30 --position=top
aos subtitle show "step 1 of 3" --seconds=4 --wait
# prints which backend was used: an overlay, or a notification it fell back to

Show a short sample, to check subtitles work on this machine

needs a display

Terminal window
aos subtitle test

Print OS, host, and hardware facts

Terminal window
aos system info

Lock the screen

needs a display · also: lock

Terminal window
aos system lock

Log the current user out

needs a display

Terminal window
aos system logout

Restart the machine

Terminal window
aos system restart

Power the machine off

Terminal window
aos system shutdown

Put the machine to sleep

Terminal window
aos system sleep

Print the aos version

Terminal window
aos version

aos watch clipboard [--interval=<500ms>] [--max=<n>] [--content]

Section titled “aos watch clipboard [--interval=<500ms>] [--max=<n>] [--content]”

Print a JSON line whenever the clipboard text changes

needs a display

Terminal window
aos watch clipboard
aos watch clipboard --max=1 --content

aos watch file <path> [--interval=<500ms>] [--max=<n>] [--recursive]

Section titled “aos watch file <path> [--interval=<500ms>] [--max=<n>] [--recursive]”

Print a JSON line whenever a file or directory entry changes

needs a display

Terminal window
aos watch file ~/Downloads
aos watch file ./notes.md --max=1
aos watch file ./src --recursive --interval=1s

aos watch window [--interval=<500ms>] [--max=<n>]

Section titled “aos watch window [--interval=<500ms>] [--max=<n>]”

Print a JSON line whenever the focused window changes

needs a display

Terminal window
aos watch window
aos watch window --max=1

Open a URL in a chromeless app window

needs a display

Terminal window
aos webapp open https://app.slack.com

Apply a saved layout of many windows in one pass

needs a display

Terminal window
aos window arrange ~/.config/aos/layouts/work.json

aos window focus <app> | --app=<name> | --title=<substring>

Section titled “aos window focus <app> | --app=<name> | --title=<substring>”

Bring a window to the front

needs a display

Terminal window
aos window focus Chrome

aos window list [--app=<name>] [--title=<substring>] [--json]

Section titled “aos window list [--app=<name>] [--title=<substring>] [--json]”

List open windows

needs a display

Terminal window
aos window list
aos window list --app=Chrome

aos window move <app> (--zone=<1A|2:1> | --at=<x,y,w,h>) [--monitor=<n>]

Section titled “aos window move <app> (--zone=<1A|2:1> | --at=<x,y,w,h>) [--monitor=<n>]”

Move a window to a zone, a split, or absolute bounds

needs a display

Terminal window
aos window move Chrome --zone=1B
aos window move Chrome --monitor=2 --zone=1:3
aos window move Slack --at=0,25,1920,1055

aos window resize <app> --w=<width> --h=<height>

Section titled “aos window resize <app> --w=<width> --h=<height>”

Resize a window in place

needs a display

Terminal window
aos window resize Chrome --w=900 --h=700

aos window save <layout.json> [--app=<name>] [--monitor=<n>]

Section titled “aos window save <layout.json> [--app=<name>] [--monitor=<n>]”

Save the current layout to a file window arrange can apply

needs a display

Terminal window
aos window save ~/.config/aos/layouts/work.json
aos window save ~/work.json --app=Chrome
aos window save ~/second-screen.json --monitor=2

Wait for a window to appear, then print it

needs a display

Terminal window
aos window wait Chrome --timeout=5000

Show what each zone means on a real monitor

needs a display

Terminal window
aos window zones
aos window zones --monitor=2
aos window zones --show --app=Chrome