Overmind
Distributed memory synchronization for Claude Code — share knowledge, process, and context across independent agents and developers in real-time.
StarCraft의 Overmind(초월체)처럼, 각 Claude 인스턴스가 물리적으로 별개이되 동일한 memory pool을 참조하는 상태를 유지합니다.
What it does
- 과정 공유: 결론만이 아닌 시도 → 실패 → correction → 선택의 전체 과정을 동기화
- 사전 차단: 한 에이전트의 삽질 결과가 다른 에이전트의 사전 방어막이 됨
- 다형성 감지: 같은 코드 영역에 서로 다른 intent가 공존할 때 감지 및 고지
- 실시간 broadcast: 긴급 변경사항을 모든 에이전트에게 즉시 전파
Quick Start
1. Server 실행
cd server
uv sync --all-extras
uv run python -m overmind.main
서버가 http://localhost:7777에서 시작됩니다.
2. Plugin 설치 (GitHub에서 한 번에)
대상 프로젝트의 Claude Code 세션에서:
/plugin marketplace add whyjp/overmind
/plugin install overmind-plugin
이 한 번의 설치로 hooks + MCP + skills + commands가 모두 설정됩니다.
| 자동 설정 항목 | 내용 |
|---|
| Hooks | SessionStart(pull), PostToolUse(변경 누적+push), PreToolUse(scope 경고/차단), SessionEnd(잔여 flush) |
| MCP | overmind_push, overmind_pull, overmind_broadcast 도구 |
| Skills | overmind-broadcast, overmind-report |
| Commands | /overmind:broadcast |
3. 확인
# 서버 상태
curl http://localhost:7777/api/repos
# 대시보드
# http://localhost:7777/dashboard
4. 2-에이전트 교차 테스트
터미널 2개에서 동일 프로젝트, 서로 다른 유저로 실행:
# 터미널 A
OVERMIND_USER=agent_a claude
# 터미널 B
OVERMIND_USER=agent_b claude
Agent A 작업 → 세션 종료 → Agent B 세션 시작 시 Agent A의 이벤트가 자동 pull됩니다.
A/B Benchmark: Cross-Model Knowledge Transfer
똑똑한 모델(sonnet)의 해결 과정이 Overmind를 통해 저렴한 모델(haiku)에게 자동 전파되어, 비용 효율적으로 팀 전체 성과를 끌어올린다.
Pioneer(sonnet) → Student(haiku+Overmind) vs Naive(haiku, 대조군). 동일한 프롬프트, 모델 차이만으로 Overmind의 가치를 증명.
Nightmare Scaffold (5트랩, 4파일, Pioneer=sonnet, Student/Naive=haiku)
| 지표 | Pioneer(sonnet) | Student(haiku+OM) | Naive(haiku) | Student vs Naive |
|---|
| 성공률 | 100% | 100% | 50% | 2배 |
| 서버 실행 횟수 | 2 | 8 | 13.5 | -41% |
| config 수정 횟수 | 4 | 9.5 | 12 | -21% |
Branch-Conflict Scaffold (3트랩, cross-branch, Pioneer=sonnet)
| 지표 | Pioneer(sonnet) | Student(haiku+OM) | Naive(haiku) | Student vs Naive |
|---|
| 성공률 | 100% | 100% | 100% | 동일 |
| 서버 실행 횟수 | 1 | 3.5 | 5 | -30% |
| config 수정 횟수 | 2 | 3 | 4 | -25% |
왜 이 벤치마크가 유효한가
- 프롬프트 조작 없음 — Pioneer도 Student/Naive와 동일한 프롬프트 사용
- 모델 차이만 — sonnet이 자연스럽게 더 나은 해결 과정을 생성
- 자동 전파 — Overmind Plugin이 Pioneer의 시행착오를 자동 push, Student가 SessionStart에서 자동 pull
- 공정한 비교 — Student와 Naive는 동일 모델, 동일 프롬프트, Overmind 연결만 다름
Overmind가 전달하는 것
[OVERMIND] Team context from other agents on this repo.
TEAMMATE CHANGES — What other agents changed (with diffs):
- Modified config.toml (1 file)
Diff: +[server]\n+host = "localhost"\n+port = 3000\n+env = "development"
(by agent_pioneer)
Formatter는 사실만 전달한다. 에이전트가 자연스럽게 판단하고 활용.
상세 결과: docs/benchmark-ab-test.md
실행:
cd server
# Nightmare: Pioneer=sonnet, Student/Naive=haiku
uv run pytest tests/scenarios/test_live_agents_AB_statistical.py \
-m e2e_live -s -k nightmare --student-n 2 --naive-m 2 \
--agent-model haiku --pioneer-model sonnet
# Branch-Conflict: cross-branch knowledge transfer
uv run pytest tests/scenarios/test_live_agents_AB_statistical.py \
-m e2e_live -s -k branch_aware --student-n 2 --naive-m 2 \
--agent-model haiku --pioneer-model sonnet
How it works
Plugin Hook 동작
| 시점 | 동작 |
|---|
| 세션 시작 | 팀 이벤트를 pull → RULES/FIXES/CONTEXT/ANNOUNCEMENTS로 분류 → Claude에 지시형 프롬프트 주입 |
| 파일 수정 후 | 변경 파일을 state에 누적 → 개수/시간/스코프 전환 시 diff-enriched 이벤트를 batch push |
| 파일 수정 전 | scope 관련 이벤트 pull → urgent correction이면 편집 차단, 그 외 경고 |
| 세션 종료 | 잔여 pending changes flush push |
Architecture
Overmind Plugin (클라이언트) Overmind Server
┌─────────────────────┐ ┌──────────────────────┐
│ Hook → push │── POST ──→│ /api/memory/push │
│ │ │ JSONL store │
│ Hook → pull │── GET ───←│ /api/memory/pull │
│ → Claude 해석 │ │ scope filter │
│ │ │ │
│ Skill → broadcast │── POST ──→│ /api/memory/broadcast│
│ │ │ priority 관리 │
│ │ │ │
│ MCP tool │── MCP ───→│ /mcp/ endpoint │
└─────────────────────┘ │ │
각 Claude Code 인스턴스에 1개씩 │ /dashboard │
└──────────────────────┘
프로젝트당 1개 (공유)
Event Types