Stop letting your AI only click web pages: macos-harness hands the whole Mac to the model with raw primitives
What this project does
Put simply, macOS Harness gives a large language model a set of raw gestures that let it operate an entire Mac computer directly. It is not just another browser-automation tool that helps your agent click around the web. Instead, it connects a single Python process straight to macOS, to your real logged-in browser, and to your local files. Whatever your agent wants to do, it reaches for the system's lowest-level capabilities: screenshot the screen to see what is happening, send keystrokes, type text, click at coordinates, read and write files, and run scripts. The most interesting part is what happens when the agent hits a task for which no ready-made tool exists. Mid-task, it simply writes the missing logic in ordinary Python and keeps going. There is no framework, no pre-baked recipe, no guardrail. The model receives the rawest system primitives, and everything else is up to it.
Why it is trending
I think the project is catching on for two reasons. First, it comes from the browser-use team, the people who built a popular web agent. A large audience already watches whatever they ship next in the computer-automation space, so the moment it went open source it drew a crowd. Second, it retells the whole computer-use story. Most computer-control agents people know today only stare at a browser. macOS Harness instead hands the entire Mac to the model, and it deliberately ships zero app-specific tools. There is no dedicated Spotify tool, no Slack tool, no Final Cut tool. That minimalist philosophy resonates with people who feel existing agents are too boxed in. That is why it passed four hundred stars within two weeks of release.
Technical highlights
The heart of the harness is six raw primitives: see, key, type, click, ax, and script. Think of them as the six basic commands you teach your agent to drive a Mac. see takes screenshots using the OS window service and can quietly capture a background app's window without ever bringing it to the front. key and type deliver keyboard input and text straight to a target application's process ID through system events, so there is no need to focus that window. click taps at coordinates and even draws an animated, click-through pointer. Crucially, it never moves your real cursor. When vision is not enough, ax exposes Apple's Accessibility interface so the agent can pinpoint a specific UI element. And script lets the agent fire AppleScript or Apple Events directly, for example telling Spotify to play a particular song.
On the browser side, it reuses browser-use's Browser Harness over the CDP protocol to attach to your genuinely logged-in Chrome. That means the agent can operate pages where you are already signed in, stateful web apps rather than a blank incognito window. At the same time, browser, Path, and subprocess are right there in the same Python process. The keyword of the whole design is thin. The team keeps stressing it makes no decisions for the model. It only lays out the lowest-level system abilities, and if a tool is missing, the model writes Python to add it.
Privacy is handled with care too. The harness never activates or raises the target app, and it never moves your physical pointer. Anonymous telemetry is on by default, but it records only the CLI command category, success or failure, duration, package version, OS and architecture, and which agent client it detected. It never logs your prompts, app names, screenshots, UI text, scripts, paths, or window titles. If you dislike that, a single command turns it off.
Who it is for
This project fits two groups best. The first is developers who want to give their coding agents, Claude Code, Codex, and friends, a pair of hands. You no longer need a custom integration for every app. Register the harness as a skill and the agent can drive the Mac to finish real tasks. The second is macOS automation enthusiasts who used to stitch workflows together with scripts and shortcuts. Now they can describe the workflow in natural language and let the agent orchestrate it. The catch is you must be on a Mac and willing to grant the terminal some accessibility permissions.
Quick try
The official path uses uv, with Python 3.12 required: uv tool install --python 3.12 macos-harness. Then run macos-harness skill to print the skill description you register with your agent, and macos-harness doctor to check which macOS permissions are still missing. You can also paste the install prompt straight into Codex or Claude Code and let the agent install itself, self-check, and verify the connection.
How it compares
Compared with OpenAI Operator or Claude's computer-control features, the biggest difference is the layer. Operator-style tools mostly live inside a browser, watching web forms and clicks. macOS Harness is at the operating-system level and can touch apps, the browser, and the filesystem at once. Compared with agent frameworks that pre-build a tool for every piece of software, it goes the opposite way: only six raw primitives, and the model assembles the rest. The upside is flexibility and no ceiling set by a tool's limits. The cost is that you trust the model to write code to fill gaps. For players who want freedom over the whole computer rather than just clicking web pages, this thin harness is the better fit.