Mac Computer Use
Run computer-use models natively on macOS for direct screen, keyboard, mouse, and file interaction.
- Source repo
- deedy/mac_computer_use
- Stars
- ★ 891
- Last updated
- 2y ago
- Primary language
- Python
- FA score
- 13/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformClaude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A macOS developer who wants to operate local GUI workflows through an Anthropic model in a Streamlit interface.
- Not a fit if
- Users on Windows or Linux
- Anyone unwilling to grant an agent full control of their Mac
- Source review
- 13/100 · Major gaps 8 safety controls not found
What does this agent do, and when should you use it?
Mac Computer Use is a macOS-native fork of Anthropic Computer Use for giving models control of a local Mac. Instead of the upstream Ubuntu Docker image, it uses native macOS commands and utilities for direct system control. The repository exposes a Streamlit interface and names Anthropic, Bedrock, and Vertex as supported LLM providers. It captures the screen, drives keyboard and mouse input through cliclick, and supports filesystem interaction and file editing. It is aimed at macOS users who can accept the permissions and safety implications of autonomous local-computer control.
After configuring API_PROVIDER, ANTHROPIC_API_KEY, WIDTH, HEIGHT, and DISPLAY_NUM in .env, the user starts the interface with streamlit run streamlit.py. The project captures the screen with native macOS commands and sends mouse and keyboard actions through cliclick; it can also interact with and edit files. Higher display resolutions are automatically scaled to recommended targets for model performance. The documented providers are Anthropic, Bedrock, and Vertex, with an Anthropic API-key configuration example.
- A macOS developer who wants to operate local GUI workflows through an Anthropic model in a Streamlit interface.
- An individual automating a desktop task where the model must inspect screenshots, click controls, and type input.
- A Computer Use evaluator who wants native Mac system control instead of the upstream Ubuntu Docker environment.
- An experimental team using a controlled Mac where a model needs to interact with the filesystem and edit files.
How do you install or deploy this agent?
Prerequisites: macOS Sonoma 15.7 or later, Python 3.12+, Homebrew, and cliclick. Run:
git clone https://github.com/deedy/mac_computer_use.git
cd mac_computer_use
python3.12 -m venv venv
source venv/bin/activate
brew install cliclick
chmod +x setup.sh
./setup.sh
pip install -r requirements.txtHow do you use this agent?
Create .env in the repository root with at least:
API_PROVIDER=anthropic
ANTHROPIC_API_KEY=<key>
WIDTH=800
HEIGHT=600
DISPLAY_NUM=1Then run streamlit run streamlit.py. The interface is available at http://localhost:8501. Recommended display sizes include 1024x768, 1280x800, and 1366x768.
What are this agent's strengths and limitations?
- Uses native macOS commands and utilities, eliminating the documented Docker requirement of the upstream approach.
- Provides a concrete keyboard and mouse control mechanism through cliclick.
- Includes a Streamlit interface available locally after startup.
- Documents support for Anthropic, Bedrock, and Vertex providers.
- Automatically scales higher screen resolutions toward documented performance targets.
- The README warns that the agent can control everything on the Mac, creating substantial safety exposure.
- Only macOS Sonoma 15.7 or later is documented; support for other operating systems is not evidenced.
- Adoption requires local Python 3.12+, Homebrew, and cliclick dependencies.
- The shown setup requires an Anthropic API key, and the referenced Beta API may change.
- The available documentation does not describe permission setup, recovery behavior, or action auditing.
How does this agent compare with similar options?
Compared with Anthropic Computer Use as described in the upstream link, which runs an Ubuntu Docker image, this fork runs natively on macOS and uses native commands and utilities for direct system control.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Mac Computer Use This agent | 13 · Major gaps | CLIFree + model costs | ★ 891 | 2y ago | Python | Claude API |
| macOS Harness | 55 · Major gaps | CLIFree + model costs | ★ 1k | 22d ago | Python | Codex · Claude Code |
| SwiftAutoGUI Desktop Automation | 60 · Some gaps | CLIFree + model costs | ★ 94 | 19d ago | Swift | Claude Code · OpenAI API |
| Photo Agents | 39 · Major gaps | CLIFree + model costs | ★ 655 | 4mo ago | Python | OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence: The repository explicitly warns about risks, but provides no implementation of least privilege, user confirmation, data flow transparency, sensitive data handling, dependency security, external effects, rollback, or source attribution. Deductions: These aspects are absent from the files, hence 0.
Evidence: README and requirements.txt are largely consistent, but no error handling or failure messages are provided. Deductions: Self-consistency is only partially met, dependency availability is only listed, failure messages are missing.
Evidence: README describes target users (Mac users) and scenarios (GUI automation), and lists capability boundaries (e.g., screen resolution limits). Deductions: Trigger precision (how users precisely control actions) is not specified, environment fit is only partially covered.
Evidence: README provides installation steps and known limitations, but lacks license, versioning, changelog, and maintenance responsibility. Deductions: Information architecture is reasonable, but naming stability, examples/FAQ, license, versioning, and maintenance are missing.
Evidence: README describes output (Streamlit interface) and marginal value (native Mac control), but no cost-benefit analysis. Deductions: Output usability is partially met, marginal value is described, cost-benefit is not quantified.
Evidence: Claims in README (e.g., multi-LLM support) are not traceable to verification, no cross-source corroboration, and no separation of facts and inferences. Deductions: All verification criteria are unmet.
- Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
- Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
- Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
- Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
- This repository grants AI models full control over the Mac, posing significant security risks, and provides no safety mechanisms (e.g., user confirmation, least privilege).
- No license information is provided; legal compliance must be verified before use.
- Dependencies (e.g., pyautogui, keyboard) could be misused, and no dependency security audit is provided.
FAQ
Does it require Docker?
What does it need on the machine?
How do I connect it to Anthropic?
API_PROVIDER=anthropic and ANTHROPIC_API_KEY=<key> in .env, then launch the Streamlit app.