A tool that vibe-launched itself on GitHub and PyPI, then drafted its own announcement tweet, is a strange kind of proof — but the design idea underneath it is the part worth studying.
On August 17, 2026, at 10:00 PM, browser-use founder Gregor Zunic (@gregpr07) posted on X: "Introducing: macOS Harness. A persistent Python harness for virtually any Mac task ⌘. Control your Mac through the accessibility tree, AppleScript, screenshots, or raw coordinate input... It vibe-launched itself on GitHub + PyPI and drafted this tweet without me in the loop 👀. 100% open source." The tweet had crossed 58.9K views at time of writing and was reposted by 1LittleCoder — real traction for a niche open-source tool release, not just a routine changelog.
The reception in replies was largely enthusiastic ("This looks sick, thanks for open-sourcing!", "Doooope! Testing this out today"), but two exchanges in the thread are more useful than the hype: a technical limitation someone flagged and Zunic pushed back on, and a comparison question with an honest, thin answer. Both are covered below, alongside what the tool actually does and why its no-app-specific-tools design is worth understanding if you build with agent harnesses.
TL;DR
| Question | Answer |
|---|---|
| What shipped? | macOS Harness — a persistent Python process for controlling a Mac via an LLM |
| When? | Announced August 17, 2026, 10:00 PM by @gregpr07, founder of browser-use |
| What's the core idea? | Six raw primitives (see, key, type, click, ax, script), not app-specific tools — the model writes its own glue code |
| License / cost | 100% open source, MIT licensed |
| Install | PyPI via uv, Python 3.12 — designed to be installed by an agent (Codex/Claude Code), not by hand |
| Platform | macOS only, explicitly labeled "Experimental" |
| Repo stats at time of writing | 160 stars, 11 forks, v0.1.2 (~11 hours old at tweet time), 1 contributor |
| Honest limitation | Canvas-rendered UI outside a browser falls back to raw coordinate clicking |
| vs. Codex computer use | Zunic's own answer: mainly that it's open source — a real but thin differentiator |
Six primitives instead of a tool for every app

The interesting design choice in macOS Harness isn't the automation itself — screen control for macOS has existed for years — it's what the README explicitly refuses to build: per-app tools. There's no "Slack tool," no "Spotify tool," no "Final Cut tool." The project's own framing: "The agent writes what is missing, mid-task. No framework, no recipes, no rails. One Python process connected directly to macOS, your real browser, and your files."
Instead, the model gets six primitives and is expected to write the rest itself, per the GitHub repository:
frame = mac.see("Spotify")
mac.key("cmd+k", app="Spotify")
mac.type("Alessia Cara", app="Spotify")
mac.click(640, 420, app="Spotify")
item = mac.ax.at(640, 420, app="Spotify")
mac.script('tell application "Spotify" to play')
print(browser.page_info())
print(list(Path.home().iterdir()))
Per the README: think in see, key, type, click, ax, and script. browser, Path, and subprocess are ready in the same Python process — files and shell access sit right next to Mac control, not behind a separate integration. The README's own workflow diagram frames it plainly: the agent wants to do something no helper exists for, sees the app, uses raw macOS primitives, writes the missing logic in ordinary Python, and completes the task — no app-specific tool gets added to a growing library. The tagline: "Your agent now has a Mac."
This mirrors a broader debate in agent harness design that shows up elsewhere in the ecosystem — whether to give a model many narrow, pre-built tools or a small set of general primitives and a scripting environment. Mario Zechner's Pi harness makes a similar bet at the coding-agent layer: ship a small core and let extensions fill gaps, rather than baking in every feature up front. macOS Harness applies that same instinct to desktop control specifically.
Architecture: one process, three surfaces
The repo's architecture is a single persistent Python process branching into three surfaces, per the README:
mac.*— CGWindow screenshots, CGEvent input sent directly to a target app's process ID, and Apple's Accessibility (AX) and Apple Events APIsbrowser.*— real, logged-in Chrome control via CDP, using Browser Harness, a separate browser-use projectPath/subprocess— ordinary Python file and shell access, in the same process
All three reach both native macOS apps and Electron apps. Named capabilities called out in the README include capturing background app windows without bringing them to the foreground, sending keyboard and coordinate input directly to an app's process ID, and drawing an animated, click-through virtual cursor so the agent's pointer never moves the user's real mouse.
Install is agent-driven, not human-driven
macOS Harness leans into a pattern worth noting on its own: the README doesn't give a human a step-by-step install guide. It gives a literal copy-paste prompt for Codex or Claude Code:
"Install or upgrade macOS Harness from https://github.com/browser-use/macos-harness with uv using Python 3.12. Register the skill printed by
macos-harness skill, then runmacos-harness doctor. Explain any missing macOS permissions and ask before requesting them. Finally, verify the harness by capturing one already-running app without bringing it to the foreground."
Handing that prompt to a coding agent has it install the package, register its own agent skill, check permissions via macos-harness doctor, and verify the connection — all without a human typing individual shell commands. It's a small but telling detail about where tool onboarding is heading: docs written for the agent to execute, not just for a person to read.
What people are asking
"Does it move my actual mouse cursor?"
No. Per the README, the harness never moves the physical mouse pointer and never activates or raises a target app into the foreground — it draws its own animated, click-through virtual cursor instead. That's a deliberate design choice so a human can keep working on their own machine while the agent operates a background window, without the two fighting over the same cursor.
"The accessibility tree breaks on canvas-drawn UI — is that a real limitation?"
Yes, and it's the most substantive technical exchange in the reply thread. Developer @wowxtechie wrote: "the accessibility tree is the right primitive until you hit anything canvas drawn, then youre straight back on raw coordinates." This is accurate: the Apple Accessibility API only exposes elements that the OS knows about as structured UI objects — a custom-drawn canvas (think a design tool's freeform canvas, a game view, or a chart library rendering to a <canvas>-equivalent outside the browser) has no such structure, so any control has to fall back to screenshots and pixel coordinates, which is inherently less robust than reading a tree of labeled, clickable elements.
Zunic's reply pushed back gently: "I think it can solve it tbh - where do you have a canvas not in a browser? (For browser it just uses browser use cli)." That's a fair counter-question — a large share of canvas-rendered UI a Mac agent would encounter (charts, whiteboards, drawing tools) runs inside a browser tab, where Browser Harness's CDP-based control sidesteps the problem entirely. But it doesn't fully resolve the concern for native, non-browser canvas surfaces (native design and creative apps, custom-rendered game UIs), where raw-coordinate fallback remains the honest answer today.
"How is this different from Codex computer use?"
@Emil__Lio asked exactly this on X. Zunic's answer: "Well it's open source that's for one haha." Read that literally — it's a real differentiator (MIT license, inspectable code, self-hostable) but a thin one on its own. explainx.ai has covered Codex computer use on Windows, which ships as a more managed, product-integrated screen-control surface with mobile steering and thread management built by OpenAI. macOS Harness takes a rawer, more DIY-coded path: six primitives plus a persistent Python REPL, with the model expected to write its own logic rather than operate inside a pre-built control surface. Neither claim in the thread was "macOS Harness is better" — just different design philosophies, one open and script-first, one closed and product-first.
"Will there be a Windows version?"
Unclear — no commitment. @teknopawn asked "how about a windows harness?" and Zunic replied "let's see how many requests we get 👀" — a temperature check, not a roadmap item. Readers wanting Windows-side computer-use today should look at Codex computer use for Windows instead.
"Is this ready for production use?"
No — the README itself labels the project "Experimental. macOS only. MIT licensed." At the time of the tweet, the repo had one contributor (Zunic), three releases with v0.1.2 roughly 11 hours old, and no packages published separately from the PyPI ship. Treat it as an early, actively-developed tool worth testing on low-stakes tasks, not something to wire into a critical unattended workflow yet.
Honest limitations
- Canvas-drawn, non-browser UI falls back to raw coordinates — the accessibility-tree advantage disappears exactly where UI is custom-rendered outside a browser, and that gap isn't resolved in the current release, only debated in the replies.
- Single contributor, days-old release. v0.1.2 was about 11 hours old at tweet time, with one listed contributor — this is a brand-new project, not a battle-tested one.
- "Open source" is the primary stated differentiator from Codex computer use — a real advantage for auditability and self-hosting, but not a claim about capability or reliability parity.
- No public benchmark data. Nothing in the announcement, README, or replies quantifies success rate, latency, or failure modes against real-world tasks.
- macOS only, per the README's own label — there's no cross-platform story yet, and Windows support is explicitly unconfirmed.
How to try it
Per the README, the fastest path is handing the install prompt above to a coding agent you already run — Codex or Claude Code — rather than installing by hand. The prompt has the agent install via uv with Python 3.12, register the printed skill, run macos-harness doctor to surface required permissions, and verify the connection by capturing an already-running app in the background. That flow is worth trying on a throwaway task first (an app you don't mind an agent poking at) before pointing it at anything with real files or accounts attached.
Related on explainx.ai
- What is an agent harness? Complete guide
- Pi: Mario Zechner's minimal agent harness
- Top 10 open- and closed-source agent harnesses (2026)
- OpenAI brings computer use to Codex on Windows
- AI agents that play GeoGuessr — Browser Use v4
- HeyClicky — voice control for Mac with GPT Realtime
- Computer Use — AI Dictionary
- Official source: github.com/browser-use/macos-harness
Repo stats, star/fork counts, and version numbers reflect github.com/browser-use/macos-harness and Gregor Zunic's X thread as of August 18, 2026, and may change as the project matures.
