Running agents side by side is the horizontal axis. Wooi adds the vertical one: dependent work branches off the work it depends on, and the whole chain stays valid as parents merge. Agents build those chains themselves through Wooi's built-in tools, and every review lands on the diff instead of in a transcript. 에이전트를 나란히 돌리는 건 가로축입니다. Wooi 는 세로축을 더합니다. 이어지는 작업은 자기가 딛고 선 작업에서 분기하고, 부모가 병합돼도 체인 전체가 유효하게 남습니다. 그 체인은 에이전트가 내장 도구로 직접 쌓고, 리뷰는 채팅 로그가 아니라 diff 위에 붙습니다.
Free & open source (Apache 2.0) · Apple Silicon · No API key required 무료 & 오픈소스 (Apache 2.0) · Apple Silicon · 별도 API 키 불필요
Running agents in isolated worktrees is table stakes now — plenty of orchestrators already do it. But worktrees solve file collisions; they don't solve dependencies. The unsolved half is downstream: branches that were written in parallel and have to land in sequence, and a review queue that grows as fast as the agents write. Here's where Wooi puts its weight. 격리된 worktree 에서 에이전트를 돌리는 건 여러 오케스트레이터가 이미 지원합니다. 하지만 worktree 는 파일 충돌은 막아도 의존성은 못 풉니다. 안 풀린 쪽은 그 다음입니다. 병렬로 쓰였지만 순서대로 병합돼야 하는 브랜치들, 그리고 에이전트가 코드를 쓰는 속도만큼 쌓이는 리뷰 대기열. Wooi 가 힘을 싣는 자리가 여기입니다.
Build dependent work as a PR stack. Wooi imports stacks from GitHub, reviews every layer together, and keeps the chain valid through restacks and merges. 의존 작업을 PR 스택으로 쌓습니다. GitHub 스택을 가져와 모든 레이어를 함께 리뷰하고, restack과 병합 뒤에도 체인을 유효하게 유지합니다.
Built-in tools let agents split work, build stacks, form teams, and message other workspaces. Permission and receive policies keep files, diffs, and transcripts inside their workspace. 내장 도구로 작업을 나누고 스택을 쌓으며, 팀을 꾸리거나 다른 워크스페이스에 메시지를 보냅니다. 파일과 diff, 대화 기록은 권한·수신 정책이 허용한 범위를 벗어나지 않습니다.
Each review has its own worktree, with findings anchored to diff lines. Stack reviews read every layer together, while workspace comments send the exact code location back to the agent. 리뷰마다 전용 worktree가 있고 지적은 diff 줄에 붙습니다. 스택 리뷰는 모든 레이어를 함께 읽으며, 워크스페이스 코멘트는 정확한 코드 위치를 에이전트에게 돌려보냅니다.
Wooi exposes each backend's own models, permissions, effort, fast mode, rate limits, and MCP servers. Switch between Claude Code and Codex mid-conversation with the existing context carried over. 각 백엔드의 모델·권한·effort·fast mode·레이트리밋·MCP 서버를 그대로 살립니다. 대화 도중 Claude Code와 Codex를 바꿔도 기존 맥락이 이어집니다.
No telemetry or servers of its own: settings and transcripts stay local. Updates wait for active work, ignored files carry into new worktrees, and sessions survive restarts. 텔레메트리와 자체 서버가 없어 설정·대화 기록은 로컬에 남습니다. 업데이트는 작업이 끝날 때까지 기다립니다. 필요한 ignore 파일은 새 worktree로 전달되고, 세션은 재시작 뒤에도 이어집니다.
One task = one dedicated git worktree + branch + agent session. Nothing runs until you send your first message. 작업 1개 = 전용 git worktree + 브랜치 + 에이전트 세션 1개. 첫 메시지를 보내기 전까지 아무것도 실행되지 않습니다.
Point Wooi at a git repository (its main checkout). Configure per-repo
Setup / Dev / Archive scripts like npm install.
git 리포(메인 체크아웃)를 연결합니다. 리포 단위로
Setup / Dev / Archive 스크립트(npm install 등)를
지정합니다.
Each task gets its own worktree + branch + agent session under
~/wooi/workspaces/<repo>/<branch>, running independently
and in parallel.
작업마다 전용 worktree + 브랜치 + 세션이
~/wooi/workspaces/<repo>/<branch> 에 생성되어 독립적·병렬로
실행됩니다.
Open a GitHub PR in one click. If the task builds on another, stack it and Wooi keeps the chain rebased and retargeted as parents merge — and review lands on the diff, not in a chat log. 클릭 한 번으로 GitHub PR 을 엽니다. 앞선 작업 위에 얹히는 작업이면 스택으로 쌓아 두면, 부모가 병합될 때마다 Wooi 가 체인을 rebase 하고 base 를 옮깁니다. 리뷰는 채팅 로그가 아니라 diff 위에 붙습니다.
git and gh — no extra
stacking CLI needed.
모든 작업이 독립적이지는 않습니다 — 2번 작업이 1번 위에서 이어져야 할 때가 있죠.
Wooi 는 그 체인을 git 과 gh 만으로 직접 관리합니다. 별도
스택 도구가 필요 없습니다.
create_stacked_workspace opens the next workspace on top of the
current branch when the work just finished is a complete, reviewable unit. See
Agent orchestration below.
create_stacked_workspace 는 방금 끝낸 작업이 리뷰 가능한 한 덩어리일
때 현재 브랜치 위에 다음 워크스페이스를 엽니다. 아래
에이전트 오케스트레이션을 참고하세요.
--force-with-lease. Conflicts stop in the worktree so you can resolve
them there.
최신 부모 브랜치 위로 rebase 하고 --force-with-lease 로 push 합니다.
충돌이 나면 worktree 에 멈춰 있어 거기서 해결하면 됩니다.
git checkout -b and
gh pr create, Wooi reconstructs the stack from the PRs' base links
and shows it the same way.
에이전트가 git checkout -b 와 gh pr create 로 직접
체인을 만들어도, PR 의 base 링크에서 스택을 복원해 똑같이 보여 줍니다.
gh pr create — yours or an agent's — targets the parent. If a PR
still lands on the wrong base, Wooi says so and offers to retarget it instead of
quietly dropping the stack.
워크스페이스를 스택으로 만들면 그 브랜치의 merge base 에 부모를 기록합니다.
그래서 그냥 실행한 gh pr create 도 — 사용자가 치든 에이전트가 치든 —
부모 브랜치를 향합니다. 그래도 엉뚱한 base 로 열렸다면, 조용히 스택을 잃는 대신
알려 주고 리타겟할지 물어봅니다.
wooi to every Claude Code and Codex
session it starts. The agent doesn't just edit files in its worktree; it can drive
Wooi itself — split a task, open the workspaces for the pieces, stack them in
dependency order, and pass results along the chain.
Wooi 가 띄우는 모든 Claude Code·Codex 세션에 wooi 서버가 붙습니다.
에이전트는 자기 worktree 의 파일만 고치지 않습니다. Wooi 자체를 조종합니다. 작업을
쪼개고, 조각마다 워크스페이스를 열고, 의존 순서대로 쌓고, 결과를 체인을 따라
넘깁니다.
check_related_work lists the other workspaces open on this repo and
the paths each is changing, flags overlaps with what this agent plans to touch,
and tells it to check with you first. Paths only — diffs are never shared between
workspaces.
check_related_work 는 이 리포에 열려 있는 다른 워크스페이스가 각각
어떤 경로를 바꾸는지 알려 줍니다. 이 에이전트가 건드리려는 경로와 겹치면
사용자에게 먼저 물어보라고 안내합니다. 넘어가는 건 경로뿐입니다. diff 는
워크스페이스 사이를 넘지 않습니다.
create_workspace starts an independent workspace off the default
branch; create_stacked_workspace starts a child off the committed tip
of the current branch. Either can be handed a first message that starts the new
agent's turn immediately.
create_workspace 는 기본 브랜치에서 독립 워크스페이스를 만듭니다.
create_stacked_workspace 는 현재 브랜치의 커밋된 끝에서 자식
워크스페이스를 만듭니다. 둘 다 첫 메시지를 함께 넘겨 새 에이전트의 턴을 바로
시작할 수 있습니다.
report_to_parent records a result for the parent without
interrupting it, check_stacked_work lists the children with their
branch, PR state, and latest report, and notify_child sends an update
that starts a turn in a child.
report_to_parent 은 부모의 턴을 끊지 않고 결과를 기록합니다.
check_stacked_work 는 자식들의 브랜치·PR 상태·최신 보고를 나열합니다.
notify_child 는 자식에게 소식을 보내 턴을 시작합니다.
list_workspace_peers and send_to_workspace carry a
short text message to another open workspace. The receiver can accept, hold for
approval, or refuse it; files, diffs, and transcripts do not travel with it.
list_workspace_peers·send_to_workspace로 다른 열린
워크스페이스에 짧은 평문 메시지를 보냅니다. 받는 쪽이 즉시 수신·승인 대기·거절을
정하며 파일·diff·대화 기록은 함께 가지 않습니다.
/agent after work has started. Because Claude and Codex cannot
resume each other's native session IDs, Wooi sends a bounded handoff with your
next message and shows its estimated cost first.
작업이 시작된 뒤에도 /agent를 쓸 수 있습니다. Claude와 Codex는
서로의 세션 ID를 이어받을 수 없으므로 Wooi가 제한된 크기의 인수인계를 다음
메시지와 함께 보내고 예상 비용을 미리 보여 줍니다.
/rewind (roll code back to a file checkpoint) and
/btw (a side question that doesn't derail the turn) appear where the
backend supports them, and mid-turn steering is used where it exists instead of
being queued.
/rewind(파일 체크포인트로 되돌리기)와 /btw(턴을
흐트러뜨리지 않는 곁가지 질문)는 백엔드가 지원할 때 나타납니다. 턴 중간 steering
도 되는 쪽에서는 큐잉 없이 그대로 씁니다.
wooi server.
Claude·Codex CLI 에 설정해 둔 MCP 서버를 읽어 Wooi 자체 wooi 서버와
함께 세션에 붙입니다.
/agent. If work has started, the new agent receives a bounded
conversation handoff; stacked workspaces initially inherit their parent's.
워크스페이스를 만들 때 코딩 에이전트를 고르고 나중에도 /agent로 바꿀
수 있습니다. 이미 작업을 시작했다면 새 에이전트가 제한된 크기의 대화 인수인계를
받습니다. 스택 워크스페이스는 처음에 부모의 에이전트를 물려받습니다.
/model, /effort,
and /fast. Options depend on the selected agent and model.
상태줄에서 고르거나 /model·/effort·/fast
로 바꿉니다. 선택지는 에이전트와 모델에 따라 달라집니다.
.env, CLAUDE.local.md, …) per repo.
Copy gives each workspace its own version,
Link shares one original.
새 worktree 에는 git 이 추적하는 파일만 들어오므로, 필요한 ignore 파일
(.env, CLAUDE.local.md 등)을 리포마다 적어 둡니다.
Copy 는 워크스페이스마다 자기 사본을, Link 는
원본 하나를 공유합니다.
/compact manually.
브랜치 · 디렉토리 · 모델 · effort · 컨텍스트 사용량이 항상 표시되고, 길어지면
자동 압축되거나 /compact 로 수동 압축합니다.
One brew command, then a quick onboarding. brew 명령 한 줄, 그리고 간단한 온보딩이면 됩니다.
Homebrew puts Wooi.app straight into Applications. Homebrew 가 Wooi.app 을 Applications 에 바로 설치합니다.
brew install --cask youngminnnn/tap/wooi
Rather do it by hand? Download the
latest .dmg
and drag Wooi into Applications. Older builds
live on the
Releases page.
직접 설치하시겠어요?
최신 .dmg
를 받아 Wooi 를 Applications 로 드래그합니다.
이전 빌드는
Releases 페이지에 있습니다.
Consent to the Terms/Privacy, then connect Claude Code or Codex — you only need one. Sign-in finishes in-app; Codex accepts ChatGPT or an OpenAI API key. GitHub is optional at this point: skip it and start working, and Wooi will ask the first time you open a PR, merge, stack a branch or check CI, then resume what you were doing. 약관·개인정보처리방침에 동의한 뒤 Claude Code 또는 Codex를 연결합니다. 둘 중 하나만 있으면 되며, Codex는 ChatGPT 또는 OpenAI API 키로 연결할 수 있습니다. GitHub 은 이 단계에서 건너뛸 수 있습니다 — 바로 작업을 시작하면, PR 생성·병합·스택·Check 를 처음 쓰는 순간 Wooi 가 연결을 요청하고 연결 후 원래 하려던 동작을 이어서 실행합니다.
Apple Silicon.Apple Silicon.
Claude Code, or Codex CLI v0.128.0+.Claude Code 또는 Codex CLI v0.128.0 이상.
gh CLI optNeeded for the PR & stacking features. Everything that's pure git works without it.PR·스택 기능에 필요합니다. git 만으로 되는 기능은 없어도 모두 동작합니다.
git reqStandard git install.기본 git 설치.
git clone https://github.com/youngminnnn/wooi.git cd wooi nvm use # optional — Node 24 npm install # deps + Electron binary npm run dev # launch in dev mode
Wooi has no servers of its own and collects no analytics or telemetry. Wooi 는 자체 서버가 없고 분석·텔레메트리를 수집하지 않습니다.
Prompts & code go to the selected agent's provider — Anthropic for Claude Code or
OpenAI for Codex. PR metadata goes to GitHub via the gh CLI.
프롬프트·코드는 선택한 에이전트의 제공자(Claude Code는 Anthropic, Codex는
OpenAI)에게 전송됩니다. PR 메타데이터는 gh CLI로 GitHub에
전송됩니다.
Settings & transcripts are stored locally in
~/Library/Application Support/Wooi/.
설정·대화 기록은 ~/Library/Application Support/Wooi/ 에만
저장됩니다.
Free and open source under the Apache License 2.0. Download the latest build and ship from three branches at once. Apache License 2.0 의 무료 오픈소스입니다. 최신 빌드를 받아 세 브랜치에서 동시에 배포해 보세요.