How Mint picks a way to do it
- In the background: web search and page reading, file tools, the browser's own scripting, AppleScript. Nothing moves on screen.
- In the app, by name: the app comes to the front; Mint uses its menu bar, scrolls to things, and clicks controls by their names (from the accessibility tree).
- With your pointer, last: only when you say “this” or “here”, or for things nothing else can see (canvases, games), from a screenshot.
Mint is told never to say “I can't” about something on the Mac before trying these.
Apps, windows and tabs
Name an app however you say it. Mint matches it against what is installed (exact names, known names, partial names, mishearings, then Jev) and checks the app really came to the front.
open Figma
open Xcode
go to youtube.com
open my Downloads folder
open Chrome as my work account on Gmail
open the on-call channel in Slack
what's open?
switch to the Jira tab
quit Spotify
| Tool | What it does |
|---|---|
open_app | Opens or switches to an app; “Xcode” finds ZCode if that is what you have |
open_url | Opens a page in the right browser, reusing a tab already showing it |
open_chrome, open_slack | Chrome as a named profile; Slack at a workspace and channel (from custom.json) |
list_open, switch_to | What's open; bring a tab or window forward instead of opening a duplicate |
quit_app | Only when you said quit or close |
Electron apps (ChatGPT, ZCode, Slack, VS Code, Claude, Notion) are unlocked first, so Mint sees all their buttons.
Clicking, typing and reading
Mint reads every control in the window, picks the one you meant, presses it like a person, and checks that something changed.
click Sign in
pick the second result
type “see you at six”
put it in the search box
read this page
what does the email say?
summarise this
look at my screen
what's under my mouse?
click this
press command shift T
scroll down
| You say | Tool | How |
|---|---|---|
| “click Sign in” | ui_act | Exact label first, then Jev chooses from the real list, then a vision model on a numbered screenshot. A real mouse press; the window is compared before and after. |
| “type …” | type_text | Into the focused box, or the box you name. With “and send”, it presses the chat's Send and checks it went. |
| “read this page” | read_window | All the text, including what is scrolled out of view |
| “summarise this” | get_selected_text | The text you selected |
| “what's under my mouse?”, “click this” | pointer | The control under your pointer; clicks right there |
| “look at my screen” | look, click_at | A screenshot for things with no labels; says what it hit, so a wrong point is noticed |
Files
what did I download today?
find the PDF about the lease
what's in my Projects folder?
read notes.md on my desktop and summarise it
make a file called plan.md with…
add cheese to that list
change the deadline in plan.md to Friday
show it in Finder
how big is it?
move it to Archive
rename it to final.md
make a folder called Receipts
delete the old draft
| Tool | Notes |
|---|---|
find_files | Spotlight, by name and content, newest first. With no query: recent items on Desktop, Documents, Downloads. Kinds: pdf, image, doc, sheet, slides, code, video, audio, folder, app |
read_file | Text, code, Markdown, CSV, JSON, PDF, Word, RTF, HTML; long files in parts |
write_file | create, append, replace (the text must occur once), overwrite (the old version is backed up first). A bare name goes to ~/Documents/Mint |
file_action | open, reveal, info, move, copy, rename, make_folder, trash. Never overwrites an existing file |
~/.ssh, ~/.aws, keychains, cookies, Mail and Messages data, browser profiles, .env and credential files. “Delete” means the Trash, only when you asked. Text that looks like a password, key or card number is never written.The web
what's the latest version of Python?
search the web for flights to Goa
read that article
what does python.org/downloads say?
web_search returns titles, links and snippets (Exa or Tavily with a key, DuckDuckGo without). read_url fetches a page's readable text without opening anything on screen.
The browser
Full control of Chrome, Safari, Brave, Arc and Edge, including pages you are logged in to.
what tabs do I have open?
switch to my Gmail tab
open github.com in a new tab
go back
reload
is there a pricing section?
click Learn more
put my name in the Full name field
choose Blue in the colour list
scroll to the bottom
close the YouTube tab
put YouTube and anime in a group called Entertainment
open the KeepWatching extension
always open YouTube in Brave
which browser do you use for what?
Which browser it uses
- A browser you name: “in Brave”, “on this Chrome only”.
- Your browser rules: ones you set (“always use Brave for entertainment”) and remembered preferences. Topics cover their sites: entertainment is YouTube, Netflix, Twitch, Spotify, anime sites…
- The one Gemini asked for; then the one in front; then the one Mint last used; then the Mac's default.
A tab already showing the page is reused; a browser that isn't running is started first.
Screenshots and the clipboard
Screenshots
take a screenshot
screenshot this window
screenshot the chart
take an 800x600 screenshot
let me pick the area
don't save it, just copy it
Saved where macOS saves screenshots and copied to the clipboard. A window works even when covered. Mint's own orb and chat never appear in it.
Clipboard
what's on my clipboard?
copy the path of this
copy this file
paste it
what did I copy before?
bring back the second one
clear the clipboard
The last 30 copies are kept in memory only, never on disk. Hidden password-manager items and anything that looks like a secret are never kept.
Everyday Mac tasks
set a ten minute timer for tea
what's on today?
remind me to call Sam at five
make a note: buy oat milk
draft an email to Priya saying I'll be late
what are my latest emails?
read the second one
volume 30
next track
dark mode on
lock the screen
what's the battery?
make a PDF of this summary
export this Google Doc as PDF
start work
Emails are always drafts: Mint never sends one. “start work” runs a routine you define in custom.json.
Long tasks across apps
do all your tricks, then smile, then tell me the time
open ChatGPT, research honeybees with sources, give it to Codex to build a one-page site, open it on localhost and check it
open Notes, Calendar and Slack
- All of it in one go. Ask for a list and Mint does it back to back without waiting for “next”, then reports once. If it stops half way, it is nudged to carry on.
- Waiting for apps.
wait_until_donewatches ChatGPT (or any app) until the answer stops changing and no Stop button is left. - Showing what was built.
preview_siteserves a folder onlocalhost:8000, opens it, and checks the title and missing files. - Sending safely. A message is sent only when you asked, and never twice within two minutes.