Skip to content

Text labels

aos draw text puts a styled label on screen. There is no arrow. Use it for a step title, a status, or a note next to something.

Terminal window
aos draw text "Your notes live here" --app=TextEdit --position=center --size=L --duration=7 --detach

The label appears in the middle of the TextEdit window, fades after 7 seconds, and the command returns at once.

A label in the middle of a window
aos draw text --position=center, rendered with --preview

More placements:

Terminal window
aos draw text "Step 2: pick a file" --app=Finder --position=top-center --color=amber
aos draw text "Done ✓" --monitor=2 --position=center --size=XL --color=green
aos draw text "Line one\nLine two" --rect=100,100,800,500 --position=bottom-right --bg=none
aos draw text "Look here" --at=640,400
aos draw text "You are here" --mouse

With no target, the label sits bottom-center of the focused monitor, inside a subtitle-safe area (8% from the bottom, 5% from the sides). While capture video is recording, that means the recording’s monitor.

A label at top-left of the window
--position=top-left
A label at top-center of the window
--position=top-center
A label at top-right of the window
--position=top-right
A label at left of the window
--position=left
A label at right of the window
--position=right
A label at bottom-left of the window
--position=bottom-left
A label at bottom-center of the window
--position=bottom-center
A label at bottom-right of the window
--position=bottom-right
A label at the bottom-center of the monitor, the default
no target: bottom-center of the focused monitor
flag what it does
--app=<name>, --title=<s>, --monitor=<n>, --rect=<x,y,w,h>, --at=<x,y>, --mouse where to place it
--position=<where> bottom-center, top-center, center, left, right, top-left, top-right, bottom-left, bottom-right
--margin=<px|N%> distance from the edge of the target
--offset=<dx,dy> nudge in pixels
--size=S|M|L|XL text size
--font=<name>, --font-scale=<k>, --weight=regular|bold typography. aos draw fonts lists the names
--color=<text colour>, --bg=auto|none|<colour> text and background colours
--align=left|center|right, --max-width=<px|N%> wrapping and alignment
--duration=<seconds> how long it stays
--detach return at once and let the label fade on its own
--preview=<out.png> render to a file instead of the screen
--json machine-readable output

aos draw stop removes every detached label and drawing.

Size S
--size=S
Size M
--size=M
Size L
--size=L
Size XL
--size=XL
Green text
--color=green
Text with no background pill
--bg=none
Custom background and text colours
--bg=#1b1c33 --color=#c3c0ff
Bold text
--weight=bold
A different font
--font='Avenir Next Condensed'
Two lines of text
'Line one\nLine two'
A label inset by ten percent
--margin=10%
A long label wrapped at forty percent of the window
--max-width=40% --align=left
  • \n in the text starts a new line.
  • Without --detach, the command blocks until the duration ends or you press Ctrl-C.
  • Use --preview on headless machines and in tests. It writes a PNG and never touches the screen.
  • Defaults come from the draw config file. aos draw config --init writes one you can edit.

To point at a control with an arrow, see arrows & pointers. For a film-style caption that replaces itself, see subtitles.