Hand the busywork to your browser.
The Kiwi Browser is a Mac browser with a Claude agent built in. Tell it what you want done: apply to a job, fill a form, find an answer. It works through real pages while you watch. By default it asks before it sends or submits anything in your name, and it always asks before it pays.
Built for macOS. It isn't available to download yet.
An animated replay of one task. You ask the agent to find a job and apply. It reads the page and clicks Apply, shows you the note it drafted and waits for you to accept it, asks again before it sends the application, then reports that the site confirmed it and what the run cost.
A replay of one task, drawn in HTML. Drag the buddy: it stays where you leave it.
Watch it work
A real run on real sites, start to finish.
Meet the buddy
The agent is a small orb that floats over the page, so the page keeps the whole window. Click it, or press ⌘E, and say what you want done.
- Park it anywhere
- Drag it to any spot over the page. It stays there when you resize the window and when you open the app again.
- One card at a time
- The card beside it shows only what matters now: the prompt, one line while it works, the thing it needs from you, then the reply.
- The full record is one key away
- Run details (⌘⇧S) lists every step of the run, its token counts and what it cost.
Its eyes tell you what it is doing
Idle
Nothing is running. It blinks and waits.
Listening
You are holding the talk key. The glow follows your voice.
Thinking
The model is choosing the next step.
Working
It is clicking or typing. The eyes follow the agent's cursor.
Asking
It needs you: an approval, a question or a missing detail.
Done
The reply is waiting for you.
Failed
The task failed. The card says why.
What you can hand off
Six things it does today. Every example is a prompt you can paste in.
Apply to jobs without the form fatigue
It narrows the board with filters, leaves out roles above your experience, fills the application and drafts the cover note. After you send, it checks the page and tells you whether the site confirmed it.
Stops for you at: The drafted note, and the Send button.
Works best on Work at a Startup and Wellfound. It cannot attach a résumé yet, and it cannot see forms embedded from Greenhouse, Lever or Ashby.
Fill forms without retyping yourself
Tell it once where you live and what you are looking for. It remembers, fills in what it knows and asks for everything that is missing in one form. It never saves passwords or codes.
Stops for you at: Submit order. Orders always ask, even in Don't ask mode.
Memory needs a GitHub sign-in. Without one the agent still works and asks each time.
Get the answer, not ten tabs
Ask a question about a site and get a clean answer back: a shortlist, a table, the links that matter. It reads the pages and you read the summary.
Stops for you at: Nothing. It only reads.
One recorded run of a task like this took 10 model calls and about $0.10.
Run errands across tabs
It opens new tabs, switches between them and closes them when it is done, so a task that spans several sites stays one request. A download waits for you to press Save.
Stops for you at: The download.
Find the Discord download page for Mac
Ask about what you were just looking at
It keeps a short log of this session: pages you read, searches you ran, text you highlighted. Say "that pricing page" and it knows which one. The log is gone when you quit.
Stops for you at: Nothing. It only reads.
Summarise the pricing page I was just on.
Say it instead of typing it
Hold right Option, say the task, let go. The buddy glows with your voice while it listens. Your words land in its prompt box, and nothing runs until you press Enter.
Stops for you at: Enter. Speaking never starts a task.
Needs a Deepgram API key.
What the agent can do
Seventeen tools in six groups. If it is not on this list, the agent cannot do it.
Read the page
Sees the text on the page and every button, link and field it could use.
- read_page
Click and type
Uses real mouse and keyboard input: clicks, typing, dropdowns, sliders, Enter, Escape, Tab, arrows and scrolling.
- click
- click_text
- type
- press_key
- scroll
Get around
Goes to a URL, goes back, and opens, switches and closes tabs.
- navigate
- go_back
- new_tab
- list_tabs
- switch_tab
- close_tab
Write for you
Drafts the cover note, message or answer. You approve the text before a character is typed.
- draft_text
Ask you
Asks a question with one-click answers, or collects every missing detail in a single form.
- ask_user
- ask_details
Remember
Keeps facts you tell it for next time, and recalls what you were browsing before the task.
- remember_fact
- recall_session
What keeps it in line
- Asks before anything you cannot undo
- Submit, send, pay and delete wait for your Allow. Switch to Don't ask and it moves faster, but anything that spends money or deletes something still stops.
- Checks its own work
- After a send it reads the page again. If the site did not confirm, it tells you so instead of claiming success.
- Shows the bill
- Every reply comes with an estimated cost in dollars, and Run details lists the steps and model calls behind it. A task stops at 28 steps or $0.75, whichever comes first.
- Cannot be bossed around by a web page
- Whatever a page says is treated as data, never as orders. A page that writes "ignore your instructions" has only written a sentence.
- Leaves the sensitive parts to you
- It never types a password; it asks you to sign in. Gmail, Outlook, PayPal, Coinbase and a few banks are off limits entirely.
- Runs on the model you pick
- Haiku 4.5, Sonnet 5 or Opus 5, and how hard it thinks.
How a task runs
Four steps. The buddy tells you which one it is on, and Run details keeps the whole record.
- 1
You ask
Click the buddy or press ⌘E. Type the task, or hold a key and say it.
- 2
It reads the page
Not a screenshot. It reads the text and the list of things it could click or type into.
- 3
It acts, one step at a time
The page frame turns orange and a cursor shows where it is clicking. The buddy says what it is doing in one line, and Run details keeps every step.
- 4
It stops for you, then reports
Risky steps wait for your Allow. At the end the buddy shows the answer and the cost, and if you are signed in, a place to rate the run.
How it's built
For the engineers. The decisions underneath, and the numbers measured so far.
- Real input, not scripted clicks
- Clicks and keystrokes go through Chromium's own input pipeline, so a page sees them as trusted events, the same as yours.
- A reader the page cannot reach
- Every script that reads a page runs in an isolated JavaScript world. The page's own scripts cannot see it.
- Two channels to the model
- Page content travels inside tool results. The browser's own messages travel in a separate block that no page can write to. That split is the defence against prompt injection.
- Did it land?
- After each action the browser watches the page and tells the model what happened: a dialog opened, the page moved, or nothing changed.
- Cheap because it is cached
- The system prompt and the whole conversation are prompt-cached. On one measured 28-call run, 94% of the input tokens were read from cache.
- The stack
- Electron, React and TypeScript, with the agent loop written against the Anthropic SDK. The code is private for now; I'm happy to walk through it.
17
tools, each with a typed schema.
$0.32
about that, in API calls, for one measured application run of 28 model calls.
1.08 s
to open the speech connection from cold.
12 of 12
reply-renderer test cases pass, 5 of them injection attempts.
What it cannot do yet
It is a project built in public, so the gaps are listed with the features.
- It cannot see inside iframes, so application forms embedded from Greenhouse, Lever or Ashby are invisible to it.
- It cannot upload files, so it cannot attach a résumé.
- It does not use screenshots or vision. It reads the page's structure, not its pixels.
- It does not solve CAPTCHAs.
- It runs on macOS only, and it isn't available to download yet.
- There is no task-success benchmark yet. The numbers on this page are single measured runs, not averages.