{"id":47613428,"url":"https://github.com/yoogie27/claudewrapper","last_synced_at":"2026-04-01T20:51:36.608Z","repository":{"id":343354061,"uuid":"1177338942","full_name":"yoogie27/claudewrapper","owner":"yoogie27","description":"Multi-project task management with Claude Code chat interface.  A self-hosted web app for managing coding tasks across multiple projects. Create tasks, chat with Claude, and get work done — from your phone or desktop.","archived":false,"fork":false,"pushed_at":"2026-03-28T12:50:40.000Z","size":336,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-28T14:44:51.389Z","etag":null,"topics":["claude-code","vibe-coding"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yoogie27.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-09T23:50:04.000Z","updated_at":"2026-03-28T12:50:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/yoogie27/claudewrapper","commit_stats":null,"previous_names":["yoogie27/claudewrapper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yoogie27/claudewrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoogie27%2Fclaudewrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoogie27%2Fclaudewrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoogie27%2Fclaudewrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoogie27%2Fclaudewrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yoogie27","download_url":"https://codeload.github.com/yoogie27/claudewrapper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoogie27%2Fclaudewrapper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","vibe-coding"],"created_at":"2026-04-01T20:51:36.069Z","updated_at":"2026-04-01T20:51:36.578Z","avatar_url":"https://github.com/yoogie27.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ClaudeWrapper\n\n**Multi-project task management with Claude Code chat interface.**\n\nA self-hosted web app for managing coding tasks across multiple projects. Create tasks, chat with Claude, and get work done — from your phone or desktop.\n\n## What it does\n\n- **Multi-project**: Add as many git repos as you want, each with its own task queue\n- **Task management**: Create tasks as Bug, Feature, or Redesign (auto-detected from title)\n- **Chat interface**: Send messages to Claude, see streaming responses with markdown + code highlighting\n- **Git isolation**: Each task gets its own git worktree branched from latest main — zero merge conflicts\n- **Session continuity**: Follow-up messages resume the same Claude session with full context\n- **Auto-PR**: Pushes branches and creates GitHub PRs automatically\n- **Token tracking**: See cost per run, per project, and over time\n- **GitHub Actions**: Live workflow status widget in the task panel\n- **Mobile-first**: Gorgeous chat UI optimized for phones, works great on desktop too\n\n## Quick start\n\n```bash\npip install -e .\npython -m app.main\n# Open http://localhost:8645\n```\n\n1. Click **+** to add a project (paste a GitHub URL or start blank)\n2. Create a task — type a title and the mode (Bug/Feature/Redesign) is auto-detected\n3. Send a message and Claude gets to work\n\n## Configuration\n\nAll settings via `.env` file:\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `WEB_HOST` | `0.0.0.0` | Listen address |\n| `WEB_PORT` | `8645` | Listen port |\n| `DATA_DIR` | `./data` | Data directory (DB, sessions, uploads) |\n| `WORKSPACE_ROOT` | `./data/workspace` | Where project repos live |\n| `TEST_MODE` | `false` | Skip Claude, capture prompts only |\n| `GITHUB_TOKEN` | | Token for auto-PR creation (see Settings page for setup guide) |\n| `SSH_KEY_DIR` | | Path to SSH keys for git operations |\n| `USE_GIT_WORKTREES` | `true` | Isolated branch per task |\n| `SESSION_TTL_DAYS` | `30` | Auto-cleanup old sessions |\n| `STALE_JOB_TIMEOUT_MINUTES` | `240` | Requeue crashed jobs after this |\n\n## Architecture\n\n```\nBrowser ──────▶ FastAPI (port 8645)\n                  │\n                  ├─ Project/Task/Message CRUD (SQLite)\n                  ├─ SSE streaming (live Claude output)\n                  └─ Per-project worker\n                       │\n                       ├─ git worktree setup (isolated branch)\n                       ├─ Claude Code CLI (subprocess)\n                       ├─ Parse stream-json output\n                       ├─ Store result as chat message\n                       └─ Push + create GitHub PR\n```\n\n**Key files:**\n\n| File | Purpose |\n|------|---------|\n| `app/main.py` | FastAPI routes, SSE streaming, HTML pages |\n| `app/orchestrator.py` | Workers, prompt building, Claude execution, PR creation |\n| `app/db.py` | SQLite schema + CRUD (projects, tasks, messages, runs) |\n| `app/claude_runner.py` | Subprocess management for Claude CLI |\n| `app/git_worktree.py` | Git worktree create/reset/push |\n| `app/task_modes.py` | Bug/Feature/Redesign detection + prompt templates |\n| `app/config.py` | Pydantic settings from .env |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoogie27%2Fclaudewrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoogie27%2Fclaudewrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoogie27%2Fclaudewrapper/lists"}