cd /news/ai-agents/let-an-ai-agent-drive-your-mac-for-a… · home › topics › ai-agents › article
[ARTICLE · art-163589] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Let an AI agent drive your Mac for a fiftieth of a cent per step with TypeSafe Computer Use

A developer released TypeSafe Computer Use (jev), an open-source macOS computer-use agent that reads the screen deterministically and routes each step through a small classifier, calling a frontier model only when free text or screen reading is needed. Per the project's README, jev costs about $0.0002 per decision versus $0.032 for Claude Opus 5 on a bare screenshot, and roughly $0.003 for a 12-step task versus $0.40 to $0.90, with model latency of 0.13 to 0.38 seconds against 5.2 seconds. The README acknowledges the trade-off: reasoning a frontier model performs for free must be rebuilt as deterministic state, such as date parsing written in code.

by read3 min views2 publishedNov 4, 2026

Computer-use agents built on frontier models work, but every step ships a screenshot to a big model and waits several seconds for a plan. A twelve-step task can cost close to a dollar. Most of those steps do not need a plan at all: they need one choice from a short list of buttons.

awlevin/typesafe-computer-use, called jev for short, is built on that observation. Per the README it drives a Mac toward a goal you type in plain English for about a fiftieth of a cent per step. It reads the screen deterministically, asks a small classifier which action comes next, and only calls a writing model when a text field genuinely needs free text or the classifier has stopped and the screen needs reading.

This post covers what it is good for, the install, and a safe first run.

The README measures one decision on the same screenshot and goal against Claude Opus 5 given a bare screenshot:

jev frontier model, bare screenshot
cost per decision $0.0002 $0.032
cost per 12-step task $0.003 $0.40 to $0.90
model latency 0.13 to 0.38 s 5.2 s
full step with capture and OCR about 1.5 s about 5.5 s

It is honest about the catch: the big model read event dates off the pixels and compared them unaided, while the classifier needed date parsing written in code. Every piece of reasoning a frontier model does for free has to be rebuilt as deterministic state.

You need macOS 14 or newer, Python 3.12 or newer and uv. Windows 10 and 11 are experimental.

git clone https://github.com/awlevin/typesafe-computer-use
cd typesafe-computer-use
uv sync
cp .env.example .env     # fill in the keys

The .env variables:

TYPESAFE_API_KEY (required): used for every decision.ANTHROPIC_API_KEY (optional): used for typing free text, writer-proposed URLs and the final answer. The README documents pointing the writer at another model instead, including LM Studio, Ollama or any OpenAI-compatible server.CLICKER_EMAIL (optional): enables the type_email action.CLICKER_BROWSER (optional): defaults to Google Chrome. Then grant your terminal Screen Recording and Accessibility in System Settings, Privacy & Security. Without the first, captures are just wallpaper. Without the second, clicks are silently dropped and --act refuses to start.

It drives your real mouse and keyboard, so start without --act:

uv run clicker "open the Playground"                 # dry run: one step, prints what it would do
uv run clicker-inspect "any goal"                    # capture and open the annotated screen + payload

Clear the terminal before you run it. The terminal is on screen, so its text becomes OCR input.

uv run clicker "open the Playground" --act           # up to 100 steps
uv run clicker "log in" --act --steps 20 --delay 3   # longer and slower
uv run clicker "log in" --act --handoffs 0           # the classifier alone

To stop a live run, press Ctrl-C or slam the mouse into the top-left corner of the screen. The loop also stops on done, low confidence, a stall or the step limit. Every run writes a runs/<timestamp>/ folder, so a stalled run can be replayed offline, and the README says a run folder attached to a bug report is the most useful thing you can send.

The projects collected on the TypeSafe Computer Use page show it as a base layer:

If your task lives entirely in a browser, Browser Use's Jev Ultrafast applies the same classifier idea to a numbered table of page elements, and jev itself has a browser backend that reads the DOM over Chrome DevTools with no OCR and no screen permission.

--steps value and, for anything risky, the documented Linux sandbox in a container. Source repo: awlevin/typesafe-computer-use. License: MIT.

Want the setup commands for 50 AI repos people actually ship with? Get the free AI Repos That Actually Ship pack: https://dedupedai.com/ship-pack/?utm_source=devto&utm_medium=article&utm_campaign=shippack

── more in #ai-agents 4 stories · sorted by recency
── more on @typesafe computer use 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/let-an-ai-agent-driv…] indexed:0 read:3min 2026-11-04 · —