A Mac desktop app for agentic coding with Claude Code integration. Manage coding tasks with a Kanban board, execute Claude Code in isolated git worktrees, and handle multiple Claude accounts.
- Kanban Board — Organize tasks with drag-and-drop, group into Epics/Rocks
- Claude Code Execution — Run Claude in isolated git worktrees per task
- Git Worktree Isolation — Each task gets its own branch and worktree
- Real-time Streaming — Watch Claude's output live via SSE
- Multiple Claude Accounts — Switch between accounts to avoid rate limits
- Context Management — Edit CLAUDE.md and project context files
- Built-in Terminals — xterm.js terminals for manual commands
- Workflow Actions — AI-assisted commits, test, merge workflow
Coming soon
- macOS (PyWebView desktop app)
- Python 3.11+
- Node.js 18+
- Claude Code CLI — Install from claude.ai/code
git clone https://github.com/bvdr/yocoder.git
cd yocoder# Create and activate virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate
# Install Python dependencies
pip install -e ".[dev]"
# Install frontend dependencies
cd frontend && npm install && cd .../scripts/run_dev.shThis starts:
- Backend API: http://127.0.0.1:8765
- Frontend: http://127.0.0.1:5173
./scripts/build_mac.shThe app bundle will be created in dist/Yocoder.app.
yocoder/
├── backend/ # Python FastAPI backend
│ ├── api/ # REST API endpoints
│ ├── claude/ # Claude profile management
│ ├── database/ # SQLite models and connection
│ ├── services/ # Business logic (execution, worktrees)
│ ├── terminal/ # PTY and WebSocket handling
│ └── main.py # FastAPI app entry point
├── frontend/ # React + TypeScript frontend
│ ├── src/
│ │ ├── components/ # UI components (kanban, layout, settings)
│ │ ├── stores/ # Zustand state management
│ │ └── lib/ # Utilities
│ └── components.json # shadcn/ui config
├── scripts/ # Build and dev scripts
├── build/ # PyInstaller config and icons
└── documentation/ # Additional docs
| Layer | Technology |
|---|---|
| Desktop | PyWebView + PyInstaller |
| Backend | FastAPI, aiosqlite, SQLite |
| Frontend | React 18, TypeScript, Vite |
| UI Components | shadcn/ui, Tailwind CSS |
| State | Zustand |
| Terminals | xterm.js, node-pty |
Yocoder stores data in:
- Database:
~/Library/Application Support/Yocoder/yocoder.db - Task Worktrees:
.yocoder/worktrees/task-{id}/ - Execution Logs:
.yocoder/execution_logs/task-{id}.log - Task Specs:
.yocoder/specs/task-{id}/
| Variable | Description | Default |
|---|---|---|
YOCODER_HOST |
Backend host | 127.0.0.1 |
YOCODER_PORT |
Backend port | 8765 |
Yocoder requires the Claude Code CLI to execute tasks.
- Install Claude Code from claude.ai/code
- Run
claude loginto authenticate - Add projects in Yocoder and start creating tasks
Yocoder supports multiple Claude accounts to work around rate limits:
- CLI Auth — Uses default
~/.claudedirectory - Custom Profile — Uses
CLAUDE_CONFIG_DIRfor separate profiles - API Key — Direct Anthropic API key (for API access)
# Start dev server (backend + frontend)
./scripts/run_dev.sh
# Build frontend only
cd frontend && npm run build
# Build Mac app
./scripts/build_mac.sh
# Build DMG installer
./scripts/build_dmg.sh
# Clean build (removes artifacts first)
./scripts/clean_build.shSee .claude/api.md for the complete REST API reference.
See .claude/architecture.md for data flow diagrams and design decisions.
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests and linting
- Submit a pull request
MIT License — see LICENSE for details.
- Claude Code by Anthropic
- shadcn/ui for UI components
- FastAPI for the backend framework