OpenManus

Framework · Last verified 2026-09-30

TL;DR

OpenManus is an MIT-licensed Python agent project started by MetaGPT contributors as an open alternative to Manus. It runs a general tool-using agent with browser, Python and file-editing tools, connects to MCP servers, and has an unstable planning flow for several agents. It suits developers experimenting with general-purpose computer-use agents.

Key facts

OpenManus key facts. Data as of 2026-10-01.
Type Framework
Languages / SDKs Python
License MIT
Pricing model Open source, free
Orchestration pattern Supervisor
GitHub stars 58,449 (as of 2026-10-01)
GitHub forks 10,141
Last push 2026-09-30
Latest release v0.3.0
Repository FoundationAgents/OpenManus
Website openmanus.github.io
Documentation github.com
Last verified 2026-09-30

Key features

  • The main Manus agent is a tool-calling loop with Python execution, a string-replace file editor, an ask-human tool and a terminate tool, capped at 20 steps by default. (source)
  • Browser Use CLI 3.0 starts as a default MCP server for browser control; local mode attaches to Chrome or Chromium without an API key. (source)
  • Extra MCP servers are added through a JSON config, and run_mcp_server.py exposes OpenManus tools such as bash and the editor as an MCP server. (source)
  • PlanningFlow (run_flow.py) has an LLM write a step plan tagged with agent names, then runs each step with the matching agent. (source)
  • An optional DataAnalysis agent for data analysis and charts can join the flow via [runflow] use_data_analysis_agent in config.toml. (source)
  • Model settings live in config/config.toml, with example files for Anthropic, Azure, Google, Ollama and other providers. (source)
  • Optional Daytona remote sandbox (sandbox_main.py) with sandboxed browser, shell and file tools; browser actions can be watched over VNC. (source)

Architecture and orchestration pattern

Pattern: Supervisor

The core is a single Manus agent built on a ReAct-style tool-call loop. Each step the model picks tools (local ones such as PythonExecute and StrReplaceEditor, plus tools loaded from connected MCP servers), the results are appended to the conversation, and the loop ends when the agent calls terminate or reaches max_steps. A duplicate-response check nudges the agent when it repeats itself.

The multi-agent path is PlanningFlow, started by run_flow.py. The flow's LLM uses a planning tool to write a step list, labelling steps with agent names; the flow then walks the plan, hands each step to the agent whose key matches the label (or the primary agent), and marks step status until the plan is done. The README calls this multi-agent version unstable.

State is in-process only. Each agent keeps a Memory object holding the message list, trimmed to the most recent 100 messages; there is no documented persistence, vector memory or resume from checkpoint.

Human in the loop

The default Manus agent includes an ask_human tool; when the model calls it, the process prints the question and waits for a typed answer in the terminal (input()). A run can be stopped with Ctrl+C, which the entry scripts catch, and run_flow.py aborts after a 60-minute timeout. No approval step before Python, bash or file-edit tools run is documented.

Protocols

MCP, A2A and AG-UI support for OpenManus. See the full matrix.
ProtocolSupportNote
MCP Yes evidence
checked 2026-09-30
Client: the README says OpenManus starts Browser Use CLI as a default MCP server and offers an MCP tool version (run_mcp.py); the repo also ships run_mcp_server.py, which serves OpenManus tools over MCP.
A2A Partial evidence
checked 2026-09-30
An experimental A2A server wraps the Manus agent (protocol/a2a); it supports only non-streaming mode and pins a2a-sdk 0.2.5. No A2A client side is documented.
AG-UI Unknown
checked 2026-09-30
README and GitHub code search for ag-ui / agui returned nothing, and OpenManus is not in the AG-UI README integration list.

Best for

  • Experimenting with a general-purpose agent that browses, runs Python and edits files from one prompt.
  • Reading a compact plan-and-execute flow that hands plan steps to named agents.
  • Running the agent against a local model through the Ollama config example. (shortlist)

Not for

  • Applications that need a versioned library installed from PyPI; OpenManus is run from a cloned repository.
  • Hosts where model-written Python and file edits must not run directly; set up the sandbox first.
  • Teams that need a TypeScript or JVM SDK.

Quickstart

git clone https://github.com/FoundationAgents/OpenManus.git && cd OpenManus && uv venv --python 3.12 && source .venv/bin/activate && uv pip install -r requirements.txt

Install not yet verified by this site. What this means

# Run from the OpenManus repo root after copying config/config.example.toml
# to config/config.toml and adding your model key there.
import asyncio

from app.agent.manus import Manus
from app.flow.flow_factory import FlowFactory, FlowType


async def main():
    flow = FlowFactory.create_flow(flow_type=FlowType.PLANNING, agents={"manus": Manus()})
    result = await flow.execute("Draft a README for a small to-do CLI and save it as workspace/README.md")
    print(result)


asyncio.run(main())

Common pitfalls

  • The README creates the environment with Python 3.12 (conda or uv venv --python 3.12).
  • Nothing runs until config/config.toml exists: copy config/config.example.toml and add an API key and model.
  • Browser control uses uvx browser-use --cli-mcp, so uv/uvx must be available; set OPENMANUS_DISABLE_BROWSER_USE=1 to turn it off. BrowserGym still needs playwright install.
  • The multi-agent run_flow.py is labelled unstable in the README; the DataAnalysis agent needs extra dependencies from app/tool/chart_visualization/README.md.
  • python main.py runs the single agent; python run_mcp.py runs the MCP tool version.

Official quickstart

Pros

  • Browser automation works out of the box through the Browser Use MCP server, with a local mode that needs no API key. (source)
  • Ships both an MCP client path and an MCP server script in the same repository. (source)
  • Provider config examples include a local Ollama setup alongside hosted APIs. (source)
  • Still receiving changes in 2026, including the move to Browser Use CLI 3.0 merged in August 2026. (source)
  • MIT license with no paid tier. (source)

Cons

  • The README labels the multi-agent version (run_flow.py) as unstable. (source)
  • Not packaged as a library: you clone the repository, install requirements.txt and run scripts from its root. (source)
  • The only tagged releases (v0.1.0 to v0.3.0) date from April 2025; later work is unreleased commits on main. (source)
  • An open issue reports the agent looping on retries when the context window overflows, with no automatic truncation. (source)
  • A2A support is an experimental, non-streaming server pinned to a2a-sdk 0.2.5. (source)

Alternatives

FAQ

Does OpenManus support MCP?

Yes. The agent connects to MCP servers (Browser Use CLI runs as the default one, and more can be added in a JSON config), and run_mcp_server.py exposes OpenManus tools as an MCP server.

Does OpenManus support A2A?

Partly. The repo contains an experimental A2A server for the Manus agent that only supports non-streaming mode and pins a2a-sdk 0.2.5. AG-UI support was not found.

Is OpenManus free?

Yes, it is MIT licensed with no paid tier. You pay for the model API you configure; optional Browser Use Cloud and Daytona sandboxes need their own API keys.

How do I run OpenManus with more than one agent?

Run python run_flow.py, which plans the task and hands steps to agents; set use_data_analysis_agent = true under [runflow] to add the DataAnalysis agent. The README marks this mode as unstable.

Who maintains OpenManus?

It is developed under the FoundationAgents GitHub organization by contributors from MetaGPT, according to the README.

Sources

Unknown fields: protocols.agui is unknown: README and GitHub code search for ag-ui / agui returned nothing, and OpenManus is not listed in the AG-UI README integration list. There is no separate docs site; docs_url points to the README.

Something wrong or out of date, or do you maintain OpenManus and want this page removed? Report a correction or request removal.