OpenManus is an open-source, local-first autonomous AI action engine designed to orchestrate complex reasoning, coding, and web-browsing workflows. Inspired by the capabilities of next-generation AI assistants like Manus, OpenManus allows developers and power users to deploy agentic loops directly on their machines. The engine handles long-running goals by writing code, executing scripts in an isolated sandbox, and navigating the web, while presenting a real-time interactive remote browser screen. This stream enables users to observe the agent's progress and actively guide the session by interacting with the browser interface in real time.
(Insert GIF demonstrating live browser control, terminal execution, and settings toggling here)
[DEMO GIF PLACEHOLDER]
Select any section below to learn how it works under the hood:
🎭 3 Specialized Agent Roles
OpenManus optimizes performance by offering three specialized agent personas that can be selected directly in the chat panel depending on the task:
OpenManus(Autonomous Orchestrator): The default general-purpose planner that handles standard tasks, tool selection, and reasoning.CoderAgent(Software Developer): Focuses on code generation, script execution, environment resolution, and math/data tasks inside the Docker sandbox.BrowserAgent(Web Researcher): Optimizes search, web browsing, scraping, and remote interaction.
🔒 Persistent Docker Sandbox & Docker-in-Docker
All code execution (Python, Node.js, Shell scripts) happens inside a persistent, secure Docker sandbox container:
- In-Memory Tar Streams: Pushes scripts and assets into the sandbox via tar stream archives to avoid local file volume mount issues.
- Persistent Runtimes: The container remains running during the session to preserve installed packages (e.g. if the agent runs
pip install pandasin step 1, it remains available in subsequent steps). - Docker-in-Docker: Mounts the host's
/var/run/docker.sockto allow the agent to run and manage its own nested Docker containers for complex multi-container workflows. - Resource Constraints: Enforces a 512MB RAM cap, 80% CPU limit, and a PID limit of 128 to prevent runaway processes.
💻 Coding, File Creation & Live Hosted URLs
The agent has full read/write access to the workspace directory to build complete projects:
- Workspace File Management: Reads, writes, modifies, and deletes files directly within the local workspace.
- Live Local Servers: The agent can spin up development servers (like React Vite, Express, or Python Flask) inside the environment.
- Link Recognition: If a local server is started, it is automatically exposed on
localhostand rendered as a live, clickable host URL in the chat and execution panel.
🛠️ Workflows & Skills Store
OpenManus features a database-backed Skills Store that allows the agent to save and reuse complex workflows:
- Workflow Distillation: The agent can bundle a multi-step workflow (such as scraping a site, extracting data, and formatting a report) into a reusable skill.
- Interactive Execution: Call upon saved skills inside chat sessions to perform automated routines.
🧠 Long-Term Postgres Memory
- Persistent Facts: Remembers folders, habits, preferences, or credentials across separate chat sessions.
- LLM Consolidation: Periodically merges duplicate memories into a compact list using LLM consolidation to minimize context-window footprint.
⚡ Context Compacting & AI Summary
- Configurable Summarization Threshold (in characters).
- Automatically compacts old messages and logs when chat size exceeds the limit, maintaining the agent's core context window.
📊 Agent Workspace & Session Diagnostics
The Diagnostics & Inspector panel on the right side of the interface provides deep visibility into the agent's active session:
- Timeline: Visualization of task steps and agent execution timeline.
- Thoughts: The agent's raw chain-of-thought (thinking blocks) parsed from
<thinking>tags. - Logs: Raw logs showing command outputs and terminal execution history.
- JSON: Full session JSON state inspector.
- Browser: Live interactive browser player (CDP stream canvas player).
- Files: Workspace file explorer allowing you to read/inspect files created by the agent in real time.
- Prompt: Inspection of the dynamic System Prompt and injected messages history.
Make sure you have these installed:
- Node.js (version
20.xor higher) - pnpm package manager
- PostgreSQL running locally (or via Docker Compose)
- Docker Desktop (with "Expose daemon on tcp://localhost:2375" checked in settings on Windows)
- Ollama (Optional): If you want to use local models (like
qwen2.5:7borgemma2). OpenManus also natively supports Groq and OpenAI cloud providers out-of-the-box.
Run the pre-configured Postgres database container:
# Starts PostgreSQL (exposed on port 5432) and pgAdmin (on port 5050)
pnpm run docker:upNote: The schema is automatically applied and seeded with initial skills on first boot.
Copy the template and adjust values:
cp .env.example .envInside your .env, specify your database credentials:
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=openmanus
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgresOpenManus is structured as a pnpm monorepo workspace. Running install at the root handles both backend and frontend automatically:
# Option A: Automatic installation of all dependencies (root & frontend)
pnpm installAlternatively, you can install them separately if needed:
# Option B: Separate installations
pnpm install # Install backend/root dependencies
pnpm --filter frontend install # Install frontend dependenciesInstalls the headless Chrome binary needed for web browsing:
pnpm run browser:installStart both the Express backend and Vite frontend concurrently:
pnpm run dev:all- Frontend Client: Visit http://localhost:5173.
- Backend API: Running at http://localhost:3000.
This project is open-source software licensed under the MIT License.