How to Configure and Deploy the OpenMAIC Skill with OpenClaw Workbench Integration
The OpenMAIC Skill deploys to OpenClaw through a standard SKILL.md package located in skills/openmaic/, requiring configuration in ~/.openclaw/openclaw.json and a running OpenMAIC server instance with valid LLM provider keys.
The THU-MAIC/OpenMAIC repository provides a ready-to-use skill package that integrates with the OpenClaw agent workbench, enabling natural language classroom generation workflows. This guide walks through the complete OpenMAIC Skill OpenClaw workbench integration, from installation to asynchronous classroom deployment.
Understanding the OpenMAIC Skill Architecture
The skill follows the standard SKILL.md format recognized by OpenClaw and other compliant workbenches. According to the source code analysis, the integration operates through four logical phases defined in skills/openmaic/SKILL.md:
- Clone: Detects whether the OpenMAIC repository exists locally and prompts for installation if missing.
- Startup: Guides server initialization via
pnpm dev, production builds, or Docker, verifying that the instance is reachable. - Provider Keys: Surfaces required environment variables from
.env.localand suggests optimal LLM providers. - Generation: Submits async jobs to the
/api/generate-classroomendpoint, polls for completion, and returns classroom URLs.
The runtime logic resides in lib/server/agent-runtime/, which handles session management, material processing, and job polling during the generation phase.
Installing the OpenMAIC Skill in OpenClaw
Install the skill through the OpenClaw CLI to register it with your workbench.
clawhub install openmaic
If you are using an alternative workbench (such as Codex, DeepSeek, or WorkBuddy), manually import the skills/openmaic/ directory or its compressed archive into your workbench's skill repository. The package contains the SKILL.md router and the references/ folder containing inline help fragments.
Configuring the Skill in OpenClaw
OpenClaw reads per-skill configuration from ~/.openclaw/openclaw.json. You must add an openmaic entry specifying either hosted or self-hosted mode.
Hosted Mode Configuration
For the managed service at https://open.maic.chat/, provide your access code:
{
"skills": {
"entries": {
"openmaic": {
"config": {
"accessCode": "sk-YOUR-ACCESS-CODE"
}
}
}
}
}
Self-Hosted Mode Configuration
For local development or private deployments, specify the repository path and server URL:
{
"skills": {
"entries": {
"openmaic": {
"config": {
"repoDir": "/path/to/OpenMAIC",
"url": "http://localhost:3000"
}
}
}
}
}
Place this file at ~/.openclaw/openclaw.json as documented in the README under the OpenClaw Integration section.
Setting Up the OpenMAIC Server
The skill requires a running OpenMAIC server instance. Deploy this through Node.js or Docker before invoking the skill.
Clone and Install Dependencies
git clone https://github.com/THU-MAIC/OpenMAIC.git
cd OpenMAIC
pnpm install
Configure Environment Variables
Copy the template and configure at least one LLM provider:
cp .env.example .env.local
Edit .env.local to include your provider credentials:
# Required: At least one LLM provider
OPENAI_API_KEY=sk-xxxxxxxxxxxx
DEFAULT_MODEL=openai:gpt-5.5
# Optional: Azure OpenAI configuration
# AZURE_OPENAI_API_KEY=your-azure-key
# AZURE_OPENAI_BASE_URL=https://YOUR-RESOURCE.openai.azure.com/openai
# Optional: Local Lemonade provider
LEMONADE_BASE_URL=http://localhost:13305/v1
The repository's .env.example contains the full list of supported providers and variables.
Start the Server
Run the development server:
pnpm dev
For production deployments:
pnpm build && pnpm start
The server listens on http://localhost:3000 by default. Alternatively, use Docker for persistent deployments:
services:
openmaic:
build: .
env_file: .env.local
ports:
- "3000:3000"
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: openmaic
POSTGRES_PASSWORD: openmaic-dev
POSTGRES_DB: openmaic
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Using the OpenMAIC Skill Integration
With the server running and skill configured, invoke classroom generation through natural language commands in any OpenClaw chat window:
teach me quantum physics
OpenClaw executes the following workflow:
- Configuration Verification: Validates
accessCodefor hosted mode orrepoDir/urlfor self-hosted mode. - Endpoint Communication: POSTs to
/api/generate-classroomwith any attached material files. - Job Polling: Monitors the async generation job status through the agent runtime.
- Result Delivery: Returns a clickable link to the generated classroom (e.g.,
http://localhost:3000/classroom/abc123).
Each step requires explicit user confirmation, preventing unauthorized automation.
Extending the Skill for Custom Workflows
Advanced users can modify the skill behavior by editing files under skills/openmaic/:
SKILL.md: Defines the SOP flow and routing logic between clone, startup, and generation phases.references/: Contains Markdown snippets rendered as contextual help during each step.
After modification, re-import the directory into your workbench to deploy custom classroom generation workflows.
Summary
- The OpenMAIC Skill package resides in
skills/openmaic/SKILL.mdand follows the standard skill format. - Configure OpenClaw through
~/.openclaw/openclaw.jsonusing eitheraccessCode(hosted) orrepoDir/url(self-hosted). - The OpenMAIC server requires
pnpm install, a populated.env.localfile, and at least one LLM provider key. - Natural language commands trigger the
/api/generate-classroomendpoint via thelib/server/agent-runtime/subsystem. - Docker and secondary development options support production deployments and custom SOP modifications.
Frequently Asked Questions
What file format does the OpenMAIC Skill use for workbench integration?
The skill uses the SKILL.md format located at skills/openmaic/SKILL.md. This Markdown-based specification defines the standard operating procedure (SOP) flow that OpenClaw and other compliant workbenches parse to execute the clone, startup, provider configuration, and generation phases.
Where does OpenClaw store the OpenMAIC Skill configuration?
OpenClaw stores skill-specific configuration in the ~/.openclaw/openclaw.json file. The openmaic entry within the skills.entries object accepts accessCode for hosted mode or repoDir and url for self-hosted deployments.
Which LLM providers can I use with the OpenMAIC server?
The OpenMAIC server supports OpenAI, Azure OpenAI, and local providers like Lemonade. Configure these in the .env.local file by setting OPENAI_API_KEY, AZURE_OPENAI_API_KEY with AZURE_OPENAI_BASE_URL, or LEMONADE_BASE_URL respectively. The DEFAULT_MODEL variable specifies which provider to use by default.
How does the skill handle classroom generation asynchronously?
When you submit a generation request, the skill calls the /api/generate-classroom endpoint and creates a durable job managed by lib/server/agent-runtime/. The skill polls this job status until completion, then returns the final classroom URL, ensuring reliable handling of long-running generation tasks without blocking the workbench interface.
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 →