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:
aos commands --json --alladapters
Section titled “adapters”aos adapters example [--write]
Section titled “aos adapters example [--write]”Print a starter adapter, ready to save and edit
aos adapters exampleaos adapters example --writeaos adapters list [--json]
Section titled “aos adapters list [--json]”List the adapters this machine has loaded
aos adapters listaos adapters path
Section titled “aos adapters path”Print the directory adapters are read from
aos adapters pathaos audio mute [on|off|toggle]
Section titled “aos audio mute [on|off|toggle]”Print or change the output mute state
aos audio mute toggleaos audio volume [<0-100>|+<n>|-<n>]
Section titled “aos audio volume [<0-100>|+<n>|-<n>]”Print the output volume, or set it
aos audio volumeaos audio volume 40aos audio volume +5battery
Section titled “battery”aos battery percent
Section titled “aos battery percent”Print the charge percentage as a bare number
aos battery percent # 87aos battery present
Section titled “aos battery present”Exit 0 when a battery is present, 1 otherwise
aos battery present && echo has a batteryaos battery status
Section titled “aos battery status”Print battery charge and charging state
aos battery statuscapture
Section titled “capture”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
aos screenshotaos capture screenshot region --copyaos capture screenshot --monitor=2aos capture screenshot --app=Chrome --out=/tmp/term.pngaos capture screenshot --region=0,0,800,600clipboard
Section titled “clipboard”aos clipboard copy [text...]
Section titled “aos clipboard copy [text...]”Copy stdin, or the given words, to the clipboard
echo hello | aos clipboard copyaos clipboard copy "some text"aos clipboard paste
Section titled “aos clipboard paste”Print the clipboard to stdout
aos clipboard paste > note.txtcompletion
Section titled “completion”aos completion <bash|zsh|fish>
Section titled “aos completion <bash|zsh|fish>”Print a shell completion script generated from the command tree
aos completion bashaos completion zshaos completion fishaos debug
Section titled “aos debug”Print a diagnostic dump: platform, tools, plugin dirs
aos debugaos debug tools
Section titled “aos debug tools”Report which helper tools are installed
aos debug toolsdisplay
Section titled “display”aos display active
Section titled “aos display active”Print the ID of the monitor the pointer is on
needs a display
aos capture screenshot --monitor=$(aos display active)aos display focused
Section titled “aos display focused”Print the ID of the monitor holding the frontmost window
needs a display
aos window move Chrome --monitor=$(aos display focused)aos display list
Section titled “aos display list”List attached monitors with geometry and focus state
needs a display · also: monitors
aos display listdoctor
Section titled “doctor”aos doctor [--json]
Section titled “aos doctor [--json]”Diagnose this installation and say how to fix what is broken
aos doctoraos doctor --jsonaos exec capture <command> [args...]
Section titled “aos exec capture <command> [args...]”Run a command and print stdout, stderr, and exit code as JSON
aos exec capture git statusaos exec capture -- ls -laaos exec run <command> [args...]
Section titled “aos exec run <command> [args...]”Run a command with its output streamed to this terminal
aos exec run git statusaos exec shell <script>
Section titled “aos exec shell <script>”Run a command line through the platform shell
aos exec shell "git log --oneline | head -5"aos file append <path> [text...]
Section titled “aos file append <path> [text...]”Append stdin, or the given words, to a file
aos file append log.txt "done"aos file copy <source> <destination>
Section titled “aos file copy <source> <destination>”Copy a file
aos file copy a.txt b.txtaos file delete <path> [--recursive]
Section titled “aos file delete <path> [--recursive]”Delete a file, or a directory with –recursive
aos file delete /tmp/scratch --recursiveaos file list [path] [--all] [--json]
Section titled “aos file list [path] [--all] [--json]”List a directory
aos file listaos file list ~/Downloads --jsonaos file mkdir <path>
Section titled “aos file mkdir <path>”Create a directory, including parents
aos file mkdir ~/.config/aos/layoutsaos file move <source> <destination>
Section titled “aos file move <source> <destination>”Move or rename a path
aos file move old.txt new.txtaos file read <path> [--lines=<from>:<to>]
Section titled “aos file read <path> [--lines=<from>:<to>]”Print a file, optionally a line range
aos file read go.modaos file read main.go --lines=10:40aos file stat <path> [--json]
Section titled “aos file stat <path> [--json]”Print one path’s size, mode, and modified time
aos file stat go.mod --jsonaos file write <path> [text...]
Section titled “aos file write <path> [text...]”Write stdin, or the given words, to a file
aos file write notes.txt "first line"cat in.txt | aos file write out.txtaos font dirs
Section titled “aos font dirs”Print the directories fonts are read from
aos font dirsaos font list [filter]
Section titled “aos font list [filter]”List installed font families
aos font listaos font list monoheadless
Section titled “headless”aos headless run <command> [args...]
Section titled “aos headless run <command> [args...]”Run a command against the managed virtual display
aos headless run aos window listaos 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
aos headless startaos headless start --display=:101 --size=1920x1080 --wmaos headless status
Section titled “aos headless status”Report whether a display is available, and where it came from
aos headless statusaos headless stop
Section titled “aos headless stop”Stop the virtual display this machine started
platforms: linux
aos headless stopaos key press <combo> [--app=<name>|--title=<substring>]
Section titled “aos key press <combo> [--app=<name>|--title=<substring>]”Press a key combination
needs a display
aos key press cmd+shift+saos key press enter --app=Chromeaos 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
aos key type "hello world"aos key type "hello" --app=Chromelaunch
Section titled “launch”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
aos launch "Visual Studio Code"aos launch Chrome --waitaos 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
aos mouse clickaos mouse click 400 300 --doubleaos mouse click --button=rightaos mouse move <x> <y> [--monitor=<n>]
Section titled “aos mouse move <x> <y> [--monitor=<n>]”Move the pointer
needs a display
aos mouse move 400 300aos mouse move 400 300 --monitor=2aos mouse position
Section titled “aos mouse position”Print the pointer position as x y
needs a display
aos mouse position # 784 539network
Section titled “network”aos network ip
Section titled “aos network ip”Print the local address of the active interface
aos network ip # 192.168.1.20aos network status
Section titled “aos network status”Print the active interface, address, and Wi-Fi network
aos network statusaos network wifi
Section titled “aos network wifi”Print the Wi-Fi network currently joined
aos network wifiaos 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
aos obs audit --since=24haos obs audit --source=mcp # only what agents asked foraos obs audit --failedaos obs export [--since=<duration>]
Section titled “aos obs export [--since=<duration>]”Emit recorded spans as OTLP JSON, ready for a collector
aos obs export --since=1h > spans.jsonaos obs path
Section titled “aos obs path”Print where telemetry is written
aos obs pathaos 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
aos obs statsaos obs stats --since=24h --source=mcpaos obs summary [--since=<duration>] [--json]
Section titled “aos obs summary [--since=<duration>] [--json]”How much this machine is actually used, and by what
aos obs summaryaos obs summary --since=7daos obs tail [--limit=<n>] [--since=<duration>]
Section titled “aos obs tail [--limit=<n>] [--since=<duration>]”Print the most recent spans, newest last
aos obs tail --limit=20aos open <path-or-url>
Section titled “aos open <path-or-url>”Open a file, folder, or URL with the system default handler
needs a display
aos open https://claude.aiaos open .permission
Section titled “permission”aos permission check
Section titled “aos permission check”Report whether accessibility and screen capture are granted
needs a display
aos permission checkaos permission request [accessibility|screen]
Section titled “aos permission request [accessibility|screen]”Ask the OS for the permissions that are missing
needs a display
aos permission requestaos permission request screenaos pkg install <package...>
Section titled “aos pkg install <package...>”Install packages
aos pkg install <package...>aos pkg list
Section titled “aos pkg list”List installed packages
aos pkg listaos pkg manager
Section titled “aos pkg manager”Print which package manager this machine uses
aos pkg manager # homebrewaos pkg refresh
Section titled “aos pkg refresh”Refresh the package index
aos pkg refreshaos pkg remove <package...>
Section titled “aos pkg remove <package...>”Remove packages
aos pkg remove <package...>aos pkg search <term>
Section titled “aos pkg search <term>”Search for packages
aos pkg search <term>aos pkg upgrade
Section titled “aos pkg upgrade”Upgrade installed packages
aos pkg upgradeaos power status
Section titled “aos power status”Print the current power source (ac or battery)
aos power statusprocess
Section titled “process”aos process find <name> [--json]
Section titled “aos process find <name> [--json]”Find processes whose name contains a substring
aos process find Chromeaos process find node --jsonaos process kill <pid|name> [--force]
Section titled “aos process kill <pid|name> [--force]”Kill a process by pid, or by name when it is unambiguous
aos process kill 4821aos process kill Calculatoraos process kill Calculator --forceaos process list [--filter=<substring>] [--json]
Section titled “aos process list [--filter=<substring>] [--json]”List running processes
aos process listaos process list --filter=chromeaos process list --jsonremote
Section titled “remote”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
aos remote shareaos remote share --monitor=2 --fps=8aos remote url
Section titled “aos remote url”Print the URL of the share running on this machine
needs a display
aos remote urlaos 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
aos serve mcpaos serve mcp --addr=127.0.0.1:9000 --groups=window,capture,execaos serve mcp --gui=off # screenless tools onlyaos serve tools [--groups=<a,b>]
Section titled “aos serve tools [--groups=<a,b>]”Print the MCP tool catalogue this machine would expose
aos serve tools --groups=windowservice
Section titled “service”aos service create <name> [--autostart] [--now] -- <command> [args...]
Section titled “aos service create <name> [--autostart] [--now] -- <command> [args...]”Install a command as a service
aos service create mcp --autostart --now -- aos serve mcpaos service create nap -- /bin/sleep 60aos service list
Section titled “aos service list”List the services aos manages
aos service listaos service remove <name>
Section titled “aos service remove <name>”Stop a service and delete its definition
aos service remove mcpaos service start <name>
Section titled “aos service start <name>”Start an installed service
aos service start mcpaos service status <name>
Section titled “aos service status <name>”Report whether a service is running; exits non-zero when it is not
aos service status mcpaos service stop <name>
Section titled “aos service stop <name>”Stop a running service
aos service stop mcpaos skill install [--json]
Section titled “aos skill install [--json]”Install the bundled agent skill for every agent on this machine
aos skill installaos skill path
Section titled “aos skill path”Print where skill install would write
aos skill pathaos skill show
Section titled “aos skill show”Print the bundled skill without installing it
aos skill showaos skill uninstall [--json]
Section titled “aos skill uninstall [--json]”Remove the installed agent skill
aos skill uninstallsubtitle
Section titled “subtitle”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
aos subtitle show "installing dependencies"aos subtitle show "running the migration" --seconds=30 --position=topaos subtitle show "step 1 of 3" --seconds=4 --wait# prints which backend was used: an overlay, or a notification it fell back toaos subtitle test
Section titled “aos subtitle test”Show a short sample, to check subtitles work on this machine
needs a display
aos subtitle testsystem
Section titled “system”aos system info
Section titled “aos system info”Print OS, host, and hardware facts
aos system infoaos system lock
Section titled “aos system lock”Lock the screen
needs a display · also: lock
aos system lockaos system logout
Section titled “aos system logout”Log the current user out
needs a display
aos system logoutaos system restart
Section titled “aos system restart”Restart the machine
aos system restartaos system shutdown
Section titled “aos system shutdown”Power the machine off
aos system shutdownaos system sleep
Section titled “aos system sleep”Put the machine to sleep
aos system sleepversion
Section titled “version”aos version
Section titled “aos version”Print the aos version
aos versionaos 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
aos watch clipboardaos watch clipboard --max=1 --contentaos 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
aos watch file ~/Downloadsaos watch file ./notes.md --max=1aos watch file ./src --recursive --interval=1saos 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
aos watch windowaos watch window --max=1webapp
Section titled “webapp”aos webapp open <url>
Section titled “aos webapp open <url>”Open a URL in a chromeless app window
needs a display
aos webapp open https://app.slack.comwindow
Section titled “window”aos window arrange <layout.json>
Section titled “aos window arrange <layout.json>”Apply a saved layout of many windows in one pass
needs a display
aos window arrange ~/.config/aos/layouts/work.jsonaos 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
aos window focus Chromeaos window list [--app=<name>] [--title=<substring>] [--json]
Section titled “aos window list [--app=<name>] [--title=<substring>] [--json]”List open windows
needs a display
aos window listaos window list --app=Chromeaos 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
aos window move Chrome --zone=1Baos window move Chrome --monitor=2 --zone=1:3aos window move Slack --at=0,25,1920,1055aos 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
aos window resize Chrome --w=900 --h=700aos 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
aos window save ~/.config/aos/layouts/work.jsonaos window save ~/work.json --app=Chromeaos window save ~/second-screen.json --monitor=2aos window wait <app> [--timeout=<ms>]
Section titled “aos window wait <app> [--timeout=<ms>]”Wait for a window to appear, then print it
needs a display
aos window wait Chrome --timeout=5000aos window zones [--monitor=<n>] [--show]
Section titled “aos window zones [--monitor=<n>] [--show]”Show what each zone means on a real monitor
needs a display
aos window zonesaos window zones --monitor=2aos window zones --show --app=Chrome