Twenty-eight commands that bring Mail, Messages, Calendar, Reminders, Contacts, Notes, Photos, the camera, the microphone, the screen, location and the rest of your Mac into the terminal. One word each, stdin and stdout, in the style of the tools already there — so they work in pipes, in scripts, in cron, and with whatever AI you point at a shell. Built for toast. Works for humans too.
Mail.app's mailboxes, read from its own index in milliseconds: unread, search, a message as text. Archive, flag, move, and rules that sort on arrival. Send through Mail.
mail unreadmail rule sync noise.txt "Sorted/Newsletters"
your iMessage chats, read from the Mac's own store: chats, a thread, unread, everything since you last looked; search inside messages; send. Names from Contacts; a photo someone sent is a line ocr can read.
imessage unreadimessage 55 since 2026-09-01
the IMAP side: list, filter, search on any account; move, flag or delete a set in one command; index a Maildir into grep-able lines and a text rendering per message. Linux too.
emails unreademails index ~/Mail/icloud
read one, reply from stdin, send stdin to an address, watch for new mail and pipe each one to a command.
email 449411echo "on my way" | email lena@example.com
today, the next N days, add from a sentence, remove.
kal 7kal add "dentist thursday 10am"
open ones soonest first; add from a sentence; done, undone, remove.
remrem add "call the bank tomorrow 9am"
look someone up by name, email or phone; add; birthdays.
con "Lena Okafor"con birthdays -d 30
the most recent, read one as text, search, add from stdin.
note search "meeting"echo "ship it" | note add
recent, by date, favorites, albums; export an original.
photo 2026-09-06photo export <id>
a page as text — the article, not the menus; PDFs too; --links for where it goes next.
fetch https://example.com/articlefetch url --links
DuckDuckGo results: title, URL, snippet. Says so when it is blocked, rather than pretending the web is empty.
search "AFM 3 Core Advanced"
the text in an image, a PDF page, or the screen. Vision, on device.
ocr --screenocr receipt.jpg
one picture, to a file or stdout.
snap desk.jpgsnap | ocr
listen, and print what was said. Speech, on device.
hear | rem add
place name and coordinates.
loc
the network you are on, signal and speed; nearby networks; on, off, join.
wifiwifi scan
what is connected, and how much battery it has.
btbt all
level, state, time remaining; the lid; the charger.
batterybattery --power
lux, from the sensor by the camera.
light
how loud the room is; nothing recorded.
noise
nominal, fair, serious, critical — the system's own throttle signal.
thermal
seconds since the last key or mouse; --over N as a yes/no for scripts.
idle --over 300 || notify "build done"
show, set, up, down, mute, toggle.
vol 40vol mute
a banner, from any script; the message can come from stdin.
make && notify "tests pass"
a countdown that notifies you, and survives the Mac sleeping.
timer 25m "back to it"
start, lap, stop; state survives between calls.
stopwatch startstopwatch lap
now playing; play, pause, next; a playlist by name; search the library.
tune play "Morning Coffee"tune
see them, set them, find files by them.
tag add Review *.mdtag find Review
Every tool documents itself with -h, for you and for a model alike. Piped, each prints plain lines a script can parse; at a terminal, something easier on the eye. Nothing here talks to a server: kal reads your calendar through EventKit, on this machine.
$ kal 1 Mon 09:00 Standup @ Zoom Mon 14:30 Dentist @ 4th Ave $ rem add "renew the SSL certificates" in 3 days reminder: renew the SSL certificates · Thu 09:00 $ battery 81% · charging · 1h 40m to full $ search "AFM 3 Core Advanced" | head -3 1. Apple Foundation Models 3 — Apple Machine Learning Research https://machinelearning.apple.com/research/afm3 $ ocr --screen | toast "what's this error and what do I try first?" It's a stale lockfile from an interrupted npm install; delete package-lock.json and run it again. $ photo 2026-09-06 | toast "where was I yesterday?" Half Moon Bay in the morning, Pacifica around four, home by six. $ imessage new | toast "anything that needs me?" Tatiana asked what the plan is tomorrow; nothing else. $ kal 7 | toast "what's the one thing I'll forget this week?" The dentist. It's Monday at 14:30 and nothing else that day looks like it moves.
The last line is the point of the twelve. An assistant is only as capable as the verbs it can run; these give it your calendar, your reminders, your notes and your mail, in the form it already understands.