How to Run OpenManus on macOS in 2026: Self-Host the Manus AI Alternative

How to Run OpenManus on macOS in 2026: Self-Host the Manus AI Alternative

Last updated April 2026 — refreshed for current model/tool versions, the FoundationAgents fork, and the Manus AI corporate shutdown.

Manus AI's hosted product is on borrowed time. On 27 April 2026 China's NDRC formally blocked Meta's roughly $2 billion acquisition of the Singapore-relocated Manus AI; Bloomberg's follow-up call labelled the corporate model "officially dead." If you have been relying on the paid Manus agent — or were planning to — the only durable path forward is the open-source fork: OpenManus, now maintained by the FoundationAgents organisation (the MetaGPT team) at github.com/FoundationAgents/OpenManus. This guide walks you through installing OpenManus v0.3.0 on macOS, wiring it to a current 2026 LLM (Claude Opus 4.7, GPT-5.5, DeepSeek V4-Flash, or a fully local Ollama stack on Apple Silicon), and getting a working agent loop in under fifteen minutes.

Want the full picture? Read our continuously-updated Claude Opus 4.7 complete guide — capabilities, pricing, prompting tips, and head-to-head benchmarks vs GPT-5.5 and DeepSeek V4.

What changed in 2026 (TL;DR)

  • Manus AI corporate is gone. NDRC blocked the Meta deal on 27 April 2026; the founders are under exit bans and Bloomberg's 29 April follow-up called the corporate Manus model "officially dead." Self-hosting OpenManus is now the only realistic option.
  • Repository moved. The canonical home is github.com/FoundationAgents/OpenManus, not the old mannaandpoem/OpenManus path. Old clones still resolve via redirect, but new tutorials should use the new URL.
  • Current release: v0.3.0 (April 2026). The default config now ships with claude-3-7-sonnet-20250219 as the placeholder and includes commented examples for AWS Bedrock, Azure OpenAI, Ollama, and Jiekou.AI.
  • Models you'll actually plug in: Claude Opus 4.7 ($5 / $25 per million tokens, released 16 April 2026), Claude Sonnet 4.6 ($3 / $15), GPT-5.5 (released 23 April 2026), DeepSeek V4-Flash ($0.14 / $0.28 per million tokens, MIT-licensed, released 24 April 2026), or a local Qwen 3.5/3.6 / DeepSeek-R1-Distill on Ollama 0.19+ (now MLX-backed on Apple Silicon).
  • Step ordering matters. The previous version of this guide had the config and clone steps interleaved out of order. The corrected sequence is below.

What is OpenManus in 2026?

OpenManus is an open-source agent framework built by the MetaGPT / FoundationAgents team to replicate Manus AI's planner-executor-verifier loop without invite codes, paid subscriptions, or vendor lock-in. The original prototype was written in three hours in March 2025; by April 2026 the project has crossed 56k GitHub stars and roughly 9.7k forks, with a multi-agent execution mode (run_flow.py), a Model Context Protocol entry point (run_mcp.py), an optional data-analysis sub-agent, browser automation via Playwright, and pluggable search backends (Google, DuckDuckGo, fallbacks).

Key features of OpenManus v0.3.0

  • Open-weights friendly. Works with any OpenAI-compatible endpoint: Anthropic, OpenAI, Azure OpenAI, AWS Bedrock, DeepSeek, Ollama, vLLM, Jiekou.AI, or your own gateway.
  • Multi-agent (run_flow.py). Planner, executor, and verifier roles co-ordinate on multi-step tasks; still labelled "unstable" in the README but the most powerful mode.
  • MCP server (run_mcp.py). Exposes OpenManus tools over the Model Context Protocol, so Claude Desktop, Cursor, and other MCP clients can drive the agent directly.
  • Browser automation via Playwright (app/tool/browser_use_tool.py) with vision-capable models for screenshot reasoning.
  • Sandboxing against a Docker image with configurable memory limits, so untrusted task outputs don't escape into your shell.
  • Optional data-analysis agent via [runflow] use_data_analysis_agent = true.

OpenManus vs the (now-blocked) Manus AI service

DimensionOpenManus (FoundationAgents)Manus AI (corporate)
Status (April 2026)Active, v0.3.0, 56k starsMeta acquisition blocked by NDRC 27 April; founders exit-banned
CostFree, MIT-licensed code; you pay only for the LLM you choose (or $0 if local)Paid subscription; future of billing unclear after deal block
Self-host on macOSYes, this guideNo — hosted SaaS only
CustomisationFull source access; add tools, swap LLMs, fork freelyClosed product, vendor-controlled
GAIA Level-1 benchmarkRoughly 79–94% of Manus's pass rate per published comparisons~86.5% pass rate on Level-1 (peak)
Local-only modeYes, via Ollama 0.19+ on Apple SiliconNo

1. Prerequisites

Confirm these before touching the repo. Skipping any of them is the most common cause of install failures.

System requirements

  • macOS 13 Ventura or later (Apple Silicon strongly recommended; Playwright still installs on Intel but local LLM throughput is much lower). The upstream README says Python 3.12 — do not try 3.11 or 3.13.
  • Python 3.12.x exactly. Use pyenv install 3.12.7 if Homebrew gives you 3.13.
  • Git (brew install git).
  • Xcode Command Line Tools (xcode-select --install) — Playwright's browser builds need them.
  • Node.js 20+ if you plan to use the MCP server with Claude Desktop or Cursor.

Hardware and LLM choice

  • API-only path (any Mac from 2018 onward): nothing exotic. 8 GB RAM is fine. You'll point OpenManus at Claude, GPT, or DeepSeek over HTTPS.
  • Hybrid path (M2/M3/M4, 16 GB+): run Qwen 3.5/3.6-35B-A3B on Ollama 0.19+ (MLX backend) for cheap, private inference; fall back to Claude Opus 4.7 only for the hardest sub-tasks.
  • Fully local path (M3 Max / M4 Pro / Mac Studio with 64 GB+ unified memory): Qwen 3.6-35B-A3B for general reasoning, DeepSeek-R1-Distill-Qwen-32B for chain-of-thought tasks, MiniCPM-V for vision. Expect ~110 decode tokens/s on M5 Max with the new MLX backend; older Apple Silicon is slower but workable.

API keys (current 2026 prices)

ProviderRecommended modelInput / output (per 1M tokens)Notes
AnthropicClaude Opus 4.7 (or Sonnet 4.6 for cost)$5 / $25 (Opus); $3 / $15 (Sonnet)Strongest tool-use; new tokenizer can yield ~35% more tokens than the prior generation, factor that into budgets.
OpenAIGPT-5.5 (released 23 April 2026)Check current OpenAI pricing pageBest for general tasks; large context.
DeepSeekDeepSeek V4-Flash (or V4-Pro)$0.14 / $0.28 (Flash); $1.74 / $3.48 (Pro)Cheapest frontier-class option; 1M-token context; MIT-licensed weights also runnable locally if you have the hardware.
Local (Ollama)Qwen 3.6-35B-A3B + MiniCPM-V (vision)$0Requires Ollama 0.19+ for the MLX-accelerated path on Apple Silicon.

2. Install OpenManus on macOS

Two install paths. uv is the recommended path (it's what the upstream README leads with) — it's roughly 10x faster than pip on cold installs and produces a clean isolated .venv. Use Conda only if you already manage every Python project that way.

Install Playwright browsers (needed for any task that browses the web):

playwright install

Install dependencies:

uv pip install -r requirements.txt

Create and activate a Python 3.12 virtualenv:

uv venv --python 3.12
source .venv/bin/activate

Clone the FoundationAgents fork (note the new org):

git clone https://github.com/FoundationAgents/OpenManus.git
cd OpenManus

Install uv (skip if you already have it):

curl -LsSf https://astral.sh/uv/install.sh | sh
exec $SHELL  # reload PATH

Path B — Conda

conda create -n open_manus python=3.12 -y
conda activate open_manus
git clone https://github.com/FoundationAgents/OpenManus.git
cd OpenManus
pip install -r requirements.txt
playwright install

3. Configure config.toml (in the right order)

The file lives at config/config.toml. The repo ships config/config.example.toml — copy it first, edit second, never edit the example file in place.

  1. Pick a profile below, paste it over the [llm] and [llm.vision] blocks, save the file.

Open the new file in your editor of choice:

code config/config.toml   # or: nano config/config.toml

Copy the example into the active config path:

cp config/config.example.toml config/config.toml

Profile 1 — Claude Opus 4.7 (highest-quality tool-use)

[llm]
model = "claude-opus-4-7"
base_url = "https://api.anthropic.com/v1"
api_key = "sk-ant-..."          # set in your shell, not committed
max_tokens = 8192
temperature = 0.0

[llm.vision]
model = "claude-opus-4-7"
base_url = "https://api.anthropic.com/v1"
api_key = "sk-ant-..."

Profile 2 — DeepSeek V4-Flash (cheapest frontier model)

[llm]
model = "deepseek-v4-flash"
base_url = "https://api.deepseek.com/v1"
api_key = "sk-..."
max_tokens = 8192
temperature = 0.0

[llm.vision]
model = "deepseek-v4-flash"
base_url = "https://api.deepseek.com/v1"
api_key = "sk-..."

Caveat: earlier DeepSeek revisions (V3, R1) sometimes failed OpenManus tool calls because of strict JSON schema mismatches. V4 fixes most of that, but if you see "tool call malformed" loops, drop temperature to 0 and shrink max_tokens to 4096.

Profile 3 — GPT-5.5

[llm]
model = "gpt-5.5"
base_url = "https://api.openai.com/v1"
api_key = "sk-..."
max_tokens = 8192
temperature = 0.0

[llm.vision]
model = "gpt-5.5"
base_url = "https://api.openai.com/v1"
api_key = "sk-..."

Profile 4 — Fully local with Ollama 0.19+ (MLX backend)

Install Ollama first (brew install ollama or the installer from ollama.com), pull the models, and start the server:

brew install ollama
ollama serve &            # in a separate terminal
ollama pull qwen3.6:35b   # ~20 GB, MoE with 3B active params
ollama pull minicpm-v     # vision model

Then point OpenManus at the local OpenAI-compatible endpoint:

[llm]
model = "qwen3.6:35b"
base_url = "http://localhost:11434/v1"
api_key = "ollama"            # any non-empty string
max_tokens = 4096
temperature = 0.0

[llm.vision]
model = "minicpm-v"
base_url = "http://localhost:11434/v1"
api_key = "ollama"

Optional blocks worth knowing about

[browser]
headless = false           # set true for CI; false to watch the agent click
disable_security = true    # only for trusted, sandboxed targets

[search]
engine = "Google"          # or "DuckDuckGo"
fallback_engines = ["DuckDuckGo"]
retry_delay = 60
lang = "en"
country = "us"

[sandbox]
# image = "python:3.12-slim"
# memory_limit = "1g"

[mcp]
server_reference = "app.mcp.server"

[runflow]
use_data_analysis_agent = true

4. Run OpenManus

Single-agent mode (start here)

python main.py

You'll get an interactive prompt. Try something concrete: "Open codersera.com, find the most recent blog post, summarise it in five bullets." The agent should plan the steps, launch Playwright, scrape the page, and return the summary.

Multi-agent (planner + executor + verifier)

python run_flow.py

This is the closest analogue to the original Manus loop. Still flagged as unstable upstream — expect occasional infinite loops on hard tasks; ctrl-C and reduce the task scope.

MCP server mode

python run_mcp.py

Use this when you want Claude Desktop, Cursor, or any MCP client to call OpenManus tools. Add the server to your client's MCP config pointing at the local stdio entry point.

5. Troubleshooting

Dependency conflicts

  • Confirm python --version reports 3.12.x. Anything else, recreate the venv with uv venv --python 3.12.
  • If pip/uv hangs on a transitive lib (often playwright or browser_use), clear caches: uv cache clean then reinstall.

API key errors

  • Don't paste keys directly into config.toml if the repo will ever be pushed. Use shell env vars and reference them via your shell's templating, or keep the file .gitignore'd (it already is by default).
  • If Anthropic returns 401 with a valid-looking key, the most common cause is a stale workspace; regenerate from the Anthropic console rather than reusing 2025-era keys.

Browser / Playwright issues

  • playwright install must be re-run inside the active venv after the initial pip install — installing it globally won't be picked up.
  • On Apple Silicon, set headless = false and watch the first run; permission prompts for Accessibility / Screen Recording sometimes block automation silently.

Ollama is slow or OOMs

  • Upgrade to Ollama 0.19+ (brew upgrade ollama) — the MLX backend nearly doubles decode speed on Apple Silicon and dramatically reduces RAM pressure.
  • Use MoE models (Qwen 3.6-35B-A3B has only 3B active parameters per token) over dense 70B-class models; same quality envelope, far better Mac throughput.

6. Advanced patterns

Multi-model routing

The strongest 2026 setup is not "pick one model" — it's routing. Cheap reasoning steps go to DeepSeek V4-Flash or local Qwen; planning and verification go to Claude Opus 4.7. OpenManus doesn't ship a router, but you can fork app/llm.py to switch base_url/model per agent role. Several community PRs propose this; check the open issues before duplicating work.

Use the Docker sandbox in production

Anything that executes shell or Python from agent output should run inside the bundled sandbox. Uncomment the [sandbox] block, set a 1 GB memory cap, and pin the image. The performance hit is small, the blast-radius reduction is large.

Add custom tools

Tools live under app/tool/. The pattern is one class per tool with a name, description, schema, and async execute method. Register it in the agent's tool list and the LLM will be able to call it on the next run.

7. Contributing back

The project is community-driven and the maintainers merge actively. To contribute:

  1. Fork FoundationAgents/OpenManus on GitHub.

Push and open a pull request:

git push origin feature/your-feature

Commit your changes with a conventional message:

git commit -m "feat(tools): add <your-tool>"

Create a feature branch:

git checkout -b feature/your-feature

References & further reading