Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Worktreee 🌳 (μ—…λ¬΄λ‚˜λ¬΄μš°) - Claude Codeλ₯Ό νƒœμŠ€ν¬λ³„ μ „λ‹΄ 개발자둜 λ§Œλ“œλŠ” μ›Œν¬νŠΈλ¦¬ 기반 ν”„λ‘œμ νŠΈ 관리 μ—μ΄μ „νŠΈ

Notifications You must be signed in to change notification settings

letsur-dev/worktreee

Repository files navigation

Worktreee 🌳 (μ—…λ¬΄λ‚˜λ¬΄μš°)

Claude Codeλ₯Ό νƒœμŠ€ν¬λ³„ μ „λ‹΄ 개발자둜 λ§Œλ“œλŠ” μ›Œν¬νŠΈλ¦¬ 기반 ν”„λ‘œμ νŠΈ 관리 μ—μ΄μ „νŠΈ.

Why

μ—¬λŸ¬ 레포λ₯Ό μ˜€κ°€λ©° Claude Code둜 μž‘μ—…ν•˜λ©΄, νƒœμŠ€ν¬λ§ˆλ‹€ 같은 셋업을 λ°˜λ³΅ν•˜κ²Œ λ©λ‹ˆλ‹€:

Jira ν‹°μΌ“ 확인 β†’ 브랜치 생성 β†’ μ›Œν¬νŠΈλ¦¬ λ§Œλ“€κΈ° β†’ fetch β†’
Claude μ—΄κΈ° β†’ "이 λ ˆν¬λŠ”..." μ„€λͺ… β†’ "Jira λ‚΄μš©μ€..." λΆ™μ—¬λ„£κΈ° β†’ μž‘μ—… μ‹œμž‘

5λΆ„μ§œλ¦¬ μ…‹μ—… x ν•˜λ£¨ 10번 = 50λΆ„. PR 리뷰가 였면 또 κ·Έ ν™˜κ²½μœΌλ‘œ λŒμ•„κ°€μ•Ό ν•©λ‹ˆλ‹€.

WorktreeeλŠ” 이 전체λ₯Ό ν•œ λ§ˆλ””λ‘œ μ€„μž…λ‹ˆλ‹€:

"PROJ-107 μ΄ˆλŒ€ κΈ°λŠ₯ νƒœμŠ€ν¬ λ§Œλ“€μ–΄μ€˜"
 β†’ Git worktree μžλ™ 생성
 β†’ Jira ν‹°μΌ“ + Notion λ¬Έμ„œ μžλ™ 쑰회
 β†’ Claude μ„Έμ…˜ μ‹œμž‘ (μ»¨ν…μŠ€νŠΈ μ£Όμž… μ™„λ£Œ)
 β†’ `claude --continue`둜 λ°”λ‘œ μž‘μ—… μ‹œμž‘

Key Idea: μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­ λΉ„μš© β†’ 0

Worktreee의 핡심은 "λŒμ•„μ˜€κΈ°"κ°€ κ³΅μ§œλΌλŠ” μ μž…λ‹ˆλ‹€.

일반적인 방식 Worktreee
νƒœμŠ€ν¬ μ‹œμž‘ μˆ˜λ™ μ…‹μ—… 5λΆ„ ν•œ λ§ˆλ”” β†’ μ¦‰μ‹œ
νƒœμŠ€ν¬ μ „ν™˜ stash β†’ checkout β†’ μ»¨ν…μŠ€νŠΈ μž¬μ£Όμž… cd β†’ claude --continue
PR 리뷰 λŒ€μ‘ ν™˜κ²½ 볡원 β†’ Claude에 λ‹€μ‹œ μ„€λͺ… cd worktree/ && claude --continue
Claude ν™œμš© 맀번 μ²˜μŒλΆ€ν„° 레포 μ„€λͺ… Jira+Notion μžλ™ μ£Όμž…, μ„Έμ…˜ μœ μ§€
λ™μ‹œ μž‘μ—… 브랜치 좩돌, stash μ§€μ˜₯ μ›Œν¬νŠΈλ¦¬λ³„ μ™„μ „ 격리

Git worktree둜 각 νƒœμŠ€ν¬κ°€ λ…λ¦½λœ 디렉토리이기 λ•Œλ¬Έμ—, 브랜치 μ „ν™˜λ„, stash도, μ»¨ν…μŠ€νŠΈ μž¬μ£Όμž…λ„ ν•„μš” μ—†μŠ΅λ‹ˆλ‹€. κ·Έλƒ₯ cdν•˜κ³  claude --continue.

Workflow

1. Worktreeeμ—κ²Œ: "PROJ-107 μ΄ˆλŒ€ κΈ°λŠ₯ νƒœμŠ€ν¬ λ§Œλ“€μ–΄μ€˜"
 β†’ μ›Œν¬νŠΈλ¦¬ 생성, Claude μ„Έμ…˜ μ‹œμž‘ (Jira/Notion μ»¨ν…μŠ€νŠΈ μ£Όμž…)
2. 터미널: claude --continue
 β†’ λ°”λ‘œ μž‘μ—… μ‹œμž‘ β€” Claudeκ°€ 이미 ν‹°μΌ“ λ‚΄μš©μ„ μ•Œκ³  있음
3. PR 제좜 β†’ λ‹€λ₯Έ νƒœμŠ€ν¬ μž‘μ—… 쀑 β†’ 리뷰 도착
4. 터미널: cd my-project-worktrees/PROJ-107-xxx && claude --continue
 β†’ Claudeκ°€ 이전 μž‘μ—… λ§₯락을 κΈ°μ–΅ν•œ μƒνƒœλ‘œ 리뷰 λŒ€μ‘
 β†’ stash μ—†μŒ, 브랜치 μ „ν™˜ μ—†μŒ, μž¬μ„€λͺ… μ—†μŒ

Features

Git Worktree Automation

νƒœμŠ€ν¬λ§ˆλ‹€ λ…λ¦½λœ μ›Œν¬νŠΈλ¦¬λ₯Ό μžλ™ μƒμ„±ν•©λ‹ˆλ‹€. git fetch β†’ 브랜치 생성 β†’ μ›Œν¬νŠΈλ¦¬ 섀정을 ν•œ λ²ˆμ— μ²˜λ¦¬ν•˜κ³ , νƒœμŠ€ν¬ μ‚­μ œ μ‹œ μ›Œν¬νŠΈλ¦¬λ„ ν•¨κ»˜ μ •λ¦¬λ©λ‹ˆλ‹€.

Claude Code Session Management

μ›Œν¬νŠΈλ¦¬ 생성 ν›„ Claude CLI μ„Έμ…˜μ„ μžλ™ μ‹œμž‘ν•©λ‹ˆλ‹€. Jira ν‹°μΌ“ λ‚΄μš©κ³Ό Notion λ¬Έμ„œλ₯Ό μ»¨ν…μŠ€νŠΈλ‘œ μ£Όμž…ν•˜λ―€λ‘œ, Claudeκ°€ μ²˜μŒλΆ€ν„° "무엇을 ν•΄μ•Ό ν•˜λŠ”μ§€" μ•Œκ³  μžˆλŠ” μƒνƒœλ‘œ μ‹œμž‘ν•©λ‹ˆλ‹€. ~/.claude 마운트둜 ν˜ΈμŠ€νŠΈμ™€ μ„Έμ…˜μ„ κ³΅μœ ν•˜μ—¬ claude --continue둜 μ΄μ–΄μ„œ μž‘μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Web Dashboard

ν”„λ‘œμ νŠΈ/νƒœμŠ€ν¬ λͺ©λ‘, GitHub PR μƒνƒœ λ°°μ§€, νƒœμŠ€ν¬ 생성 λͺ¨λ‹¬ (AI 브랜치 이름 μΆ”μ²œ), λ“œλž˜κ·Έ μ•€ λ“œλ‘­ μˆœμ„œ λ³€κ²½, Jira 이슈 κ·Έλž˜ν”„ μ‹œκ°ν™” (D3.js) 등을 μ œκ³΅ν•©λ‹ˆλ‹€.

Jira & Notion Integration

νƒœμŠ€ν¬ 생성 μ‹œ Jira ν‚€λ₯Ό μžλ™ κ°μ§€ν•˜μ—¬ ν‹°μΌ“ λ‚΄μš©μ„ Claude μ„Έμ…˜μ— μ£Όμž…ν•©λ‹ˆλ‹€. Notion 링크도 μžλ™ 쑰회. 이슈 트리λ₯Ό μΈν„°λž™ν‹°λΈŒ κ·Έλž˜ν”„λ‘œ μ‹œκ°ν™”ν•˜κ³ , 첨뢀 이미지λ₯Ό Vision API둜 뢄석할 수 μžˆμŠ΅λ‹ˆλ‹€.

Multi-machine Support

SSHλ₯Ό 톡해 μ—¬λŸ¬ λ¨Έμ‹ μ˜ ν”„λ‘œμ νŠΈλ₯Ό 톡합 κ΄€λ¦¬ν•©λ‹ˆλ‹€. μ„œλ²„μ—μ„œ Docker둜 μ‹€ν–‰ν•˜λ©΄μ„œ, 원격 λ¨Έμ‹ μ˜ ν”„λ‘œμ νŠΈλ„ μ›Œν¬νŠΈλ¦¬ 생성과 git 동기화가 κ°€λŠ₯ν•©λ‹ˆλ‹€.

OpenAI-compatible API (OpenWebUI 연동)

/v1/chat/completions μ—”λ“œν¬μΈνŠΈλ₯Ό μ œκ³΅ν•˜μ—¬ OpenWebUI λ“±μ—μ„œ λͺ¨λΈμ²˜λŸΌ μ—°κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μžμ—°μ–΄λ‘œ λŒ€ν™”ν•˜λ©΄ Agentκ°€ 20+ tool calling으둜 ν”„λ‘œμ νŠΈ/νƒœμŠ€ν¬λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.

OpenWebUI μ—°κ²° 방법:

  1. OpenWebUI κ΄€λ¦¬μž β†’ Connections β†’ OpenAI API μΆ”κ°€
  2. URL: http://<worktreee-host>:4000/v1
  3. λͺ¨λΈ λͺ©λ‘μ—μ„œ worktreee 선택 ν›„ λŒ€ν™” μ‹œμž‘

Prerequisites

WorktreeeλŠ” Docker μ»¨ν…Œμ΄λ„ˆ μ•ˆμ—μ„œ 호슀트의 Git, SSH, Claude CLIλ₯Ό ν™œμš©ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. λ”°λΌμ„œ ν˜ΈμŠ€νŠΈμ— λ‹€μŒμ΄ ν•„μš”ν•©λ‹ˆλ‹€:

μš”κ΅¬μ‚¬ν•­ μ„€λͺ… 확인 방법
Docker & Docker Compose μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ docker compose version
Git μ›Œν¬νŠΈλ¦¬ 생성 git --version
GitHub CLI (gh) PR 쑰회, repo 인증 gh auth status
Claude Code CLI Claude μ„Έμ…˜ μ‹œμž‘ claude --version
SSH ν‚€ (선택) 원격 λ¨Έμ‹  μ ‘κ·Ό ssh -T your-remote
Jira API 토큰 (선택) Jira 연동 Atlassian μ„€μ •μ—μ„œ λ°œκΈ‰

Docker μ»¨ν…Œμ΄λ„ˆκ°€ ~/.claude, ~/.config/gh, ~/.ssh 등을 λ§ˆμš΄νŠΈν•˜μ—¬ 호슀트의 인증 정보λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.

Quick Start

# Clone
git clone https://github.com/your-org/worktreee.git
cd worktreee
# Configure
cp .env.example .env
# Edit .env β€” OPENAI_API_KEYλŠ” ν•„μˆ˜, λ‚˜λ¨Έμ§€λŠ” 선택
# Run
docker compose up -d

Open http://localhost:4000

Environment Variables

Variable Description Default
OPENAI_BASE_URL LLM API endpoint (OpenAI-compatible) https://gateway.letsur.ai/v1
OPENAI_API_KEY API key (required)
OPENAI_MODEL Model to use claude-sonnet-4-20250514
LOCAL_MACHINE Alias for the machine running the server local
REMOTE_HOSTS Remote SSH hosts (alias:user@host, comma-separated) (optional)
JIRA_URL Jira instance URL (optional)
JIRA_EMAIL Jira account email (optional)
JIRA_API_TOKEN Jira API token (optional)

Architecture

Browser / OpenWebUI
 β”‚
 β–Ό http://localhost:4000
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Docker Compose β”‚
β”‚ β”‚
β”‚ web (Next.js) ──► api (FastAPI) β”‚
β”‚ :4000 :8000 β”‚
β”‚ β”‚
β”‚ api μ£Όμš” κΈ°λŠ₯: β”‚
β”‚ - /v1/chat/completions (Agent API) β”‚
β”‚ - Tool Calling (20+ PM tools) β”‚
β”‚ - Git worktree 생성/μ‚­μ œ β”‚
β”‚ - Claude CLI μ„Έμ…˜ 관리 β”‚
β”‚ - Jira/Notion API 연동 β”‚
β”‚ - State μ €μž₯ (YAML) β”‚
β”‚ β”‚
β”‚ Volume Mounts: β”‚
β”‚ ~/Documents ← ν”„λ‘œμ νŠΈ 파일 μ ‘κ·Ό β”‚
β”‚ ~/.ssh ← SSH ν‚€ (원격 λ¨Έμ‹ ) β”‚
β”‚ ~/.claude ← Claude μ„Έμ…˜ 곡유 β”‚
β”‚ ~/.config/gh ← GitHub CLI 인증 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Multi-machine Setup

WorktreeeλŠ” SSH둜 원격 λ¨Έμ‹ μ˜ ν”„λ‘œμ νŠΈλ„ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€:

# .env
REMOTE_HOSTS=mac:user@192.168.1.10,server2:user@192.168.1.50

ν”„λ‘œμ νŠΈ μΆ”κ°€ μ‹œ λ¨Έμ‹  별칭을 μ§€μ •ν•˜λ©΄, ν•΄λ‹Ή λ¨Έμ‹ μ—μ„œ μ›Œν¬νŠΈλ¦¬ 생성/git 동기화가 μ‹€ν–‰λ©λ‹ˆλ‹€.

Tech Stack

Component Technology
Monorepo Turborepo + pnpm
Backend Python 3.11+, FastAPI, uv
Frontend Next.js 15, React 19, Tailwind CSS 4
LLM OpenAI-compatible API
State YAML file
Container Docker
GitHub GitHub CLI (gh)

Development

# Install dependencies
pnpm install
# Run all (Turborepo)
pnpm dev
# Web only
pnpm dev:web
# API only
cd apps/api && uv run uvicorn main:app --reload --port 8000

License

MIT

About

Worktreee 🌳 (μ—…λ¬΄λ‚˜λ¬΄μš°) - Claude Codeλ₯Ό νƒœμŠ€ν¬λ³„ μ „λ‹΄ 개발자둜 λ§Œλ“œλŠ” μ›Œν¬νŠΈλ¦¬ 기반 ν”„λ‘œμ νŠΈ 관리 μ—μ΄μ „νŠΈ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /