Skip to content

Simpleyyt/ai-manus

Repository files navigation

AI Manus

English | 中文 | Official Site | Documents

GitHub starsLicense: MIT

AI Manus is a general-purpose AI Agent system that supports running various tools and operations in a sandbox environment. Now with Claw — a deeply integrated OpenClaw AI assistant that brings one-click deployment, per-user isolated containers, and seamless chat history to the Manus ecosystem.

Enjoy your own agent with AI Manus!

👏 Join QQ Group(1005477581)

❤️ Like AI Manus? Give it a star 🌟 or Sponsor to support the development!

🚀 Try a Demo

📝 Blog: Rebuild Manus with WebUI and Sandbox

Demos

Basic Features

  • Task: Code Use, Browser Use, and multi-session switching
basic.mp4

Browser Use

  • Task: Find latest news
browser-use.mp4

Code Use

  • Task: Write a complex Python example
code-use.mp4

Key Features

  • Deployment: Minimal deployment requires only an LLM service, with no dependency on other external services.
  • Agent loop: Plan-and-execute flow with composable system prompts and native structured output tools (no fragile JSON-in-prompt protocol).
  • Tools: Supports Terminal, Browser, File, Web Search, and messaging tools with real-time viewing and takeover capabilities, supports external MCP tool integration.
  • Claw: Integrated OpenClaw AI assistant with one-click deployment, per-user isolated containers, auto-expiry countdown, and full chat history.
  • Sandbox: Each task is allocated a separate sandbox that runs in a local Docker environment.
  • Task Sessions: Session history is managed through MongoDB/Redis, supporting background tasks.
  • Conversations: Supports stopping and interrupting, file upload and download.
  • Multilingual: Supports both Chinese and English.
  • Authentication: User login and authentication.

Development Roadmap

  • Tools: Support for Deploy & Expose.
  • Sandbox: Support for mobile and Windows computer access.
  • Deployment: Support for K8s and Docker Swarm multi-cluster deployment.

See docs/roadmap.md for the full checklist (including completed items such as Docker Compose, Settings, Celery backend, and context engineering).

Overall Design

Image

When a user initiates a conversation:

  1. Web sends a request to create an Agent to the Server, which creates a Sandbox through /var/run/docker.sock and returns a session ID.
  2. The Sandbox is an Ubuntu Docker environment that starts Chrome browser and API services for tools like File/Shell.
  3. Web sends user messages to the session ID, and when the Server receives user messages, it forwards them to the PlanAct Agent for processing.
  4. During processing, the PlanAct Agent plans and executes steps: the planner/executor submit structured results through native tool calls, and call sandbox tools (Shell / Browser / File / Search / MCP) as needed.
  5. All events generated during Agent processing are sent back to Web via SSE.

When users browse tools:

  • Browser:
    1. The Sandbox's headless browser starts a VNC service through xvfb and x11vnc, and converts VNC to websocket through websockify.
    2. Web's NoVNC component connects to the Sandbox through the Server's Websocket Forward, enabling browser viewing.
  • Other tools: Other tools work on similar principles.

Environment Requirements

This project primarily relies on Docker for development and deployment, requiring a relatively new version of Docker:

  • Docker 20.10+
  • Docker Compose

Model capability requirements:

  • Supports LangChain chat model providers (default openai)
  • Native tool / function calling (plans and step results are submitted via structured output tools such as create_plan / complete_step, not JSON-in-prompt)

Deepseek and GPT models with reliable tool calling are recommended.

Deployment Guide

Docker Compose is recommended for deployment:

services:
  frontend:
    image: simpleyyt/manus-frontend
    ports:
      - "5173:80"
    depends_on:
      - backend
    restart: unless-stopped
    networks:
      - manus-network
    environment:
      - BACKEND_URL=http://backend:8000

  backend:
    image: simpleyyt/manus-backend
    depends_on:
      - sandbox
      - claw
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      #- ./mcp.json:/etc/mcp.json # Mount MCP servers directory
    networks:
      - manus-network
    env_file:
      # All configuration is loaded from the .env file, see .env.example
      # More configuration options: https://docs.ai-manus.com/#/configuration
      - .env

  sandbox:
    image: simpleyyt/manus-sandbox
    command: /bin/sh -c "exit 0"  # prevent sandbox from starting, ensure image is pulled
    restart: "no"
    networks:
      - manus-network

  claw:
    image: simpleyyt/manus-claw
    entrypoint: /bin/sh -c "exit 0"  # prevent claw from starting, ensure image is pulled
    restart: "no"
    networks:
      - manus-network

  mongodb:
    image: mongo:7.0
    volumes:
      - mongodb_data:/data/db
    restart: unless-stopped
    #ports:
    #  - "27017:27017"
    networks:
      - manus-network

  redis:
    image: redis:7.0
    restart: unless-stopped
    networks:
      - manus-network

volumes:
  mongodb_data:
    name: manus-mongodb-data

networks:
  manus-network:
    name: manus-network
    driver: bridge

Save as docker-compose.yml file. All configuration is loaded from a .env file, so create one next to it based on .env.example. At minimum set API_KEY:

API_KEY=sk-xxxx
API_BASE=https://api.openai.com/v1
MODEL_NAME=gpt-4o

Then run:

docker compose up -d

Note: If you see sandbox-1 exited with code 0, this is normal, as it ensures the sandbox image is successfully pulled locally.

Open your browser and visit http://localhost:5173 to access Manus. For more configuration options, see: https://docs.ai-manus.com/#/en/configuration

Development Guide

Project Structure

This project consists of the following sub-projects:

  • frontend: Manus frontend
  • backend: Manus backend
  • sandbox: Manus sandbox
  • claw: Manus Claw — OpenClaw plugin & container image bridging OpenClaw Gateway with Manus backend
  • mockserver: Mock LLM server (for development/testing)

Environment Setup

  1. Download the project:
git clone https://github.com/simpleyyt/ai-manus.git
cd ai-manus
  1. Copy the configuration file:
cp .env.example .env
  1. Modify the configuration file. At minimum set API_KEY. See .env.example or Configuration for the full list of options:
API_KEY=sk-xxxx
API_BASE=https://api.openai.com/v1
MODEL_NAME=gpt-4o

Development and Debugging

  1. Run in debug mode:
# Equivalent to docker compose -f docker-compose-development.yml up
./dev.sh up

All services will run in reload mode, and code changes will be automatically reloaded. The exposed ports are as follows:

  • 5173: Web frontend port
  • 8000: Server API service port
  • 5678: Server debugpy port (remote Python debugging)
  • 8080: Sandbox API service port
  • 5902: Sandbox VNC port (mapped to 5900 inside the container)
  • 18788: Claw (OpenClaw Gateway) port
  • 27017: MongoDB port

Note: In Debug mode, only one sandbox will be started globally

  1. When dependencies change (backend/pyproject.toml or frontend/package.json), clean up and rebuild:
# Clean up all related resources
./dev.sh down -v

# Rebuild images
./dev.sh build

# Run in debug mode
./dev.sh up

Image Publishing

export IMAGE_REGISTRY=your-registry-url
export IMAGE_TAG=latest

# Build images
./run.sh build

# Push to the corresponding image repository
./run.sh push

⭐️ Star History

Star History Chart

About

AI Manus is a general-purpose AI Agent system that supports running various tools and operations in a sandbox environment.

Resources

License

Stars

1.6k stars

Watchers

67 watching

Forks

Packages

 
 
 

Contributors