Hey Mint
Doing things

Doing things

Apps, clicking, files, the web, the browser, menus, screenshots, the clipboard and long jobs. Mint takes a direct route wherever one exists, and moves your pointer only when nothing else can do it.

How it chooses

How Mint picks a way to do it

  1. In the background: web search and page reading, file tools, the browser's own scripting, AppleScript. Nothing moves on screen.
  2. 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).
  3. 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.

Doing things

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
ToolWhat it does
open_appOpens or switches to an app; “Xcode” finds ZCode if that is what you have
open_urlOpens a page in the right browser, reusing a tab already showing it
open_chrome, open_slackChrome as a named profile; Slack at a workspace and channel (from custom.json)
list_open, switch_toWhat's open; bring a tab or window forward instead of opening a duplicate
quit_appOnly when you said quit or close

Electron apps (ChatGPT, ZCode, Slack, VS Code, Claude, Notion) are unlocked first, so Mint sees all their buttons.

Doing things

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.

A click lands (ripple and paw print), then typing goes into the outlined box.
  • 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 sayToolHow
“click Sign in”ui_actExact 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_textInto 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_windowAll the text, including what is scrolled out of view
“summarise this”get_selected_textThe text you selected
“what's under my mouse?”, “click this”pointerThe control under your pointer; clicks right there
“look at my screen”look, click_atA screenshot for things with no labels; says what it hit, so a wrong point is noticed
Typing into a password field is refused: you type passwords. Send, Delete-type buttons need you to have asked.
Doing things

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
ToolNotes
find_filesSpotlight, 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_fileText, code, Markdown, CSV, JSON, PDF, Word, RTF, HTML; long files in parts
write_filecreate, append, replace (the text must occur once), overwrite (the old version is backed up first). A bare name goes to ~/Documents/Mint
file_actionopen, reveal, info, move, copy, rename, make_folder, trash. Never overwrites an existing file
Off limits: ~/.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.
Doing things

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.

Doing things

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

  1. A browser you name: “in Brave”, “on this Chrome only”.
  2. 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…
  3. 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.

Page actions are fastest with View ▸ Developer ▸ Allow JavaScript from Apple Events turned on in Chrome or Brave (Safari: Develop menu). Mint never turns it on itself; without it everything except raw JavaScript still works through Accessibility.
Password and card fields are never filled. Send, Submit, Post, Buy, Pay, Delete and closing tabs need you to have asked. Page scripts cannot read cookies or storage, send data out, or submit forms.
Doing things

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.

Doing things

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.

Doing things

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_done watches ChatGPT (or any app) until the answer stops changing and no Stop button is left.
  • Showing what was built. preview_site serves a folder on localhost: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.