# OpenManus: features, protocols, quickstart

## 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

| Field | Value |
| --- | --- |
| 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](https://github.com/FoundationAgents/OpenManus) |
| Website | [openmanus.github.io](https://openmanus.github.io/) |
| Documentation | [github.com](https://github.com/FoundationAgents/OpenManus/blob/main/README.md) |
| 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](https://github.com/FoundationAgents/OpenManus/blob/main/app/agent/manus.py))
- 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](https://github.com/FoundationAgents/OpenManus#browser-automation))
- 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](https://github.com/FoundationAgents/OpenManus#quick-start))
- PlanningFlow (run_flow.py) has an LLM write a step plan tagged with agent names, then runs each step with the matching agent. ([source](https://github.com/FoundationAgents/OpenManus/blob/main/app/flow/planning.py))
- An optional DataAnalysis agent for data analysis and charts can join the flow via [runflow] use_data_analysis_agent in config.toml. ([source](https://github.com/FoundationAgents/OpenManus#custom-adding-multiple-agents))
- Model settings live in config/config.toml, with example files for Anthropic, Azure, Google, Ollama and other providers. ([source](https://github.com/FoundationAgents/OpenManus/tree/main/config))
- Optional Daytona remote sandbox (sandbox_main.py) with sandboxed browser, shell and file tools; browser actions can be watched over VNC. ([source](https://github.com/FoundationAgents/OpenManus/blob/main/app/daytona/README.md))

## 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

| Protocol | Support | Evidence | Note |
| --- | --- | --- | --- |
| MCP | Yes (checked 2026-09-30) | [link](https://github.com/FoundationAgents/OpenManus/blob/main/README.md) | 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 (checked 2026-09-30) | [link](https://github.com/FoundationAgents/OpenManus/blob/main/protocol/a2a/app/README.md) | 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](https://multiagentguide.top/best/self-hosted-local.md))

## 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

```sh
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.

```python
# 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: https://github.com/FoundationAgents/OpenManus#installation

## Pros

- Browser automation works out of the box through the Browser Use MCP server, with a local mode that needs no API key. ([source](https://github.com/FoundationAgents/OpenManus#browser-automation))
- Ships both an MCP client path and an MCP server script in the same repository. ([source](https://github.com/FoundationAgents/OpenManus#quick-start))
- Provider config examples include a local Ollama setup alongside hosted APIs. ([source](https://github.com/FoundationAgents/OpenManus/blob/main/config/config.example-model-ollama.toml))
- Still receiving changes in 2026, including the move to Browser Use CLI 3.0 merged in August 2026. ([source](https://github.com/FoundationAgents/OpenManus/pull/1398))
- MIT license with no paid tier. ([source](https://github.com/FoundationAgents/OpenManus/blob/main/LICENSE))

## Cons

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

## Alternatives

- [MetaGPT](https://multiagentguide.top/tools/metagpt.md)
- [OpenHands](https://multiagentguide.top/tools/openhands.md)
- [DeerFlow](https://multiagentguide.top/tools/deer-flow.md)
- [smolagents](https://multiagentguide.top/tools/smolagents.md)
- [AutoGPT](https://multiagentguide.top/tools/autogpt.md)

## 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

- [OpenManus GitHub repository](https://github.com/FoundationAgents/OpenManus)
- [OpenManus README](https://github.com/FoundationAgents/OpenManus/blob/main/README.md)
- [OpenManus project page](https://openmanus.github.io/)
- [README: installation](https://github.com/FoundationAgents/OpenManus#installation)
- [README: browser automation](https://github.com/FoundationAgents/OpenManus#browser-automation)
- [README: quick start (main.py, run_mcp.py, run_flow.py)](https://github.com/FoundationAgents/OpenManus#quick-start)
- [README: adding multiple agents](https://github.com/FoundationAgents/OpenManus#custom-adding-multiple-agents)
- [Manus agent source](https://github.com/FoundationAgents/OpenManus/blob/main/app/agent/manus.py)
- [PlanningFlow source](https://github.com/FoundationAgents/OpenManus/blob/main/app/flow/planning.py)
- [Config examples](https://github.com/FoundationAgents/OpenManus/tree/main/config)
- [Ollama config example](https://github.com/FoundationAgents/OpenManus/blob/main/config/config.example-model-ollama.toml)
- [Daytona sandbox README](https://github.com/FoundationAgents/OpenManus/blob/main/app/daytona/README.md)
- [A2A protocol integration README](https://github.com/FoundationAgents/OpenManus/blob/main/protocol/a2a/app/README.md)
- [LICENSE (MIT)](https://github.com/FoundationAgents/OpenManus/blob/main/LICENSE)
- [Releases](https://github.com/FoundationAgents/OpenManus/releases)
- [PR #1398: Browser Use CLI 3.0](https://github.com/FoundationAgents/OpenManus/pull/1398)
- [Issue #538: context window exceeded without truncation](https://github.com/FoundationAgents/OpenManus/issues/538)

## 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.

Corrections or removal requests: support@multiagentguide.top

---

Data as of 2026-10-01. Not affiliated with listed projects. HTML version: https://multiagentguide.top/tools/openmanus
