OpenManus Deep Dive: A No-Invite-Code Universal AI Agent
A code-grounded walkthrough of OpenManus architecture, tool layer, browser automation, MCP extension, local deployment, and comparison with LangGraph and CrewAI.
In early 2025, Manus AI created scarcity through invite codes. OpenManus, started by core MetaGPT team members, promises anyone can run a fully functional general-purpose AI Agent locally without an invite code.
Three Run Modes
python main.py: general single-agent chatpython run_mcp.py: MCP tool versionpython run_flow.py: experimental multi-agent flow
Installation
Recommended with uv:
curl -LsSf https://astral.sh/uv/install.sh | 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
playwright install
LLM Configuration
cp config/config.example.toml config/config.toml
Edit the [llm] section with model, base_url, and api_key. Supports Anthropic, OpenAI, Azure, Bedrock, Ollama, etc.
Architecture
app/agent/base.py:BaseAgentwith state and memoryapp/agent/manus.py: generalManusagent combining local and MCP toolsapp/tool/: PythonExecute, BrowserUseTool, Crawl4AITool, StrReplaceEditor, bash, mcp, ask_human, terminateapp/schema.py: includes theMemorymessage list (not persistent)
Memory
There is no standalone app/memory module. Memory is a simple message list in app/schema.py with max_messages truncation and base64 image support. No long-term persistence or cross-session retrieval.
Browser Automation
BrowserUseTool uses browser-use + Playwright; Crawl4AITool handles structured extraction.
MCP Extension
Configure in config.toml under [mcp]:
[mcp]
server_reference = "app.mcp.server"
server_reference points to a Python module. Launch:
python run_mcp.py
# or sse mode
python run_mcp.py --connection sse --server-url http://localhost:8000/sse
Unlike Claude Desktop's JSON MCP config, OpenManus favors embedding a Python MCP server module.
Real-World Case: Technical Research
Prompt "Research the architecture differences between OpenManus and LangGraph" → Agent opens repos/docs with the browser → Crawl4AI extracts content → Memory stores intermediate results → final Markdown is written.
Comparison
| Dimension | OpenManus | LangGraph | CrewAI |
|---|---|---|---|
| Paradigm | ReAct Tool-Call | state-machine graph | role task dispatch |
| Browser | out-of-the-box | manual integration | manual integration |
| Tool extension | local tools + MCP module | Tool Node | tool decorators |
| Context | in-memory message list | checkpoint | basic history |
| Resume | not supported | native | not supported |
| Ease | low | medium | low |
Core differentiator: out-of-the-box browser capability and very low barrier to entry.
When to Use
Good fit: web research, multi-step autonomous tasks, local prototyping, learning how agents work. Avoid: strongly transactional production workflows, complex multi-role collaboration, cross-session persistent memory.
OpenManus-RL
The team collaborates with UIUC on OpenManus-RL, using GRPO-style RL to improve planning and tool selection.
Core value: not making agents omnipotent, but making them usable right now.