Show HN: OpenSwarm – Linear/GitHub을 위한 멀티 에이전트 Claude CLI 오케스트레이터
요약
OpenSwarm은 Linear 이슈 처리와 GitHub 연동을 지원하는 멀티 에이전트 AI 오케스트레이터입니다. Claude, GPT, Codex뿐만 아니라 Ollama 등을 통한 로컬 모델까지 지원하며, Worker와 Reviewer 파이프라인을 통해 자율적인 코드 작업을 수행합니다.
핵심 포인트
- Claude, OpenAI, 로컬 모델(Ollama, LMStudio 등)을 아우르는 멀티 프로바이더 지원
- Linear 이슈 연동, Discord 보고, LanceDB 기반 장기 기억 유지 기능 제공
- Worker, Reviewer, Tester, Documenter로 구성된 자동화 파이프라인 실행 가능
- TUI(Terminal User Interface)를 통한 직관적인 채팅 및 프로젝트 관리 인터페이스 제공
- Node.js 환경에서 CLI 명령어로 간편하게 설치 및 실행 가능
자율형 AI 에이전트 오케스트레이터 (Orchestrator) — Claude, GPT, Codex, 그리고 로컬 모델 (Ollama/LMStudio/llama.cpp)
OpenSwarm는 단일 저자에 의해 여가 시간에 개발 및 유지 관리되고 있습니다. 만약 이 프로젝트가 귀하의 시간이나 비용을 절약해 준다면, 기부를 고려해 주세요. 기부금은 지속적인 업데이트, 버그 수정 및 새로운 어댑터(Adapter) 개발에 직접적으로 사용됩니다.
일회성 기부도 전적으로 환영합니다. 구독 등급은 없으며, 유료 결제 장벽(Paywall)이 있는 기능도 없습니다. 감사합니다.
OpenSwarm는 여러 AI 에이전트를 자율적인 코드 작업자(Code workers)로 오케스트레이션합니다. Linear 이슈를 가져오고, Worker/Reviewer 쌍 파이프라인(Pipeline)을 실행하며, Discord에 보고하고, LanceDB를 통해 장기 기억(Long-term memory)을 유지합니다. Claude Code, OpenAI GPT, Codex, 그리고 Ollama, LMStudio 또는 llama.cpp를 통한 로컬 오픈 소스 모델을 지원합니다.
npm install -g @intrect/openswarm
openswarm
그게 전부입니다. openswarm
인자(Arguments) 없이 실행하면 즉시 TUI 채팅 인터페이스가 시작됩니다.
| 키 (Key) | 동작 (Action) |
|---|---|
Tab | 탭 전환 (Chat / Projects / Tasks / Stuck / Logs) |
Enter | 메시지 전송 |
Shift+Enter | 줄바꿈 |
i | 입력창 포커스 |
Esc | 입력 포커스 해제 |
Ctrl+C | 종료 |
상태 표시줄(Status bar) 표시 항목: 프로바이더(Provider) · 모델(Model) · 메시지 수 · 누적 비용(Cumulative cost)
openswarm # TUI 채팅 (기본값)
openswarm chat [session] # 단순 readline 채팅
openswarm start # 전체 데몬(Daemon) 시작 (config.yaml 필요)
...
| 옵션 (Option) | 설명 (Description) |
|---|---|
--path <path> | 프로젝트 경로 (기본값: cwd) |
--timeout <seconds> | 초 단위 타임아웃 (기본값: 600) |
--local | 데몬 없이 로컬에서 실행 |
--pipeline | 전체 파이프라인: worker + reviewer + tester + documenter |
--worker-only | 리뷰 없이 Worker만 실행 |
-m, --model <model> | Worker를 위한 모델 오버라이드 (Override) |
종료 코드 (Exit codes): 0 성공 · 1 실패 · 2 타임아웃
자율 운영 (Linear 이슈 처리, Discord 제어, PR 자동 개선)을 위해서는 전체 설정(Full config)이 필요합니다:
Node.js >= 22
Claude Code CLI 인증됨 (claude -p) — 기본 프로바이더
OpenAI Codex CLI (codex exec
) — 선택 가능한 대안 프로바이더Discord Bot 메시지 콘텐츠 의도(message content intent)가 포함된 토큰Linear API 키 및 팀 IDGitHub CLI(gh) — CI 모니터링용 (선택 사항)
git clone https://github.com/unohee/OpenSwarm.git
cd OpenSwarm
npm install
...
.env 파일을 생성하세요:
DISCORD_TOKEN=your-discord-bot-token
DISCORD_CHANNEL_ID=your-channel-id
LINEAR_API_KEY=your-linear-api-key
...
config.yaml은 ${VAR} / ${VAR:-default} 치환을 지원하며, Zod 스키마를 통해 유효성 검사를 수행합니다.
| 섹션 | 설명 |
|---|---|
discord | 봇 토큰, 채널 ID, 웹훅 URL |
linear | API 키, 팀 ID |
github | CI 모니터링을 위한 리포지토리(Repos) 목록 |
agents | 에이전트 정의 (이름, 프로젝트 경로, 하트비트(heartbeat) 간격) |
autonomous | 스케줄, 페어 모드(pair mode), 역할 모델, 분해(decomposition) 설정 |
prProcessor | PR 자동 개선 스케줄, 재시도 제한, 충돌 해결사(conflict resolver) 설정 |
adapter: claude # "claude" | "codex" | "gpt" | "local"
Discord를 통해 런타임에 전환 가능: !provider codex / !provider claude
| 어댑터 (Adapter) | 백엔드 (Backend) | 모델 (Models) | 인증 (Auth) |
|---|---|---|---|
claude | Claude Code CLI | sonnet-4, haiku-4.5, opus-4 | CLI 인증 |
codex | OpenAI Codex CLI | o3, o4-mini | CLI 인증 |
gpt | OpenAI API | gpt-4o, o3, gpt-4.1 | OAuth PKCE |
local | Ollama / LMStudio / llama.cpp | gemma4, llama3, mistral, qwen 등 | 없음 |
로컬 모델은 표준 포트(Ollama :11434, LMStudio :1234, llama.cpp :8080)에서 자동으로 감지됩니다.
역할별 어댑터 오버라이드(Per-role adapter overrides):
autonomous:
defaultRoles:
worker:
...
autonomous:
defaultRoles:
worker:
...
npm run service:install # 시스템 서비스로 빌드 및 설치
npm run service:start # 시작
npm run service:stop # 중지
...
npm run build && npm start # 프로덕션 (Production)
npm run dev # 개발 (Development, tsx watch)
docker compose up -d # Docker
┌──────────────────────────┐
│ Linear API │
│ (이슈, 상태, 메모리) │
...
멀티 프로바이더 어댑터 (Multi-Provider Adapters)— 플러그형 어댑터 시스템: 런타임 프로바이더 전환 기능을 갖춘 Claude Code, OpenAI GPT/Codex, 그리고 로컬 모델 (local models) (Ollama, LMStudio, llama.cpp) 지원
코드 레지스트리 (Code Registry)— 8개 언어에 걸친 모든 함수/클래스/타입을 추적하며, 복잡도 점수 산정, 테스트 매핑 및 리스크 평가 기능을 제공하는 SQLite 기반 엔티티 레지스트리
BS 탐지기 (BS Detector)— 파이프라인 가드 (pipeline guard) 통합을 통해 잘못된 코드 패턴 (빈 catch 문, 하드코딩된 비밀번호, as any 등)을 감지하는 내장 정적 분석 엔진
자율 파이프라인 (Autonomous Pipeline)— Cron 기반의 하트비트 (heartbeat)가 Linear 이슈를 가져오고, Worker/Reviewer 쌍의 루프를 실행하며, 이슈 상태를 자동으로 업데이트
Worker/Reviewer 쌍 (Worker/Reviewer Pairs)— 자동화된 리뷰, 테스트 및 문서화 단계를 포함한 다회차 코드 생성
의사결정 엔진 (Decision Engine)— 범위 검증 (scope validation), 속도 제한 (rate limiting), 우선순위 기반 작업 선택 및 워크플로우 매핑
인지 메모리 (Cognitive Memory)— 세션 간 장기 기억을 위해 Xenova/multilingual-e5-base 임베딩을 사용하는 LanceDB 벡터 저장소
지식 그래프 (Knowledge Graph)— 정적 코드 분석, 의존성 매핑, 영향 분석 및 동시 작업 간의 파일 수준 충돌 감지
Discord 제어 (Discord Control)— 모니터링, 작업 할당, 스케줄링, 프로바이더 전환 및 페어 세션 관리를 위한 전체 명령 인터페이스
풍부한 TUI 채팅 (Rich TUI Chat)— 탭, 스트리밍 응답 및 기크(geek) 테마의 로딩 메시지를 갖춘 Claude Code 스타일의 터미널 인터페이스
동적 스케줄링 (Dynamic Scheduling)— Discord 관리 명령을 갖춘 Cron 기반 작업 스케줄러
PR 자동 개선 (PR Auto-Improvement)— 열려 있는 PR을 모니터링하고, CI 실패를 자동 수정하며, 머지 충돌 (merge conflicts)을 자동 해결하고, 모든 체크가 통과될 때까지 재시도
장기 실행 모니터 (Long-Running Monitors)— 외부 프로세스 (학습 작업, 배치 작업)를 추적하고 완료 보고
웹 대시보드 (Web Dashboard)— 3847 포트에서 실시간 파이프라인 단계, 비용 추적, 워크트리 (worktree) 상태 및 라이브 로그 제공
속도 제어 (Pace Control)— 5시간 이동 창 (rolling window) 작업 상한선, 프로젝트별 제한, 터보 모드, 실패 시 지수 백오프 (exponential backoff) 적용
i18n— 영어 및 한국어 로케일 지원
Linear (할 일/진행 중)
→ 할당된 이슈 (issues) 가져오기
→ DecisionEngine 필터링 및 우선순위 지정
...
하이브리드 검색 (Hybrid retrieval): 0.55 × 유사도 (similarity) + 0.20 × 중요도 (importance) + 0.15 × 최신성 (recency) + 0.10 × 빈도 (frequency)
메모리 유형 (Memory types): belief (신념)
· strategy (전략)
· user_model (사용자 모델)
· system_pattern (시스템 패턴)
· constraint (제약 사항)
백그라운드: 쇠퇴 (decay), 통합 (consolidation), 모순 탐지 (contradiction detection), 증류 (distillation).
| 명령어 | 설명 |
|---|---|
!dev <repo> "<task>" | 저장소 (repository)에서 개발 작업 실행 |
!dev list | 알려진 저장소 목록 표시 |
!tasks | 실행 중인 작업 목록 표시 |
!cancel <taskId> | 실행 중인 작업 취소 |
| 명령어 | 설명 |
|---|---|
!status | 에이전트 및 시스템 상태 |
!pause <session> | 자율 작업 일시 중지 |
!resume <session> | 자율 작업 재개 |
!log <session> [lines] | 최근 출력 내용 보기 |
| 명령어 | 설명 |
|---|---|
!issues | Linear 이슈 목록 표시 |
!issue <id> | 이슈 상세 정보 보기 |
!limits | 에이전트 일일 실행 제한 |
| 명령어 | 설명 |
|---|---|
!auto | 실행 상태 |
!auto start [cron] [--pair] | 자율 모드 시작 |
!auto stop | 자율 모드 중지 |
!auto run | 즉시 하트비트 (heartbeat) 트리거 |
!approve / !reject | 대기 중인 작업 승인 또는 거절 |
| 명령어 | 설명 |
|---|---|
!pair | 페어 (pair) 세션 상태 |
!pair start [taskId] | 페어 세션 시작 |
!pair run <taskId> [project] | 직접 페어 실행 |
!pair stop [sessionId] | 페어 세션 중지 |
!pair history [n] | 세션 기록 보기 |
!pair stats | 페어 통계 보기 |
| 명령어 | 설명 |
|---|---|
!schedule | 모든 스케줄 목록 표시 |
!schedule run <name> | 스케줄 즉시 실행 |
!schedule toggle <name> | 스케줄 활성화/비활성화 |
!schedule add <name> <path> <interval> "<prompt>" | 스케줄 추가 |
!schedule remove <name> | 스케줄 제거 |
| 명령 (Command) | 설명 (Description) |
|---|---|
!ci | GitHub CI 실패 상태 |
| `!provider <claude | codex>` |
!codex | 최근 세션 기록 |
!memory search "<query>" | 인지 메모리 (Cognitive memory) 검색 |
!help | 전체 명령 참조 |
src/
├── index.ts # 엔트리 포인트 (Entry point)
├── cli.ts # CLI 엔트리 포인트 (run, exec, chat, init, validate, start)
...
| 경로 (Path) | 설명 (Description) |
|---|---|
~/.openswarm/ | 상태 디렉토리 (메모리, codex, 메트릭, 워크플로우) |
~/.openswarm/registry.db | 코드 엔티티 레지스트리 (Code entity registry) (SQLite) |
~/.openswarm/issues.db | 로컬 이슈 트래커 (Local issue tracker) (SQLite) |
~/.claude/openswarm-*.json | 파이프라인 히스토리 및 태스크 상태 |
config.yaml | 메인 설정 (Main configuration) |
dist/ | 컴파일된 출력물 (Compiled output) |
| 카테고리 (Category) | 기술 (Technology) |
|---|---|
| 런타임 (Runtime) | Node.js 22+ (ESM) |
| ... |
코드 레지스트리 (Code Registry):
openswarm check --scan
— 리포지토리를 스캔하여 8개 언어(TS, Python, Go, Rust, Java, C, C++, C#)에 걸쳐 1,000개 이상의 엔티티를 테스트 매핑, 복잡도 점수 산정 및 리스크 평가와 함께 등록합니다.
BS 디텍터 (BS Detector):
openswarm check --bs
— 나쁜 코드 패턴을 위한 내장 정적 분석 및 파이프라인 가드 (Pipeline guard) 통합
로컬 모델 지원 (Local Model Support): 자동 감지 기능이 있는 단일 local 어댑터를 통해 Ollama, LMStudio, llama.cpp 지원
GPT 어댑터 (GPT Adapter): OAuth PKCE 흐름을 통한 OpenAI 모델 지원
로컬 이슈 트래커 (Local Issue Tracker): :3847/issues에서 사용 가능한 SQLite + GraphQL + 칸반 (Kanban) 웹 UI
CLI:
openswarm check, openswarm annotate 명령
인자 없이 openswarm을 실행하면 이제 TUI 채팅이 직접 실행됩니다.
-
보안: lodash, picomatch, rollup, undici, yaml 취약점 패치
-
npm에
@intrect/openswarm으로 게시됨 -@intrect/claude-driver를 독립형 제로 의존성 (Zero-dependency) 패키지로 추출 -
자율 실행기 (Autonomous runner) 강화 및 멀티 프로젝트 오케스트레이션 (Orchestration)
-
Linear 댓글로부터 태스크 상태 재수화 (Task-state rehydration)
-
상세 실행 로깅을 위한
--verbose플래그 -
Codex 어댑터: o-series 모델 오버라이드 제거
-
초기 출시 (Initial release)
-
워커/리뷰어 쌍 파이프라인 (Worker/Reviewer pair pipeline)
-
Claude Code CLI + Codex CLI 어댑터 (adapters)
-
Discord 봇 제어 (Discord bot control)
-
Linear 연동 (Linear integration)
-
LanceDB 인지 메모리 (LanceDB cognitive memory)
-
웹 대시보드 (Web dashboard, 포트 3847)
-
풍부한 TUI 채팅 인터페이스 (Rich TUI chat interface)
GPL-3.0
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기