OpenMAIC (Open Multi-Agent Interactive Classroom) is a free, open-source AI education app that turns a topic or course material into an interactive classroom with AI teachers, AI classmates, slides, quizzes, and hands-on learning scenes.
You can start with a short topic prompt or upload supported documents, images, audio, and video. OpenMAIC plans the lesson, builds the classroom scenes, runs class-style discussions, and uses a shared whiteboard for explanations and visual work.
The hosted OpenMAIC Chat demo lets you try classroom generation in the browser. A self-hosted deployment supports custom model providers, local AI services, advanced document parsing, server-backed course storage, speech tools, OpenClaw integration, and optional MP4 rendering.
Features
- Generate editable lesson outlines from topics or uploaded course materials.
- Create slides, quizzes, simulations, games, mind maps, and coding scenes.
- Build project-based learning activities for guided classroom sessions.
- Run AI teachers and classmates with speech, discussion, and whiteboard actions.
- Edit slide elements directly in Pro Mode.
- Revise generated lesson content through Edit with AI commands.
- Export PowerPoint, interactive HTML, classroom ZIPs, resource packs, and MP4 video.
- Use cloud LLMs, custom endpoints, Ollama, or Lemonade.
- Route different models to individual classroom-generation stages.
- Use configurable web search providers during generation.
- Connect local speech recognition and voice-cloning services.
- Store classroom documents and runtime sessions in PostgreSQL.
- Generate classrooms from supported chat apps through OpenClaw.
Official Examples
How to Use OpenMAIC
Requirements and Installation
OpenMAIC requires Node.js 20 or newer and pnpm 10 or newer for a local source installation.
git clone https://github.com/THU-MAIC/OpenMAIC.git
cd OpenMAIC
pnpm installConfigure an LLM Provider
Copy the example environment file and configure at least one usable LLM provider.
cp .env.example .env.localOPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=...You can also use server-providers.yml for server-managed provider configuration.
providers:
openai:
apiKey: sk-...
anthropic:
apiKey: sk-ant-...Supported LLM Providers
| Provider Group | Notes |
|---|---|
| OpenAI and Azure OpenAI | OpenAI model presets plus Azure deployment-name configuration |
| Anthropic and Amazon Bedrock | Claude models through Anthropic or Bedrock-backed deployments |
| Google Gemini | Built-in Gemini model presets and the project-recommended Gemini path |
| DeepSeek, Qwen, Kimi, GLM, MiniMax, Doubao, Hunyuan, MiMo, SiliconFlow | Built-in presets for major model services |
| Grok, OpenRouter, Atlas Cloud | Additional hosted model-provider options |
| Ollama and Lemonade | Local model paths for self-hosted AI |
| OpenAI-compatible | Custom endpoints that use the OpenAI API format |
Gemini 3 Flash is the recommended model for balancing generation quality and speed. Gemini 3.1 Pro is the higher-quality option and takes longer to generate.
DEFAULT_MODEL=google:gemini-3-flash-previewRun Locally
Open http://localhost:3000, enter a topic or upload course materials, review the generated outline, and start classroom generation.
pnpm devProduction Build
pnpm build && pnpm startVercel: Fork the repository, import it into Vercel, configure the required provider environment variables, and deploy.
Docker:
cp .env.example .env.local
docker compose up --buildShared deployments: Set ACCESS_CODE if visitors should enter a site-level password before accessing the app and protected API endpoints.
ACCESS_CODE=your-secret-codeOptional: Server-Backed Persistence with PostgreSQL
The server-persistence Docker profile stores classroom documents and runtime sessions through the app’s embedded persistence API with PostgreSQL.
cp .env.example .env.local
printf '\nDATABASE_URL=postgres://openmaic:openmaic-dev@postgres:5432/openmaic\nPERSISTENCE_DEV_TOKEN=openmaic-local-dev\n' >> .env.local
NEXT_PUBLIC_PERSISTENCE=1 NEXT_PUBLIC_PERSISTENCE_TOKEN=openmaic-local-dev docker compose --profile server-persistence up --buildThe reference persistence token is intended for localhost or trusted-network, single-user deployments. The public NEXT_PUBLIC_PERSISTENCE_TOKEN does not provide user isolation. Production deployments need real session authentication and server-controlled authorization.
Optional: MP4 Video Export
PowerPoint, interactive HTML, classroom ZIP, and resource-pack exports use the main app. MP4 rendering uses an optional render service with Node.js 22, Chromium, and FFmpeg.
docker compose --profile video-export up --buildWhen RENDER_SERVICE_URL is configured, the Export Video action sends the self-contained project to the render service and returns an MP4 after rendering. If the render service is unavailable, OpenMAIC downloads the project ZIP for local CLI rendering.
The standard CPU render profile requires at least 8 GiB of host or container memory. A low-memory profile uses screenshot capture and requires at least 4 GiB. The render service uses software rendering and does not require a host GPU.
OpenClaw Integration
Install the OpenMAIC skill in OpenClaw:
clawhub install openmaicThe skill supports hosted and self-hosted modes. Hosted mode uses an access code from open.maic.chat. Self-hosted mode can guide the clone, configuration, and startup process.
Configure the skill through ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"openmaic": {
"config": {
"accessCode": "sk-xxx",
"repoDir": "/path/to/OpenMAIC",
"url": "http://localhost:3000"
}
}
}
}
}| OpenClaw Phase | What It Does |
|---|---|
| Clone | Detects an existing checkout or asks before cloning and installing |
| Startup | Offers pnpm dev, pnpm build && pnpm start, or Docker |
| Provider Keys | Recommends a provider path while you edit .env.local |
| Generation | Submits an asynchronous generation job and polls until the classroom link is ready |
Document Parsing and Supported Uploads
OpenMAIC accepts text, office documents, images, and selected audio or video formats. Available formats depend on the configured document or media parser.
| Parser | Supported Inputs |
|---|---|
| Local text parser | TXT, Markdown |
| MinerU self-hosted | PDF, DOCX, PPTX, XLSX, PNG, JPG/JPEG, WebP, GIF, BMP, JP2 |
| MinerU Cloud | MinerU self-hosted formats plus DOC, PPT, and XLS |
| AliDocMind documents | PDF, DOCX, PPTX, XLSX, PNG, JPG/JPEG, BMP, GIF |
| AliDocMind media extraction | MP4, MOV, AVI, MKV, WMV, MP3, WAV, AAC |
MinerU is useful for course files with tables, formulas, scanned pages, and OCR requirements. Configure the official MinerU API or a self-hosted MinerU instance:
PDF_MINERU_BASE_URL=https://...
PDF_MINERU_API_KEY=...Optional: VoxCPM2 Voice Cloning
OpenMAIC can connect to a self-hosted VoxCPM2 backend for text-to-speech and voice cloning. Supported backend styles include vLLM-Omni, the official Python API path, and Nano-vLLM.
Voice options include automatic persona-based voices, natural-language voice prompts, and voice cloning from a reference audio clip recorded or uploaded in the browser.
Optional: Local Speech Recognition with FunASR
OpenMAIC includes a local FunASR speech-recognition provider with an OpenAI-compatible server path. The built-in setup supports SenseVoiceSmall, Paraformer, and Fun-ASR-Nano, with CPU and GPU deployment options.
ASR_FUNASR_BASE_URL=http://localhost:8000/v1Alternatives & Related Resources
- DeepTutor is an open-source multi-agent learning workspace for tutoring, research, practice questions, and guided mastery.
- OpenClaw is the self-hosted agent platform used by OpenMAIC’s chat-app classroom skill.
- Free AI Education Tools collects additional AI tools for studying, teaching, quizzes, flashcards, and academic work.
Pros
- Free and MIT-licensed
- Rich multi-agent lesson formats
- Editable outlines and slides
- Multiple model providers supported
- Flexible self-hosting and exports
Cons
- LLM access required
- Resource-heavy MP4 rendering
- Variable classroom generation time
FAQs
Q: Can I run OpenMAIC with a local LLM?
A: Yes. OpenMAIC has built-in local provider config for Ollama and Lemonade and accepts custom OpenAI-compatible endpoints. Model quality, context length, tool use, and local hardware affect the generated classroom.
Q: Which upload formats depend on external parsing services?
A: TXT and Markdown use the local text parser. Office documents, PDFs, images, and supported audio or video formats use MinerU or AliDocMind according to the configured parser and file type.
Q: What happens when the MP4 render service is unavailable?
A: OpenMAIC downloads the self-contained render project as a ZIP for local CLI rendering. One-click MP4 generation needs the optional render service with Node.js 22, Chromium, and FFmpeg.
Q: What changes when PostgreSQL persistence is enabled?
A: Classroom documents and runtime sessions move to the server-backed persistence layer. The reference token configuration is intended for localhost or trusted single-user deployments and needs real authentication for production multi-user use.
Last Updated: August 19, 2026










