MultiUserClaw is a multi-user AI SaaS Hermes Agent platform, a lightweight AI assistant framework built on a modified version of Hermes, with the goal of helping users quickly build a commercial SaaS platform. According to the repository description, both OpenClaw and NanoBot are currently designed for personal use and do not support multiple users well. This project re-modified the Bot based on multi-user requirements, without making any changes to OpenClaw, and belongs to native capability encapsulation.
-
Purpose This platform is used to build AI assistant services that support multi-tenant isolation. It supports multi-platform channel integration, tool invocation, scheduled tasks, and Web real-time communication, and can serve as a foundational framework for a commercial SaaS platform.
-
Main Capabilities The platform supports creating, configuring, and managing multiple AI Agents, with each Agent having an independent conversation context. It supports Agent identity settings (name, Emoji icon). Messages are rendered in Markdown and support code highlighting. The platform supports scheduled tasks (Cron Jobs) and can optionally send execution result notifications to channels. Each Agent has an independent knowledge base directory, supports uploading documents, PDFs, images, and data files, and provides previews for files such as text, code, and JSON. The platform also provides a skill store where AI skills from skills.sh can be searched and installed, and supports generation and management of API Tokens by Agent dimension. At the isolation level, each user has an independent Docker container, with container-level resource isolation specifications of 2GB RAM and 4 CPU.
-
Branches and Kernels The main branch is the current main branch, based on the late-June version of Hermes. Because Hermes is much faster than OpenClaw, it has been fully switched to the Hermes branch, and it has faster startup speed and response performance than the previous OpenClaw. The openclaw branch is the old main branch (archived), based on OpenClaw 2026.5.10; the nanobot014v3 branch is the 0.1.4 post v3 version of nanobot.
-
Architecture Design The platform adds platform as the gateway for the control container, and each user creates an independent container for management. The overall structure is divided into: Frontend (frontend page display, calling platform for interaction), Platform (control container management, calling Hermes Agent for AI interaction), Hermes Agent (a Hermes-based AI Agent runtime). When upgrading Hermes, simply rebuild the hermes image.
Multi-tenant deployment uses Docker Compose, with components including: Frontend (Vite + React web interface, responsible for user registration, login, and chat), Gateway (platform gateway, Python FastAPI, responsible for authentication, user container management, LLM proxying, and quota control), user containers (one independent Hermes instance per user, automatically created, with data isolation), and PostgreSQL (stores user accounts, container metadata, and usage records).
V. Hermes Agent Engine Capabilities Hermes is a high-performance AI Agent framework (Python), whose core capabilities include the Agent Loop (a ReAct-mode tool-calling loop supporting multiple rounds of iteration), the tool system (Bash execution, file reading and writing, web search/scraping, message sending, etc.), the Skills system (skill files in Markdown format, supporting built-in and user-defined skills), session management (persistence of conversation history), and multi-Provider support (connecting to various LLMs through an OpenAI-compatible interface).
VI. Usage Deployment requires Docker and Docker Compose, as well as an API Key from at least one LLM provider. After creating a .env file in the project root directory and filling in the API Key and configuration, users can use the configured model. The Gateway automatically matches the provider based on the model name and injects the corresponding API Key; no keys are stored in user containers. By default, MiniMax routes MiniMax-M2.7 to the highspeed variant of the same family to reduce response waiting time; if you need to strictly use the original model, set MINIMAX_M27_USE_HIGHSPEED=false.
For local development, you can use the legacy helper: python start_local.py, or python start_local.py --only db,gateway,frontend. To test and package the Hermes dedicated runtime, use the command: docker build -f hermes-agent/Dockerfile.bridge -t nanobot-hermes-agent:latest hermes-agent/. For status checks, use python check_status.py. After the local development environment is started, the addresses involved include PostgreSQL (http://127.0.0.1:5432)、Hermes Agent(http://127.0.0.1:18080)、Platform Gateway(http://127.0.0.1:8080)、Frontend Dev(http://127.0.0.1:3080)。
The frontend is a Vite + React Router single-page application with a dark theme. In the production environment, the frontend reverse-proxies /api/* to the gateway container through nginx, with no need to hardcode IPs; in the development environment, Vite proxies /api/* to http://localhost:8080。前端使用相对路径 /api/..., so no rebuild is needed when switching networks. The WebSocket protocol is proxied layer by layer from the frontend to the Gateway and then to the Hermes Agent.
Skill files are located in hermes-agent/skills/. Each skill is a directory containing SKILL.md, and users can also create custom skills in their own workspace. The skill management interfaces include GET /api/skills (list all skills), POST /api/skills/upload (upload a skill in ZIP format), DELETE /api/skills/:name (delete a user-defined skill), and GET /api/skills/:name/download (export a skill).
The deployment template directory deploy_copy automatically synchronizes the preset Agents and skills to the Hermes runtime directory at startup. The synchronization process is idempotent and only copies files that do not exist. Synchronization requires completing three steps: creating the Agent directory, synchronizing the workspace (storing files such as SOUL.md and AGENTS.md), and writing the configuration (adding Agent information to the configuration file as the data source for the Agent list returned by the API). If only the second step is done and the first and third steps are missing, the Agent will not be displayed in the Web UI. After deployment, visit http://localhost:3080/agents to see the new Agent.
Through the call_agent_api.py script, an Agent can be called from the command line, which is suitable for external system integration.
VII. Online Experience and Reference Documentation Online experience address:https://ai.infox-med.com:13080/(直接注册即可使用)。配置文档:https://my.feishu.cn/wiki/KfTlwurh7ix0PHkQmHic2L0Snue。
VIII. Operations and Known Issues Container internal ports 5900 (browser port) and 30000 (external port) will be mapped to random ports on the host. For channel configuration (QQ, Feishu, etc.), refer to the link:https://zhuanlan.zhihu.com/p/2016049817437111235。相关文档包括 doc/hermes_web.conf (nginx domain settings), doc/table.md (database table structure), doc/offline-deployment.md (offline deployment), doc/vllm.md (vLLM support), doc/changing-logo-and-name.md (changing Logo and name).
The improvement items listed in the repository include: whether custom model statistics can be added to the admin frontend; no response when clicking delete after channel management installation is complete; whether the dialog input box can automatically expand to six or seven lines high when input exceeds two lines; if an uploaded file name is too long, it pushes out the position of the delete button, making deletion impossible; whether the truncation mechanism for excessive model replies (such as when writing literature) needs to be corrected; whether the thinking process can be displayed or shown in a collapsed form (currently only the result is displayed); hope to support Agent configuration backup and distribution, where administrators uniformly configure and back up Agents and then distribute them to regular users, to prevent users from accidentally deleting or damaging skills; real-time terminal upgrade requirements.
IX. Limitations and Missing Information No specific pricing, charging model, or commercial licensing terms information is provided in the repository. The details of the project's Security policy have not yet been provided. The author's contact information is johnsongzc.