{"repo": "anubissbe/aicodingweb", "files": {"ai-manus/README.md": {"6a323c8e7dfb6d06032557a8952298b15ea6e29f": {"t": 1785747260.1857505, "n": 11141, "h": "9ac7e12a23aaa8e5", "c": "# AI Manus\n\nEnglish | [Official Site](https://app.ai-manus.com) | [Documents](https://docs.ai-manus.com/#/en/)\n\n[![GitHub stars](https://img.shields.io/github/stars/simpleyyt/ai-manus?style=social)](https://github.com/simpleyyt/ai-manus/stargazers)\n \n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nAI Manus is a general-purpose AI Agent system that supports running various tools and operations in a sandbox environment.\n\nEnjoy your own agent with AI Manus!\n\nπŸ‘ Join [QQ Group(1005477581)](https://qun.qq.com/universal-share/share?ac=1&authKey=p4X3Da5iMpR4liAenxwvhs7IValPKiCFtUevRlJouz9qSTSZsMnPJc3hzsJjgQYv&busi_data=eyJncm91cENvZGUiOiIxMDA1NDc3NTgxIiwidG9rZW4iOiJNZmUrTmQ0UzNDZDNqNDFVdjVPS1VCRkJGRWVlV0R3RFJSRVFoZDAwRjFDeUdUM0t6aUIyczlVdzRjV1BYN09IIiwidWluIjoiMzQyMjExODE1In0%3D&data=C3B-E6BlEbailV32co77iXL5vxPIhtD9y_itWLSq50hKqosO_55_isOZym2Faaq4hs9-517tUY8GSWaDwPom-A&svctype=4&tempid=h5_group_info)\n\n❀️ Like AI Manus? Give it a star 🌟 or [Sponsor](docs/sponsor.md) to support the development!\n\nπŸš€ [Try a Demo](https://app.ai-manus.com)\n\n## Demos\n\n### Basic Features\n\nhttps://github.com/user-attachments/assets/37060a09-c647-4bcb-920c-959f7fa73ebe\n\n### Browser Use\n\n* Task: Latest LLM papers\n\n\n\n### Code Use\n\n* Task: Write a complex Python example\n\n\n\n\n## Key Features\n\n * Deployment: Minimal deployment requires only an LLM service, with no dependency on other external services.\n * Tools: Supports Terminal, Browser, File, Web Search, and messaging tools with real-time viewing and takeover capabilities, supports external MCP tool integration.\n * Sandbox: Each task is allocated a separate sandbox that runs in a local Docker environment.\n * Task Sessions: Session history is managed through MongoDB/Redis, supporting background tasks.\n * Conversations: Supports stopping and interrupting, file upload and download.\n * Multilingual: Supports both Chinese and English.\n * Authentication: User login and authentication.\n\n## Development Roadmap\n\n * Tools: Support for Deploy & Expose.\n * Sandbox: Support for mobile and Windows computer access.\n * Deployment: Support for K8s and Docker Swarm multi-cluster deployment.\n\n### Overall Design\n\n![Image](https://github.com/user-attachments/assets/69775011-1eb7-452f-adaf-cd6603a4dde5)\n\n**When a user initiates a conversation:**\n\n1. 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.\n2. The Sandbox is an Ubuntu Docker environment that starts Chrome browser and API services for tools like File/Shell.\n3. Web sends user messages to the session ID, and when the Server receives user messages, it forwards them to the PlanAct Agent for processing.\n4. During processing, the PlanAct Agent calls relevant tools to complete tasks.\n5. All events generated during Agent processing are sent back to Web via SSE.\n\n**When users browse tools:**\n\n- Browser:\n 1. The Sandbox's headless browser starts a VNC service through xvfb and x11vnc, and converts VNC to websocket through websockify.\n 2. Web's NoVNC component connects to the Sandbox through the Server's Websocket Forward, enabling browser viewing.\n- Other tools: Other tools work on similar principles.\n\n## Environment Requirements\n\nThis project primarily relies on Docker for development and deployment, requiring a relatively new version of Docker:\n- Docker 20.10+\n- Docker Compose\n\nModel capability requirements:\n- Compatible with OpenAI interface\n- Support for FunctionCall\n- Support for Json Format output\n\nDeepseek and GPT models are recommended.\n\n## Deployment Guide\n\nDocker Compose is recommended for deployment:\n\n\n```yaml\nservices:\n frontend:\n image: simpleyyt/manus-frontend\n ports:\n - \"5173:80\"\n depends_on:\n - backend\n restart: unless-stopped\n networks:\n - manus-network\n environment:\n - BACKEND_URL=http://backend:8000\n\n backend:\n image: simpleyyt/manus-backend\n depends_on:\n - sandbox\n restart: unless-stopped\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n #- ./mcp.json:/etc/mcp.json # Mount MCP servers directory\n networks:\n - manus-network\n environment:\n # OpenAI API base URL\n - API_BASE=https://api.openai.com/v1\n # OpenAI API key, replace with your own\n - API_KEY=sk-xxxx\n # LLM model name\n - MODEL_NAME=gpt-4o\n # LLM temperature parameter, controls randomness\n - TEMPERATURE=0.7\n # Maximum tokens for LLM response\n - MAX_TOKENS=2000\n\n # MongoDB connection URI\n #- MONGODB_URI=mongodb://mongodb:27017\n # MongoDB database name\n #- MONGODB_DATABASE=manus\n # MongoDB username (optional)\n #- MONGODB_USERNAME=\n # MongoDB password (optional)\n #- MONGODB_PASSWORD=\n\n # Redis server hostname\n #- REDIS_HOST=redis\n # Redis server port\n #- REDIS_PORT=6379\n # Redis database number\n #- REDIS_DB=0\n # Redis password (optional)\n #- REDIS_PASSWORD=\n\n # Sandbox server address (optional)\n #- SANDBOX_ADDRESS=\n # Docker image used for the sandbox\n - SANDBOX_IMAGE=simpleyyt/manus-sandbox\n # Prefix for sandbox container names\n - SANDBOX_NAME_PREFIX=sandbox\n # Time-to-live for sandbox containers in minutes\n - SANDBOX_TTL_MINUTES=30\n # Docker network for sandbox containers\n - SANDBOX_NETWORK=manus-network\n # Chrome browser arguments for sandbox (optional)\n #- SANDBOX_CHROME_ARGS=\n # HTTPS proxy for sandbox (optional)\n #- SANDBOX_HTTPS_PROXY=\n # HTTP proxy for sandbox (optional)\n #- SANDBOX_HTTP_PROXY=\n # No proxy hosts for sandbox (optional)\n #- SANDBOX_NO_PROXY=\n \n # Search engine configuration\n # Options: baidu, google, bing\n - SEARCH_PROVIDER=bing\n\n # Google search configuration, only used when SEARCH_PROVIDER=google\n #- GOOGLE_SEARCH_API_KEY=\n #- GOOGLE_SEARCH_ENGINE_ID=\n\n # Auth configuration\n # Options: password, none, local\n - AUTH_PROVIDER=password\n\n # Password auth configuration, only used when AUTH_PROVIDER=password\n - PASSWORD_SALT=\n - PASSWORD_HASH_ROUNDS=10\n\n # Local auth configuration, only used when AUTH_PROVIDER=local\n #- LOCAL_AUTH_EMAIL=admin@example.com\n #- LOCAL_AUTH_PASSWORD=admin\n\n # JWT configuration\n - JWT_SECRET_KEY=your-secret-key-here\n - JWT_ALGORITHM=HS256\n - JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\n - JWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n\n # Email configuration\n # Only used when AUTH_PROVIDER=password\n #- EMAIL_HOST=smtp.gmail.com\n #- EMAIL_PORT=587\n #- EMAIL_USERNAME=your-email@gmail.com\n #- EMAIL_PASSWORD=your-password\n #- EMAIL_FROM=your-email@gmail.com\n\n # MCP configuration file path\n #- MCP_CONFIG_PATH=/etc/mcp.json\n\n # Application log level\n - LOG_LEVEL=INFO\n\n sandbox:\n image: simpleyyt/manus-sandbox\n command: /bin/sh -c \"exit 0\" # prevent sandbox from starting, ensure image is pulled\n restart: \"no\"\n networks:\n - manus-network\n\n mongodb:\n image: mongo:7.0\n volumes:\n - mongodb_data:/data/db\n restart: unless-stopped\n #ports:\n # - \"27017:27017\"\n networks:\n - manus-network\n\n redis:\n image: redis:7.0\n restart: unless-stopped\n networks:\n - manus-network\n\nvolumes:\n mongodb_data:\n name: manus-mongodb-data\n\nnetworks:\n manus-network:\n name: manus-network\n driver: bridge\n```\n\n\nSave as `docker-compose.yml` file, and run:\n\n```shell\ndocker compose up -d\n```\n\n> Note: If you see `sandbox-1 exited with code 0`, this is normal, as it ensures the sandbox image is successfully pulled locally.\n\nOpen your browser and visit to access Manus.\n\n## Development Guide\n\n### Project Structure\n\nThis project consists of three independent sub-projects:\n\n* `frontend`: manus frontend\n* `backend`: Manus backend\n* `sandbox`: Manus sandbox\n\n### Environment Setup\n\n1. Download the project:\n```bash\ngit clone https://github.com/simpleyyt/ai-manus.git\ncd ai-manus\n```\n\n2. Copy the configuration file:\n```bash\ncp .env.example .env\n```\n\n3. Modify the configuration file:\n\n\n```env\n# Model provider configuration\nAPI_KEY=\nAPI_BASE=http://mockserver:8090/v1\n\n# Model configuration\nMODEL_NAME=deepseek-chat\nTEMPERATURE=0.7\nMAX_TOKENS=2000\n\n# MongoDB configuration\n#MONGODB_URI=mongodb://mongodb:27017\n#MONGODB_DATABASE=manus\n#MONGODB_USERNAME=\n#MONGODB_PASSWORD=\n\n# Redis configuration\n#REDIS_HOST=redis\n#REDIS_PORT=6379\n#REDIS_DB=0\n#REDIS_PASSWORD=\n\n# Sandbox configuration\n#SANDBOX_ADDRESS=\nSANDBOX_IMAGE=simpleyyt/manus-sandbox\nSANDBOX_NAME_PREFIX=sandbox\nSANDBOX_TTL_MINUTES=30\nSANDBOX_NETWORK=manus-network\n#SANDBOX_CHROME_ARGS=\n#SANDBOX_HTTPS_PROXY=\n#SANDBOX_HTTP_PROXY=\n#SANDBOX_NO_PROXY=\n\n# Search engine configuration\n# Options: baidu, google, bing\nSEARCH_PROVIDER=bing\n\n# Google search configuration, only used when SEARCH_PROVIDER=google\n#GOOGLE_SEARCH_API_KEY=\n#GOOGLE_SEARCH_ENGINE_ID=\n\n# Auth configuration\n# Options: password, none, local\nAUTH_PROVIDER=password\n\n# Password auth configuration, only used when AUTH_PROVIDER=password\nPASSWORD_SALT=\nPASSWORD_HASH_ROUNDS=10\n\n# Local auth configuration, only used when AUTH_PROVIDER=local\n#LOCAL_AUTH_EMAIL=admin@example.com\n#LOCAL_AUTH_PASSWORD=admin\n\n# JWT configuration\nJWT_SECRET_KEY=your-secret-key-here\nJWT_ALGORITHM=HS256\nJWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\nJWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n\n# Email configuration\n# Only used when AUTH_PROVIDER=password\n#EMAIL_HOST=smtp.gmail.com\n#EMAIL_PORT=587\n#EMAIL_USERNAME=your-email@gmail.com\n#EMAIL_PASSWORD=your-password\n#EMAIL_FROM=your-email@gmail.com\n\n# MCP configuration\n#MCP_CONFIG_PATH=/etc/mcp.json\n\n# Log configuration\nLOG_LEVEL=INFO\n```\n\n\n### Development and Debugging\n\n1. Run in debug mode:\n```bash\n# Equivalent to docker compose -f docker-compose-development.yaml up\n./dev.sh up\n```\n\nAll services will run in reload mode, and code changes will be automatically reloaded. The exposed ports are as follows:\n- 5173: Web frontend port\n- 8000: Server API service port\n- 8080: Sandbox API service port\n- 5900: Sandbox VNC port\n- 9222: Sandbox Chrome browser CDP port\n\n> *Note: In Debug mode, only one sandbox will be started globally*\n\n2. When dependencies change (requirements.txt or package.json), clean up and rebuild:\n```bash\n# Clean up all related resources\n./dev.sh down -v\n\n# Rebuild images\n./dev.sh build\n\n# Run in debug mode\n./dev.sh up\n```\n\n### Image Publishing\n\n```bash\nexport IMAGE_REGISTRY=your-registry-url\nexport IMAGE_TAG=latest\n\n# Build images\n./run build\n\n# Push to the corresponding image repository\n./run push\n``` \n##\n\n## ⭐️ Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Simpleyyt/ai-manus&type=Date)](https://www.star-history.com/#Simpleyyt/ai-manus&Date)"}, "54b7eab96c7f7e081142118291314b65cd5a02b0": {"t": 1785771948.2472913, "n": 11141, "h": "9ac7e12a23aaa8e5", "c": "# AI Manus\n\nEnglish | [Official Site](https://app.ai-manus.com) | [Documents](https://docs.ai-manus.com/#/en/)\n\n[![GitHub stars](https://img.shields.io/github/stars/simpleyyt/ai-manus?style=social)](https://github.com/simpleyyt/ai-manus/stargazers)\n \n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nAI Manus is a general-purpose AI Agent system that supports running various tools and operations in a sandbox environment.\n\nEnjoy your own agent with AI Manus!\n\nπŸ‘ Join [QQ Group(1005477581)](https://qun.qq.com/universal-share/share?ac=1&authKey=p4X3Da5iMpR4liAenxwvhs7IValPKiCFtUevRlJouz9qSTSZsMnPJc3hzsJjgQYv&busi_data=eyJncm91cENvZGUiOiIxMDA1NDc3NTgxIiwidG9rZW4iOiJNZmUrTmQ0UzNDZDNqNDFVdjVPS1VCRkJGRWVlV0R3RFJSRVFoZDAwRjFDeUdUM0t6aUIyczlVdzRjV1BYN09IIiwidWluIjoiMzQyMjExODE1In0%3D&data=C3B-E6BlEbailV32co77iXL5vxPIhtD9y_itWLSq50hKqosO_55_isOZym2Faaq4hs9-517tUY8GSWaDwPom-A&svctype=4&tempid=h5_group_info)\n\n❀️ Like AI Manus? Give it a star 🌟 or [Sponsor](docs/sponsor.md) to support the development!\n\nπŸš€ [Try a Demo](https://app.ai-manus.com)\n\n## Demos\n\n### Basic Features\n\nhttps://github.com/user-attachments/assets/37060a09-c647-4bcb-920c-959f7fa73ebe\n\n### Browser Use\n\n* Task: Latest LLM papers\n\n\n\n### Code Use\n\n* Task: Write a complex Python example\n\n\n\n\n## Key Features\n\n * Deployment: Minimal deployment requires only an LLM service, with no dependency on other external services.\n * Tools: Supports Terminal, Browser, File, Web Search, and messaging tools with real-time viewing and takeover capabilities, supports external MCP tool integration.\n * Sandbox: Each task is allocated a separate sandbox that runs in a local Docker environment.\n * Task Sessions: Session history is managed through MongoDB/Redis, supporting background tasks.\n * Conversations: Supports stopping and interrupting, file upload and download.\n * Multilingual: Supports both Chinese and English.\n * Authentication: User login and authentication.\n\n## Development Roadmap\n\n * Tools: Support for Deploy & Expose.\n * Sandbox: Support for mobile and Windows computer access.\n * Deployment: Support for K8s and Docker Swarm multi-cluster deployment.\n\n### Overall Design\n\n![Image](https://github.com/user-attachments/assets/69775011-1eb7-452f-adaf-cd6603a4dde5)\n\n**When a user initiates a conversation:**\n\n1. 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.\n2. The Sandbox is an Ubuntu Docker environment that starts Chrome browser and API services for tools like File/Shell.\n3. Web sends user messages to the session ID, and when the Server receives user messages, it forwards them to the PlanAct Agent for processing.\n4. During processing, the PlanAct Agent calls relevant tools to complete tasks.\n5. All events generated during Agent processing are sent back to Web via SSE.\n\n**When users browse tools:**\n\n- Browser:\n 1. The Sandbox's headless browser starts a VNC service through xvfb and x11vnc, and converts VNC to websocket through websockify.\n 2. Web's NoVNC component connects to the Sandbox through the Server's Websocket Forward, enabling browser viewing.\n- Other tools: Other tools work on similar principles.\n\n## Environment Requirements\n\nThis project primarily relies on Docker for development and deployment, requiring a relatively new version of Docker:\n- Docker 20.10+\n- Docker Compose\n\nModel capability requirements:\n- Compatible with OpenAI interface\n- Support for FunctionCall\n- Support for Json Format output\n\nDeepseek and GPT models are recommended.\n\n## Deployment Guide\n\nDocker Compose is recommended for deployment:\n\n\n```yaml\nservices:\n frontend:\n image: simpleyyt/manus-frontend\n ports:\n - \"5173:80\"\n depends_on:\n - backend\n restart: unless-stopped\n networks:\n - manus-network\n environment:\n - BACKEND_URL=http://backend:8000\n\n backend:\n image: simpleyyt/manus-backend\n depends_on:\n - sandbox\n restart: unless-stopped\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n #- ./mcp.json:/etc/mcp.json # Mount MCP servers directory\n networks:\n - manus-network\n environment:\n # OpenAI API base URL\n - API_BASE=https://api.openai.com/v1\n # OpenAI API key, replace with your own\n - API_KEY=sk-xxxx\n # LLM model name\n - MODEL_NAME=gpt-4o\n # LLM temperature parameter, controls randomness\n - TEMPERATURE=0.7\n # Maximum tokens for LLM response\n - MAX_TOKENS=2000\n\n # MongoDB connection URI\n #- MONGODB_URI=mongodb://mongodb:27017\n # MongoDB database name\n #- MONGODB_DATABASE=manus\n # MongoDB username (optional)\n #- MONGODB_USERNAME=\n # MongoDB password (optional)\n #- MONGODB_PASSWORD=\n\n # Redis server hostname\n #- REDIS_HOST=redis\n # Redis server port\n #- REDIS_PORT=6379\n # Redis database number\n #- REDIS_DB=0\n # Redis password (optional)\n #- REDIS_PASSWORD=\n\n # Sandbox server address (optional)\n #- SANDBOX_ADDRESS=\n # Docker image used for the sandbox\n - SANDBOX_IMAGE=simpleyyt/manus-sandbox\n # Prefix for sandbox container names\n - SANDBOX_NAME_PREFIX=sandbox\n # Time-to-live for sandbox containers in minutes\n - SANDBOX_TTL_MINUTES=30\n # Docker network for sandbox containers\n - SANDBOX_NETWORK=manus-network\n # Chrome browser arguments for sandbox (optional)\n #- SANDBOX_CHROME_ARGS=\n # HTTPS proxy for sandbox (optional)\n #- SANDBOX_HTTPS_PROXY=\n # HTTP proxy for sandbox (optional)\n #- SANDBOX_HTTP_PROXY=\n # No proxy hosts for sandbox (optional)\n #- SANDBOX_NO_PROXY=\n \n # Search engine configuration\n # Options: baidu, google, bing\n - SEARCH_PROVIDER=bing\n\n # Google search configuration, only used when SEARCH_PROVIDER=google\n #- GOOGLE_SEARCH_API_KEY=\n #- GOOGLE_SEARCH_ENGINE_ID=\n\n # Auth configuration\n # Options: password, none, local\n - AUTH_PROVIDER=password\n\n # Password auth configuration, only used when AUTH_PROVIDER=password\n - PASSWORD_SALT=\n - PASSWORD_HASH_ROUNDS=10\n\n # Local auth configuration, only used when AUTH_PROVIDER=local\n #- LOCAL_AUTH_EMAIL=admin@example.com\n #- LOCAL_AUTH_PASSWORD=admin\n\n # JWT configuration\n - JWT_SECRET_KEY=your-secret-key-here\n - JWT_ALGORITHM=HS256\n - JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\n - JWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n\n # Email configuration\n # Only used when AUTH_PROVIDER=password\n #- EMAIL_HOST=smtp.gmail.com\n #- EMAIL_PORT=587\n #- EMAIL_USERNAME=your-email@gmail.com\n #- EMAIL_PASSWORD=your-password\n #- EMAIL_FROM=your-email@gmail.com\n\n # MCP configuration file path\n #- MCP_CONFIG_PATH=/etc/mcp.json\n\n # Application log level\n - LOG_LEVEL=INFO\n\n sandbox:\n image: simpleyyt/manus-sandbox\n command: /bin/sh -c \"exit 0\" # prevent sandbox from starting, ensure image is pulled\n restart: \"no\"\n networks:\n - manus-network\n\n mongodb:\n image: mongo:7.0\n volumes:\n - mongodb_data:/data/db\n restart: unless-stopped\n #ports:\n # - \"27017:27017\"\n networks:\n - manus-network\n\n redis:\n image: redis:7.0\n restart: unless-stopped\n networks:\n - manus-network\n\nvolumes:\n mongodb_data:\n name: manus-mongodb-data\n\nnetworks:\n manus-network:\n name: manus-network\n driver: bridge\n```\n\n\nSave as `docker-compose.yml` file, and run:\n\n```shell\ndocker compose up -d\n```\n\n> Note: If you see `sandbox-1 exited with code 0`, this is normal, as it ensures the sandbox image is successfully pulled locally.\n\nOpen your browser and visit to access Manus.\n\n## Development Guide\n\n### Project Structure\n\nThis project consists of three independent sub-projects:\n\n* `frontend`: manus frontend\n* `backend`: Manus backend\n* `sandbox`: Manus sandbox\n\n### Environment Setup\n\n1. Download the project:\n```bash\ngit clone https://github.com/simpleyyt/ai-manus.git\ncd ai-manus\n```\n\n2. Copy the configuration file:\n```bash\ncp .env.example .env\n```\n\n3. Modify the configuration file:\n\n\n```env\n# Model provider configuration\nAPI_KEY=\nAPI_BASE=http://mockserver:8090/v1\n\n# Model configuration\nMODEL_NAME=deepseek-chat\nTEMPERATURE=0.7\nMAX_TOKENS=2000\n\n# MongoDB configuration\n#MONGODB_URI=mongodb://mongodb:27017\n#MONGODB_DATABASE=manus\n#MONGODB_USERNAME=\n#MONGODB_PASSWORD=\n\n# Redis configuration\n#REDIS_HOST=redis\n#REDIS_PORT=6379\n#REDIS_DB=0\n#REDIS_PASSWORD=\n\n# Sandbox configuration\n#SANDBOX_ADDRESS=\nSANDBOX_IMAGE=simpleyyt/manus-sandbox\nSANDBOX_NAME_PREFIX=sandbox\nSANDBOX_TTL_MINUTES=30\nSANDBOX_NETWORK=manus-network\n#SANDBOX_CHROME_ARGS=\n#SANDBOX_HTTPS_PROXY=\n#SANDBOX_HTTP_PROXY=\n#SANDBOX_NO_PROXY=\n\n# Search engine configuration\n# Options: baidu, google, bing\nSEARCH_PROVIDER=bing\n\n# Google search configuration, only used when SEARCH_PROVIDER=google\n#GOOGLE_SEARCH_API_KEY=\n#GOOGLE_SEARCH_ENGINE_ID=\n\n# Auth configuration\n# Options: password, none, local\nAUTH_PROVIDER=password\n\n# Password auth configuration, only used when AUTH_PROVIDER=password\nPASSWORD_SALT=\nPASSWORD_HASH_ROUNDS=10\n\n# Local auth configuration, only used when AUTH_PROVIDER=local\n#LOCAL_AUTH_EMAIL=admin@example.com\n#LOCAL_AUTH_PASSWORD=admin\n\n# JWT configuration\nJWT_SECRET_KEY=your-secret-key-here\nJWT_ALGORITHM=HS256\nJWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\nJWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n\n# Email configuration\n# Only used when AUTH_PROVIDER=password\n#EMAIL_HOST=smtp.gmail.com\n#EMAIL_PORT=587\n#EMAIL_USERNAME=your-email@gmail.com\n#EMAIL_PASSWORD=your-password\n#EMAIL_FROM=your-email@gmail.com\n\n# MCP configuration\n#MCP_CONFIG_PATH=/etc/mcp.json\n\n# Log configuration\nLOG_LEVEL=INFO\n```\n\n\n### Development and Debugging\n\n1. Run in debug mode:\n```bash\n# Equivalent to docker compose -f docker-compose-development.yaml up\n./dev.sh up\n```\n\nAll services will run in reload mode, and code changes will be automatically reloaded. The exposed ports are as follows:\n- 5173: Web frontend port\n- 8000: Server API service port\n- 8080: Sandbox API service port\n- 5900: Sandbox VNC port\n- 9222: Sandbox Chrome browser CDP port\n\n> *Note: In Debug mode, only one sandbox will be started globally*\n\n2. When dependencies change (requirements.txt or package.json), clean up and rebuild:\n```bash\n# Clean up all related resources\n./dev.sh down -v\n\n# Rebuild images\n./dev.sh build\n\n# Run in debug mode\n./dev.sh up\n```\n\n### Image Publishing\n\n```bash\nexport IMAGE_REGISTRY=your-registry-url\nexport IMAGE_TAG=latest\n\n# Build images\n./run build\n\n# Push to the corresponding image repository\n./run push\n``` \n##\n\n## ⭐️ Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Simpleyyt/ai-manus&type=Date)](https://www.star-history.com/#Simpleyyt/ai-manus&Date)"}, "d66e50c025bcf6035a07c0c30fa616e03b064214": {"t": 1785771951.4511726, "n": 11162, "h": "3df15d5bc6973d63", "c": "# AI Manus\n\nEnglish | [δΈ­ζ–‡](README_zh.md) | [Official Site](https://app.ai-manus.com) | [Documents](https://docs.ai-manus.com/#/en/)\n\n[![GitHub stars](https://img.shields.io/github/stars/simpleyyt/ai-manus?style=social)](https://github.com/simpleyyt/ai-manus/stargazers)\n \n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nAI Manus is a general-purpose AI Agent system that supports running various tools and operations in a sandbox environment.\n\nEnjoy your own agent with AI Manus!\n\nπŸ‘ Join [QQ Group(1005477581)](https://qun.qq.com/universal-share/share?ac=1&authKey=p4X3Da5iMpR4liAenxwvhs7IValPKiCFtUevRlJouz9qSTSZsMnPJc3hzsJjgQYv&busi_data=eyJncm91cENvZGUiOiIxMDA1NDc3NTgxIiwidG9rZW4iOiJNZmUrTmQ0UzNDZDNqNDFVdjVPS1VCRkJGRWVlV0R3RFJSRVFoZDAwRjFDeUdUM0t6aUIyczlVdzRjV1BYN09IIiwidWluIjoiMzQyMjExODE1In0%3D&data=C3B-E6BlEbailV32co77iXL5vxPIhtD9y_itWLSq50hKqosO_55_isOZym2Faaq4hs9-517tUY8GSWaDwPom-A&svctype=4&tempid=h5_group_info)\n\n❀️ Like AI Manus? Give it a star 🌟 or [Sponsor](docs/sponsor.md) to support the development!\n\nπŸš€ [Try a Demo](https://app.ai-manus.com)\n\n## Demos\n\n### Basic Features\n\nhttps://github.com/user-attachments/assets/37060a09-c647-4bcb-920c-959f7fa73ebe\n\n### Browser Use\n\n* Task: Latest LLM papers\n\n\n\n### Code Use\n\n* Task: Write a complex Python example\n\n\n\n\n## Key Features\n\n * Deployment: Minimal deployment requires only an LLM service, with no dependency on other external services.\n * Tools: Supports Terminal, Browser, File, Web Search, and messaging tools with real-time viewing and takeover capabilities, supports external MCP tool integration.\n * Sandbox: Each task is allocated a separate sandbox that runs in a local Docker environment.\n * Task Sessions: Session history is managed through MongoDB/Redis, supporting background tasks.\n * Conversations: Supports stopping and interrupting, file upload and download.\n * Multilingual: Supports both Chinese and English.\n * Authentication: User login and authentication.\n\n## Development Roadmap\n\n * Tools: Support for Deploy & Expose.\n * Sandbox: Support for mobile and Windows computer access.\n * Deployment: Support for K8s and Docker Swarm multi-cluster deployment.\n\n### Overall Design\n\n![Image](https://github.com/user-attachments/assets/69775011-1eb7-452f-adaf-cd6603a4dde5)\n\n**When a user initiates a conversation:**\n\n1. 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.\n2. The Sandbox is an Ubuntu Docker environment that starts Chrome browser and API services for tools like File/Shell.\n3. Web sends user messages to the session ID, and when the Server receives user messages, it forwards them to the PlanAct Agent for processing.\n4. During processing, the PlanAct Agent calls relevant tools to complete tasks.\n5. All events generated during Agent processing are sent back to Web via SSE.\n\n**When users browse tools:**\n\n- Browser:\n 1. The Sandbox's headless browser starts a VNC service through xvfb and x11vnc, and converts VNC to websocket through websockify.\n 2. Web's NoVNC component connects to the Sandbox through the Server's Websocket Forward, enabling browser viewing.\n- Other tools: Other tools work on similar principles.\n\n## Environment Requirements\n\nThis project primarily relies on Docker for development and deployment, requiring a relatively new version of Docker:\n- Docker 20.10+\n- Docker Compose\n\nModel capability requirements:\n- Compatible with OpenAI interface\n- Support for FunctionCall\n- Support for Json Format output\n\nDeepseek and GPT models are recommended.\n\n## Deployment Guide\n\nDocker Compose is recommended for deployment:\n\n\n```yaml\nservices:\n frontend:\n image: simpleyyt/manus-frontend\n ports:\n - \"5173:80\"\n depends_on:\n - backend\n restart: unless-stopped\n networks:\n - manus-network\n environment:\n - BACKEND_URL=http://backend:8000\n\n backend:\n image: simpleyyt/manus-backend\n depends_on:\n - sandbox\n restart: unless-stopped\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n #- ./mcp.json:/etc/mcp.json # Mount MCP servers directory\n networks:\n - manus-network\n environment:\n # OpenAI API base URL\n - API_BASE=https://api.openai.com/v1\n # OpenAI API key, replace with your own\n - API_KEY=sk-xxxx\n # LLM model name\n - MODEL_NAME=gpt-4o\n # LLM temperature parameter, controls randomness\n - TEMPERATURE=0.7\n # Maximum tokens for LLM response\n - MAX_TOKENS=2000\n\n # MongoDB connection URI\n #- MONGODB_URI=mongodb://mongodb:27017\n # MongoDB database name\n #- MONGODB_DATABASE=manus\n # MongoDB username (optional)\n #- MONGODB_USERNAME=\n # MongoDB password (optional)\n #- MONGODB_PASSWORD=\n\n # Redis server hostname\n #- REDIS_HOST=redis\n # Redis server port\n #- REDIS_PORT=6379\n # Redis database number\n #- REDIS_DB=0\n # Redis password (optional)\n #- REDIS_PASSWORD=\n\n # Sandbox server address (optional)\n #- SANDBOX_ADDRESS=\n # Docker image used for the sandbox\n - SANDBOX_IMAGE=simpleyyt/manus-sandbox\n # Prefix for sandbox container names\n - SANDBOX_NAME_PREFIX=sandbox\n # Time-to-live for sandbox containers in minutes\n - SANDBOX_TTL_MINUTES=30\n # Docker network for sandbox containers\n - SANDBOX_NETWORK=manus-network\n # Chrome browser arguments for sandbox (optional)\n #- SANDBOX_CHROME_ARGS=\n # HTTPS proxy for sandbox (optional)\n #- SANDBOX_HTTPS_PROXY=\n # HTTP proxy for sandbox (optional)\n #- SANDBOX_HTTP_PROXY=\n # No proxy hosts for sandbox (optional)\n #- SANDBOX_NO_PROXY=\n \n # Search engine configuration\n # Options: baidu, google, bing\n - SEARCH_PROVIDER=bing\n\n # Google search configuration, only used when SEARCH_PROVIDER=google\n #- GOOGLE_SEARCH_API_KEY=\n #- GOOGLE_SEARCH_ENGINE_ID=\n\n # Auth configuration\n # Options: password, none, local\n - AUTH_PROVIDER=password\n\n # Password auth configuration, only used when AUTH_PROVIDER=password\n - PASSWORD_SALT=\n - PASSWORD_HASH_ROUNDS=10\n\n # Local auth configuration, only used when AUTH_PROVIDER=local\n #- LOCAL_AUTH_EMAIL=admin@example.com\n #- LOCAL_AUTH_PASSWORD=admin\n\n # JWT configuration\n - JWT_SECRET_KEY=your-secret-key-here\n - JWT_ALGORITHM=HS256\n - JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\n - JWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n\n # Email configuration\n # Only used when AUTH_PROVIDER=password\n #- EMAIL_HOST=smtp.gmail.com\n #- EMAIL_PORT=587\n #- EMAIL_USERNAME=your-email@gmail.com\n #- EMAIL_PASSWORD=your-password\n #- EMAIL_FROM=your-email@gmail.com\n\n # MCP configuration file path\n #- MCP_CONFIG_PATH=/etc/mcp.json\n\n # Application log level\n - LOG_LEVEL=INFO\n\n sandbox:\n image: simpleyyt/manus-sandbox\n command: /bin/sh -c \"exit 0\" # prevent sandbox from starting, ensure image is pulled\n restart: \"no\"\n networks:\n - manus-network\n\n mongodb:\n image: mongo:7.0\n volumes:\n - mongodb_data:/data/db\n restart: unless-stopped\n #ports:\n # - \"27017:27017\"\n networks:\n - manus-network\n\n redis:\n image: redis:7.0\n restart: unless-stopped\n networks:\n - manus-network\n\nvolumes:\n mongodb_data:\n name: manus-mongodb-data\n\nnetworks:\n manus-network:\n name: manus-network\n driver: bridge\n```\n\n\nSave as `docker-compose.yml` file, and run:\n\n```shell\ndocker compose up -d\n```\n\n> Note: If you see `sandbox-1 exited with code 0`, this is normal, as it ensures the sandbox image is successfully pulled locally.\n\nOpen your browser and visit to access Manus.\n\n## Development Guide\n\n### Project Structure\n\nThis project consists of three independent sub-projects:\n\n* `frontend`: manus frontend\n* `backend`: Manus backend\n* `sandbox`: Manus sandbox\n\n### Environment Setup\n\n1. Download the project:\n```bash\ngit clone https://github.com/simpleyyt/ai-manus.git\ncd ai-manus\n```\n\n2. Copy the configuration file:\n```bash\ncp .env.example .env\n```\n\n3. Modify the configuration file:\n\n\n```env\n# Model provider configuration\nAPI_KEY=\nAPI_BASE=http://mockserver:8090/v1\n\n# Model configuration\nMODEL_NAME=deepseek-chat\nTEMPERATURE=0.7\nMAX_TOKENS=2000\n\n# MongoDB configuration\n#MONGODB_URI=mongodb://mongodb:27017\n#MONGODB_DATABASE=manus\n#MONGODB_USERNAME=\n#MONGODB_PASSWORD=\n\n# Redis configuration\n#REDIS_HOST=redis\n#REDIS_PORT=6379\n#REDIS_DB=0\n#REDIS_PASSWORD=\n\n# Sandbox configuration\n#SANDBOX_ADDRESS=\nSANDBOX_IMAGE=simpleyyt/manus-sandbox\nSANDBOX_NAME_PREFIX=sandbox\nSANDBOX_TTL_MINUTES=30\nSANDBOX_NETWORK=manus-network\n#SANDBOX_CHROME_ARGS=\n#SANDBOX_HTTPS_PROXY=\n#SANDBOX_HTTP_PROXY=\n#SANDBOX_NO_PROXY=\n\n# Search engine configuration\n# Options: baidu, google, bing\nSEARCH_PROVIDER=bing\n\n# Google search configuration, only used when SEARCH_PROVIDER=google\n#GOOGLE_SEARCH_API_KEY=\n#GOOGLE_SEARCH_ENGINE_ID=\n\n# Auth configuration\n# Options: password, none, local\nAUTH_PROVIDER=password\n\n# Password auth configuration, only used when AUTH_PROVIDER=password\nPASSWORD_SALT=\nPASSWORD_HASH_ROUNDS=10\n\n# Local auth configuration, only used when AUTH_PROVIDER=local\n#LOCAL_AUTH_EMAIL=admin@example.com\n#LOCAL_AUTH_PASSWORD=admin\n\n# JWT configuration\nJWT_SECRET_KEY=your-secret-key-here\nJWT_ALGORITHM=HS256\nJWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\nJWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n\n# Email configuration\n# Only used when AUTH_PROVIDER=password\n#EMAIL_HOST=smtp.gmail.com\n#EMAIL_PORT=587\n#EMAIL_USERNAME=your-email@gmail.com\n#EMAIL_PASSWORD=your-password\n#EMAIL_FROM=your-email@gmail.com\n\n# MCP configuration\n#MCP_CONFIG_PATH=/etc/mcp.json\n\n# Log configuration\nLOG_LEVEL=INFO\n```\n\n\n### Development and Debugging\n\n1. Run in debug mode:\n```bash\n# Equivalent to docker compose -f docker-compose-development.yaml up\n./dev.sh up\n```\n\nAll services will run in reload mode, and code changes will be automatically reloaded. The exposed ports are as follows:\n- 5173: Web frontend port\n- 8000: Server API service port\n- 8080: Sandbox API service port\n- 5900: Sandbox VNC port\n- 9222: Sandbox Chrome browser CDP port\n\n> *Note: In Debug mode, only one sandbox will be started globally*\n\n2. When dependencies change (requirements.txt or package.json), clean up and rebuild:\n```bash\n# Clean up all related resources\n./dev.sh down -v\n\n# Rebuild images\n./dev.sh build\n\n# Run in debug mode\n./dev.sh up\n```\n\n### Image Publishing\n\n```bash\nexport IMAGE_REGISTRY=your-registry-url\nexport IMAGE_TAG=latest\n\n# Build images\n./run build\n\n# Push to the corresponding image repository\n./run push\n``` \n##\n\n## ⭐️ Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Simpleyyt/ai-manus&type=Date)](https://www.star-history.com/#Simpleyyt/ai-manus&Date)"}}}}