Markus
Build AI teams that actually deliver.
Open-source AI workforce platform — role-based agents that plan, execute, review each other's work,
and deliver finished results. Runs around the clock on your machine or a small cloud server.
Website · Blog · Documentation · Discussions · Contributing
English | 中文
What is Markus?
Markus is an open-source platform that runs complete AI teams — not a wrapper around someone else's agents, and not just another framework.
Describe what you want done in plain language. Markus assembles the right roles (developer, reviewer, researcher, writer, analyst, ops), breaks the work into tasks, delegates to specialists, runs them in parallel, applies quality review, and ships the finished result.
It's the organizational layer that single-agent copilots are missing:
- Full agent runtime built in — every agent talks directly to LLM APIs and uses built-in tools: shell, file I/O, git, web search, code analysis, GUI & browser automation, and any MCP server. No proxying through external CLI tools.
- Zero config to start — SQLite storage, bundled web UI, one command. Nothing extra to install, nothing to configure.
- Manage from anywhere — a responsive dashboard for desktop and mobile, plus an Electron desktop app for macOS, Windows, and Linux. Deploy on any cloud server and run your AI company from your phone.
🚀 Quick Start
Pick whichever path is easiest.
Desktop app (macOS / Windows / Linux) — download from Releases.
npm (requires Node.js 22+):
npm install -g @markus-global/cli
markus start
Linux one-liner (works without Node.js):
curl -fsSL https://markus.global/install.sh | bash
From source:
git clone https://github.com/markus-global/markus.git && cd markus
pnpm install && pnpm build && pnpm dev
Open http://localhost:8056 — the onboarding wizard walks you through name, email, and password (initial login: [email protected] / markus123).
That's it. SQLite database, bundled web UI, zero external dependencies.
🎬 See It in Action

Real-time task board, agent chat, deliverable review, and team status — on desktop and mobile.
💼 What You Can Run on Markus
| Area | Example |
|---|---|
| Research & analysis | Scan competitor products, compile a competitive analysis, and draft a go-to-market strategy |
| Software engineering | Build a feature end-to-end — requirements, code, tests — with built-in peer review |
| Content & publishing | Draft, edit, review, and schedule articles, reports, and social posts |
| Operations | Daily briefings, issue triage, scheduled monitoring, blocker escalation |
| Data & reporting | Pull data, analyze it, and deliver finished reports on a schedule |
| Personal research | Deep-dive any topic and get a structured, cited deliverable back |
The same team keeps working after you close the laptop — heartbeats keep agents moving while you sleep.
✨ Key Features
| 🤖 Autonomous Agent Runtime | Each agent is a full LLM-powered worker with built-in tools — shell, file I/O, git, web search, code analysis, GUI & browser automation, and any MCP server. Works with any LLM provider: Anthropic, OpenAI, Google, DeepSeek, MiniMax, Ollama, OpenRouter, SiliconFlow, Moonshot — with automatic failover. |
| 🧠 Persistent Memory | Three-layer memory (procedural, semantic, episodic) that accumulates knowledge across sessions and consolidates it automatically — agents get smarter the longer you run them. |
| ⏰ Proactive Heartbeat | Agents don't wait for instructions. The heartbeat scheduler patrols open tasks, processes completions, and surfaces blockers — your team works while you sleep. |
| 🤝 Team Collaboration & A2A | Role-based organization: managers, workers, subagents, and structured agent-to-agent messaging. Humans join via DMs, group chats, and @mentions. |
| ✅ Governance & Trust | Progressive trust levels (probation → standard → trusted → senior), formal submit–review–merge delivery, emergency pause, and a full audit trail for every action. |
| 💬 Multi-Channel Messaging | Native bridges to Slack, Feishu, WhatsApp, and Telegram — agents meet your team where they already talk. |
| 🛠 Skills Marketplace | Browse and install agent templates, team configurations, and reusable skills from Markus Hub. Share what works with the community. |
| 📱 Desktop + Mobile | Electron desktop app for macOS / Windows / Linux, plus a responsive web dashboard. Review deliverables on the train, approve tasks from the couch. |
| 🔒 Self-Hosted, Data Yours | Runs entirely on your infrastructure with SQLite by default (PostgreSQL supported). Remote access via Cloudflare Tunnel, Tailscale, FRP, or ngrok. |
How It Works
1. Describe what you need
Tell the built-in Secretary agent your goal in plain language. It assembles the right team, breaks down requirements into tasks, and sets up the project.
"I need a research team to scan competitor products, write a competitive analysis, and draft a go-to-market strategy."
2. Agents execute in parallel
Agents delegate, spawn subagents, review each other's work, and escalate only when they should. Each agent works in an isolated workspace with its own context. Developers write code, researchers compile findings, writers produce drafts — all at the same time.
3. Review and deliver
You review the final deliverables, not the process. Every output passes through quality gates, and the full audit trail shows exactly what each agent did, when, and why.
Single Agent vs. Markus Team
A single agent — Claude Code, Codex, ChatGPT, or any copilot — is great at executing one task at a time. But one employee doesn't make a company.
| Single AI agent | Markus AI team | |
|---|---|---|
| Scale | One task at a time | Parallel work across specialist roles |
| Memory | Context evaporates when the session ends | Persistent, consolidating long-term memory |
| Proactivity | Waits for your prompt, every time | Works 24/7 via heartbeat, even while you sleep |
| Quality | "Done" is self-reported | Peers review, catch mistakes, and gate delivery |
| Visibility | 10 agents = 10 windows | One dashboard showing everyone's status |
You manage a workforce, not individual prompts.
Architecture
┌─────────────────────────────────────────────────────────┐
│ Web UI (React) · Desktop (Electron) │
│ Dashboard · Chat · Projects · Builder · Hub │
└──────────────────────┬──────────────────────────────────┘
│ REST + WebSocket
┌──────────────────────┴──────────────────────────────────┐
│ Org Manager (API Server) │
│ Auth · Tasks · Governance · Projects · Reports │
└──────────────────────┬──────────────────────────────────┘
│
┌──────────────────────┴──────────────────────────────────┐
│ Agent Runtime (Core) │
│ Agent · LLM Router · Tools · Memory · Heartbeat · A2A │
└──────────┬────────────────────────────┬─────────────────┘
│ │
┌──────────┴──────────┐ ┌────────────┴─────────────────┐
│ Storage (SQLite / │ │ Comms (Slack, Feishu, │
│ PostgreSQL) │ │ WhatsApp, Telegram) │
└─────────────────────┘ └──────────────────────────────┘
TypeScript monorepo with modular packages:
| Package | Role |
|---|---|
| core | Agent runtime — LLM routing, tools, memory, heartbeat, workspace isolation |
| org-manager | REST API, WebSocket, governance, task lifecycle |
| web-ui | React + Vite + Tailwind dashboard |
| desktop | Electron desktop app (macOS / Windows / Linux) |
| cli | @markus-global/cli — one-command install and launch |
| storage | SQLite persistence (zero external dependencies) |
| gui | GUI automation — VNC, screenshots, input control, visual analysis |
| comms | Slack / Feishu / WhatsApp / Telegram bridges |
| a2a | Agent-to-Agent communication protocol |
| remote | Remote access — tunnels and zero-config networking |
| chrome-extension | Browser automation via the Markus extension |
| shared | Shared types, constants, utilities |
Documentation
| Guide | Description |
|---|---|
| User Guide | Setup, configuration, Web UI walkthrough |
| Architecture | System design, agent runtime, memory, governance |
| Agent Runtime | Agent lifecycle, execution model, workspace isolation |
| Tool System | Built-in tools, MCP integration, tool contracts |
| Memory System | Three-layer memory architecture (Tulving) |
| Cognitive Architecture | Cognitive Preparation Pipeline (CPP) design |
| Mailbox System | Agent attention model, priority queue, triage |
| Prompt Engineering | System prompt assembly, tool loop, compression |
| State Machines | Task & requirement FSM specification |
| API Reference | REST API endpoints and WebSocket events |
| Coding Tools | Claude Code / Codex / Cursor integration |
| Learning Loop | Agent self-improvement and memory consolidation |
| Remote Access | Cloudflare Tunnel, Tailscale, FRP, ngrok setup |
| Release & Distribution | Build, packaging, publishing pipeline |
| Blog | Articles and tutorials on Markus and AI agents |
Contributing
pnpm install && pnpm build
pnpm dev # API + Web UI in dev mode
pnpm test # Run tests
pnpm typecheck # TypeScript check
pnpm lint # ESLint
Looking for a way to contribute?
- Good first issues — beginner-friendly tasks
- Help wanted — features the community needs
- Bug reports — help us fix issues
See CONTRIBUTING.md for full guidelines.
License
Markus is dual-licensed:
- Open Source: AGPL-3.0 — free for self-hosting and community contributions
- Commercial: Available — for SaaS deployments and proprietary modifications
Agent templates and skills shared through the marketplace may use their own licenses (typically MIT).
Website · Blog · Discussions · Issues
Markus — Where AI Agents Work as a Team