Skip to content

lwgray/marcus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

601 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›οΈ Marcus - AI Agent Coordination Platform

Python 3.11+ Discord GitHub Stars License: MIT Docker MCP Compatible

What is Marcus?

Marcus is a domain-agnostic AI agent coordination platform. While it excels at turning your ideas into working software, Marcus can coordinate AI agents for any multi-step project - from software development to content creation, research, marketing, and beyond.

Tell Marcus what you want to create in plain English, and it breaks down the work into tasks that multiple AI agents execute autonomously with proper context and coordination.

Why I Built This

I was stuck between micromanaging every agent decision or letting agents run wild. I wanted to step away and trust that agents had enough context to build what I wanted. Marcus solves this by being the project manager - you describe once, agents build with proper context and boundaries.

How It Works

Example 1: Software Development

  1. You say: "Build a todo app with authentication"
  2. Marcus: Creates tasks on a project board with dependencies
  3. Agents: Pull tasks, get context from previous work, build autonomously
  4. You: Watch progress, intervene only when needed

Example 2: Content Creation

  1. You say: "Create a 10-minute podcast about chess opening history"
  2. Marcus: Breaks down into research, outline, script writing, fact-checking, audio production
  3. Agents: Research specialist β†’ Content strategist β†’ Script writer β†’ Fact checker (in sequence)
  4. You: Receive completed podcast script with verified sources

Each task is locked to one agent until complete, preventing conflicts. Agents share context through the board, seeing what others built without direct communication.

Domain Agnostic Design

Marcus accepts any artifact type (code, research, scripts, designs, marketing copy, etc.), making it suitable for:

  • πŸ–₯️ Software Development - APIs, frontends, databases
  • πŸŽ™οΈ Content Creation - Podcasts, videos, articles
  • πŸ”¬ Research - Literature reviews, data analysis, reports
  • πŸ“Š Marketing - Campaigns, copy, social media
  • πŸ“š Education - Course content, lesson plans, assessments
  • ...and any other domain requiring multi-agent coordination

πŸš€ Quick Start

Prerequisites

  • Docker
  • Claude Code or another MCP-compatible AI agent
  • AI model: Choose one option:
    • Free: Local model with Ollama (zero cost, recommended for contributors)
    • Paid: Anthropic or OpenAI API key

1. Run Marcus with Docker

**Using Planka with Docker Compose**

πŸ“– **See the complete guide:** [DOCKER_QUICKSTART.md](DOCKER_QUICKSTART.md)

**Quick overview:**
```bash
# 1. Clone and start Planka
git clone https://github.com/lwgray/marcus.git
cd marcus
docker-compose up -d postgres planka

  ^board_id

# 2. Configure and start Marcus
# Option A: Use default config
cp config_marcus.example.json config_marcus.json
# Edit config with your board IDs and API key
docker-compose up -d marcus

# Option B: Use a specific config (Anthropic, GitHub, etc.)
MARCUS_CONFIG=config_marcus.json.anthropic docker-compose up -d marcus

# Option C: Create .env file for persistent config selection
echo "MARCUS_CONFIG=config_marcus.json.anthropic" > .env
docker-compose up -d marcus

For detailed setup instructions, troubleshooting, and customization options, see DOCKER_QUICKSTART.md.

2. Connect Your AI Agent

# For Claude Code:
claude mcp add --transport http marcus http://localhost:4298/mcp

# Marcus provides MCP-compatible endpoints for any agent

3. Configure Your Agent

Copy the Agent System Prompt to your AI agent:

For Claude Code users:

  1. Copy the contents from prompts/Agent_prompt.md
  2. Add to your Claude Code configuration as a CLAUDE.md file

What this enables:

  • βœ… Autonomous work loop (register β†’ request β†’ work β†’ report β†’ repeat)
  • βœ… Context sharing through artifacts and decisions
  • βœ… Smart dependency handling with get_task_context
  • βœ… Progress reporting at 25%, 50%, 75%, 100%
  • βœ… Architectural decision logging for other agents
  • βœ… Continuous task execution without waiting for user input

Want to understand or customize the workflow? See the Agent Workflow Guide for detailed explanations of each component.

4. Start Building

# Tell your configured agent:
"Create a project for a todo app with Marcus and start working"

# The agent will automatically:
# 1. Register with Marcus
# 2. Create Tasks onto the Planka board from your description
# 3. Request and work on tasks continuously
# 4. Report progress as it goes
# 5. Keep working until all tasks are done

βœ… What You'll See

  • Agent registers itself with Marcus ("Agent claude-1 registered")
  • Project created on GitHub with tasks
  • Agent continuously pulling tasks and working
  • Progress updates: "25% complete", "50% complete", etc.
  • Tasks moving through board columns: TODO β†’ IN PROGRESS β†’ DONE
  • Context flowing between tasks (API specs β†’ implementation β†’ tests)

5. Add More Agents (Optional)

# Want multiple agents working in parallel? Three options:

# Option A: Multiple windows (simplest)
# Open a new terminal/Claude window, connect to Marcus, and start another agent
# Both agents will pull different tasks from the same board

# Option B: Claude subagents
# If using Claude, launch subagents with the Task tool
# Each subagent automatically registers and works independently

# Option C: Git worktrees (prevents code conflicts)
git worktree add ../project-agent2 -b agent2-branch
# Each agent works in its own directory/branch
# Merge when ready

🎯 What Makes Marcus Different

Open Source & Accessible

Unlike proprietary AI coding tools, Marcus is completely open source. Anyone can use it, modify it, and contribute to make it better.

Zero to Software, Fast

Marcus empowers anyone - even non-programmers - to build real software. Describe what you want in plain English, and watch it get built.

True Autonomous Agents

  • Other tools: You copy-paste between chats or manage each agent
  • Marcus: Agents work independently with shared context through the board
  • Result: You can actually step away while software gets built

Community-Driven

Built by developers, for developers. We're focused on making software creation accessible to everyone, not maximizing profits.


🚨 Troubleshooting

Problem Solution
"Connection refused" Ensure Marcus Docker container is running on port 4298
"No tasks available" Agent needs to create a project first with create_project
"Agent not registered" Agent must call register_agent before requesting tasks
"GitHub auth failed" Check GitHub token has project permissions
"Failed to create any tasks" (Planka) Board has no lists! Add lists: Backlog, In Progress, Blocked, Done
"find_target_list failed" Open Planka board and create at least one list/column

🀝 Contributing

πŸ“– Developer guides:

Marcus is open source and we need your help!

Priority Areas

  1. Kanban Provider Integrations - Add Jira, Trello, Linear support
  2. Documentation - Tutorials, use cases, examples
  3. Use Case Definitions - Show what Marcus can build

Quick Start

# Fork and clone
git clone https://github.com/YOUR_USERNAME/marcus.git
cd marcus

# Install dev dependencies
pip install -r requirements-dev.txt

# Run tests
pytest tests/

See CONTRIBUTING.md and Local Development Setup for detailed guidelines.


βš™οΈ Configuration

πŸ“– Full reference: Configuration Guide

Marcus supports multiple configuration methods:

Quick config via environment variables:

MARCUS_KANBAN_PROVIDER=github \
MARCUS_KANBAN_GITHUB_TOKEN=ghp_... \
MARCUS_KANBAN_GITHUB_OWNER=your_username \
MARCUS_KANBAN_GITHUB_REPO=your_repo \
MARCUS_AI_ANTHROPIC_API_KEY=sk-ant-... \
docker-compose up -d

Or use a config file:

# Use default config
cp config_marcus.example.json config_marcus.json
# Edit with your settings
docker-compose up -d

# Or select a specific config
MARCUS_CONFIG=config_marcus.json.anthropic docker-compose up -d

See the Configuration Reference for all available options.


πŸ“š Documentation

Getting Started

Development

Agent Workflows

Full Documentation


🌟 Community


πŸ“„ License

MIT License - see LICENSE for details


⭐ Star us on GitHub if Marcus helps you build something awesome!

About

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages