
AI 코딩 에이전트가 강력해졌지만, 한 번에 하나의 터미널에서만 실행된다는 제약이 있다. 여러 프로젝트에서 여러 에이전트를 동시에 돌리고 싶다면? GitHub PR이 들어올 때마다 자동으로 코드 리뷰를 하고 싶다면? 어디서든 에이전트를 제어하고 싶다면?
Dorothy가 이 문제들을 해결한다. Claude Code, Codex, Gemini 에이전트를 위한 올인원 오케스트레이션 데스크톱 앱이다.
왜 Dorothy인가
기존 AI CLI 도구의 한계
- 단일 에이전트 - 한 번에 하나의 터미널, 하나의 에이전트만 실행
- 수동 관리 - 각 에이전트를 직접 시작하고 모니터링해야 함
- 제한된 자동화 - 외부 이벤트에 반응하는 자동화 불가
- 로컬 제한 - 원격에서 에이전트를 제어할 수 없음
Dorothy의 해결책
- 10개 이상 동시 실행 - 여러 프로젝트, 여러 코드베이스에서 에이전트 동시 운영
- 자동화 워크플로우 - GitHub PR, Jira 이슈, 외부 이벤트에 자동 반응
- Super Agent - 다른 에이전트를 프로그래밍 방식으로 제어하는 메타 에이전트
- 원격 제어 - Telegram, Slack으로 어디서든 에이전트 관리
핵심 기능
멀티 에이전트 실행
격리된 PTY 터미널 세션에서 각 에이전트가 독립적으로 실행된다:
- 무제한 동시 에이전트 실행
- 각 에이전트는 고립된 터미널에서 전체 PTY 지원
- 에이전트별 스킬, 모델 선택(sonnet, opus, haiku), 프로젝트 컨텍스트 할당
- 실행 중인 에이전트에 실시간 입력 전송
- 실시간 터미널 출력 스트리밍
- 에이전트 수명주기 관리: idle → running → completed / error / waiting
- Git worktree 지원으로 브랜치 격리 개발
- 자율 실행 모드 (—dangerously-skip-permissions)
Super Agent
다른 모든 에이전트를 프로그래밍 방식으로 제어하는 메타 에이전트:
- MCP 도구로 에이전트 생성, 시작, 중지
- 에이전트 역량과 스킬 기반 작업 위임
- 진행 상황 모니터링, 출력 캡처, 에러 처리
- Telegram, Slack 메시지에 응답하여 원격 오케스트레이션
- 일회성 작업을 위한 임시 에이전트 생성 및 정리
자동화 (Automations)
외부 소스를 폴링하고, 새로운 항목을 감지하고, Claude 에이전트를 자율적으로 실행:
| 소스 | 상태 | 폴링 방식 |
|---|---|---|
| GitHub | 활성 | gh CLI — PR, 이슈, 릴리스 |
| JIRA | 활성 | REST API v3 — 이슈, 버그, 스토리, 태스크 |
| Pipedrive | 계획 중 | — |
| 계획 중 | — | |
| RSS | 계획 중 | — |
| Custom | 계획 중 | Webhook 지원 |
자동화 워크플로우:
- 스케줄러가 cron 일정에 따라 자동화 트리거
- 폴러가 소스에서 항목 가져옴 (예: gh CLI로 GitHub PR)
- 필터가 트리거 조건 적용
- 중복 제거 — 이미 처리된 항목 건너뜀
- 에이전트 스포닝 — 각 항목마다 임시 에이전트 생성
- 프롬프트 주입 — 템플릿 변수로 항목 데이터 주입
- 자율 실행 — 전체 MCP 도구 접근으로 실행
- 출력 전달 — Telegram, Slack, GitHub 코멘트로 결과 전송
- 정리 — 완료 후 임시 에이전트 삭제
칸반 태스크 관리
에이전트 시스템과 통합된 태스크 보드:
- 컬럼: Backlog → Planned → Ongoing → Done
- 우선순위: Low, Medium, High
- 진행률 추적: 태스크별 0-100%
- 에이전트 할당: 특정 에이전트 지정 또는 자동 할당
- 스킬 요구사항: 필요 스킬 정의 → 시스템이 역량 있는 에이전트와 매칭
자동 할당 시스템:
칸반-자동화 서비스가 새 태스크를 지속적으로 감시:
- 태스크 스킬 요구사항과 사용 가능한 에이전트 매칭
- 매칭되는 에이전트가 없으면 새 에이전트 생성
- 태스크 할당하고 Ongoing으로 이동
- 에이전트 작업 진행에 따라 진행률 추적
- 완료 시 태스크를 Done으로 표시
예약 태스크 (Scheduled Tasks)
Cron 기반으로 Claude Code를 자율 실행:
| 표현식 | 스케줄 |
|---|---|
| 0 9 * * * | 매일 오전 9시 |
| 0 9 * * 1-5 | 평일 오전 9시 |
| */15 * * * * | 15분마다 |
| 0 */2 * * * | 2시간마다 |
| 30 14 * * 1 | 매주 월요일 오후 2:30 |
원격 제어
Telegram 명령어:
| 명령어 | 설명 |
|---|---|
| /status | 모든 에이전트 상태 개요 |
| /agents | 현재 태스크가 포함된 상세 에이전트 목록 |
| /projects | 에이전트가 포함된 모든 프로젝트 목록 |
| /start_agent | 태스크로 에이전트 생성 및 시작 |
| /stop_agent | 실행 중인 에이전트 중지 |
| /ask | Super Agent에 태스크 위임 |
| /usage | API 사용량 및 비용 통계 |
Slack: 동일한 기능을 @멘션 또는 DM으로 제공
Vault
세션 간에 에이전트가 읽고, 쓰고, 검색할 수 있는 영속 문서 저장소:
- Markdown 문서 (제목, 내용, 태그, 파일 첨부)
- 폴더 조직 (중첩 계층 지원)
- SQLite FTS5 기반 전체 텍스트 검색
- 크로스 에이전트 접근 — 다른 에이전트가 만든 문서 읽기
- 파일 첨부 지원
MCP 서버 & 도구
Dorothy는 40개 이상의 도구를 가진 5개의 MCP 서버를 제공:
mcp-orchestrator (26+ 도구)
주요 오케스트레이션 서버:
- 에이전트 관리: list_agents, get_agent, create_agent, start_agent, stop_agent, remove_agent, wait_for_agent
- 메시징: send_telegram, send_slack
- 스케줄러: list_scheduled_tasks, create_scheduled_task, delete_scheduled_task, run_scheduled_task
- 자동화: list_automations, create_automation, run_automation, pause_automation, resume_automation
mcp-telegram (4 도구)
미디어 지원 Telegram 메시징:
send_telegram, send_telegram_photo, send_telegram_video, send_telegram_document
mcp-kanban (8 도구)
칸반 태스크 관리:
list_tasks, get_task, create_task, move_task, update_task_progress, mark_task_done, assign_task, delete_task
mcp-vault (10 도구)
문서 관리:
vault_create_document, vault_update_document, vault_get_document, vault_list_documents, vault_delete_document, vault_attach_file, vault_search, vault_create_folder, vault_list_folders, vault_delete_folder
mcp-socialdata (5 도구)
Twitter/X 데이터:
twitter_search, twitter_get_tweet, twitter_get_tweet_comments, twitter_get_user, twitter_get_user_tweets
기술 스택
| 카테고리 | 기술 | 버전 |
|---|---|---|
| 프레임워크 | Next.js (App Router) | 16 |
| 프론트엔드 | React | 19 |
| 데스크톱 | Electron | 33 |
| 스타일링 | Tailwind CSS | 4 |
| 상태관리 | Zustand | 5 |
| 애니메이션 | Framer Motion | 12 |
| 터미널 | xterm.js + node-pty | 5 / 1.1 |
| 데이터베이스 | better-sqlite3 | 11 |
| MCP | @modelcontextprotocol/sdk | 1.0 |
| Telegram | node-telegram-bot-api | 0.67 |
| Slack | @slack/bolt | 4.0 |
| 검증 | Zod | 3.22 |
| 언어 | TypeScript | 5 |
설치
릴리스 다운로드
GitHub Releases에서 최신 버전 다운로드
macOS에서 “app is damaged” 오류 시:
xattr -cr /Applications/Dorothy.app
소스 빌드
git clone https://github.com/Charlie85270/Dorothy.git
cd Dorothy/app/dorothy
npm install
npx @electron/rebuild
npm run electron:dev
요구사항
- Node.js 18+
- npm 또는 yarn
- Claude Code CLI:
npm install -g @anthropic-ai/claude-code - GitHub CLI (gh) — GitHub 자동화용
마치며: AI 에이전트의 아내(?)
프로젝트 이름 “Dorothy”는 재미있는 선택이다. “Dorothy, the wife your AI agents needs.” AI 에이전트들이 집 밖에서 일하는 동안, 집안일을 정리하고 관리하는 파트너 같은 존재라는 의미일까?
농담은 제쳐두고, Dorothy는 AI 코딩 에이전트 관리의 현실적인 문제들을 해결한다. 동시 실행, 자동화, 원격 제어, 태스크 관리. 이 모든 것이 하나의 일관된 인터페이스에 통합되어 있다.
특히 자동화 기능이 인상적이다. GitHub PR이 들어오면 자동으로 코드 리뷰를 하고, Jira 이슈가 생성되면 자동으로 작업을 시작하는 CI/CD 같은 워크플로우를 AI로 구현할 수 있다.
Electron 기반이라 가볍지는 않지만, 기능의 완성도는 높다. 여러 AI 코딩 에이전트를 병렬로 실행해야 하는 개발자라면 시도해볼 만하다.
🔗 관련 정보
- GitHub: https://github.com/Charlie85270/Dorothy
- 릴리스: https://github.com/Charlie85270/Dorothy/releases
- skills.sh: https://skills.sh
- Anthropic: https://anthropic.com