How to Set Up OpenMAIC Project Locally: Complete Installation Guide
Clone the repository, install dependencies with pnpm, configure environment variables from .env.example, and run pnpm dev to start the Next.js 16 application on http://localhost:3000.
OpenMAIC is a modern, multi-agent learning platform built on Next.js 16 and React 19 using TypeScript. This guide walks you through the local setup process using the official source code from THU-MAIC/OpenMAIC, covering everything from basic installation to optional advanced features like PostgreSQL persistence and the Pro workbench.
Prerequisites
Before installing OpenMAIC locally, ensure your environment meets the minimum requirements:
- Node.js ≥ 20
- pnpm ≥ 10
These version constraints are enforced by the project's package manager configuration and build scripts.
Clone and Install Dependencies
Start by cloning the repository and installing the required packages:
git clone https://github.com/THU-MAIC/OpenMAIC.git
cd OpenMAIC
pnpm install
The project uses pnpm workspaces to manage dependencies across the main application and sub-packages like @openmaic/storage located in packages/@openmaic/storage/.
Configure Environment Variables
OpenMAIC requires environment variables to connect to LLM providers and configure runtime behavior:
cp .env.example .env.local
Edit .env.local and add at least one API key for your preferred LLM provider:
# Required for generation and orchestration features
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
The .env.example file in the repository root serves as the template for all supported variables, including optional settings for local AI backends and database connections.
Run the Development Server
Start the local development server with:
pnpm dev
This command launches the Next.js application on http://localhost:3000. The entry point for the home page is located at app/page.tsx, which renders the workspace UI where users submit generation prompts.
Optional Advanced Features
Enable PostgreSQL Persistence
By default, OpenMAIC uses browser-based storage. To enable durable server-side persistence using PostgreSQL, set the following environment variables:
echo "DATABASE_URL=postgres://openmaic:openmaic-dev@postgres:5432/openmaic" >> .env.local
echo "NEXT_PUBLIC_PERSISTENCE=1" >> .env.local
Then launch the Docker Compose profile that includes the PostgreSQL service:
docker compose --profile server-persistence up --build
The @openmaic/storage package in packages/@openmaic/storage/ manages the swappable persistence layer, which switches between browser IndexedDB, HTTP, PostgreSQL, and S3 backends based on the NEXT_PUBLIC_PERSISTENCE flag.
Activate the Pro Workbench
The Pro workbench provides advanced multi-agent orchestration features through a dedicated UI. Enable it by setting:
echo "NEXT_PUBLIC_PRO_WORKBENCH_ENABLED=true" >> .env.local
echo "OPENMAIC_AGENT_RUNTIME_ENABLED=true" >> .env.local
pnpm dev
The workbench components are located in components/workbench/ and interface with the durable agent runtime in lib/server/agent-runtime/.
Understanding the Architecture
OpenMAIC follows a three-layer architecture that becomes relevant when extending your local setup:
- Presentation Layer: Next.js App Router handles UI rendering in
app/page.tsxand classroom playback views. - Core Business Logic: The
lib/directory contains the two-stage lesson generation pipeline (lib/generation/), LangGraph-driven multi-agent orchestration (lib/orchestration/), and the agent runtime (lib/server/agent-runtime/). - Persistence Layer: The storage abstraction in
packages/@openmaic/storage/enables the build-time switching of data backends.
Configuration changes in next.config.ts control build-time optimizations and Vercel integration settings, while docker-compose.yml defines the containerized development environment.
Summary
- Prerequisites: Install Node.js ≥ 20 and pnpm ≥ 10 before starting.
- Installation: Clone the repository and run
pnpm installto set up the workspace. - Configuration: Copy
.env.exampleto.env.localand configure at least one LLM API key. - Development: Run
pnpm devto start the application onlocalhost:3000. - Persistence: Enable PostgreSQL by setting
NEXT_PUBLIC_PERSISTENCE=1and using Docker Compose. - Pro Features: Activate the workbench with
NEXT_PUBLIC_PRO_WORKBENCH_ENABLED=true.
Frequently Asked Questions
What Node.js version does OpenMAIC require?
OpenMAIC requires Node.js version 20 or higher. This requirement is specified in the project documentation and enforced by the build system to ensure compatibility with Next.js 16 and React 19 features.
Can I use npm or yarn instead of pnpm?
No, OpenMAIC requires pnpm version 10 or higher. The project uses pnpm workspaces to manage the monorepo structure, including the @openmaic/storage package and other internal dependencies. Using npm or yarn will not correctly resolve workspace dependencies.
How do I switch between storage backends?
Set the NEXT_PUBLIC_PERSISTENCE environment variable in .env.local to control the storage layer. Value 0 uses browser IndexedDB, while 1 enables PostgreSQL persistence. For PostgreSQL, you must also provide a valid DATABASE_URL and run the Docker Compose server persistence profile.
Is the Pro workbench available in the default installation?
No, the Pro workbench is disabled by default. You must explicitly enable it by setting NEXT_PUBLIC_PRO_WORKBENCH_ENABLED=true and OPENMAIC_AGENT_RUNTIME_ENABLED=true in your environment configuration before starting the development server.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →