Web UI for running multiple Claude Code sessions against GitHub issues and PRs.
Claude Code runs in a terminal. GitHub issues and PRs live in a browser. Working on GitHub repos with Claude Code means switching between the two and manually providing context.
Clump embeds Claude Code terminals in a web UI alongside GitHub data. It fetches issues and PRs via the GitHub API, spawns Claude Code processes, and saves transcripts to disk. Sessions are linked to the issues or PRs they analyze, so you can see what analyses have been run on a given issue. You can run multiple sessions in parallel across tabs, browse session history, and search past transcripts. A scheduler handles cron-based recurring runs.
- Browse GitHub issues and PRs with their comment threads
- Run Claude Code sessions in embedded terminals
- Keep multiple sessions open in tabs
- Save transcripts and search past sessions
- Schedule recurring analyses with cron expressions
- Track token usage and estimated costs
Get started by selecting a repository from the dropdown. The welcome screen shows available repos and quick actions.
Browse and analyze GitHub issues with full comment threads. Each issue shows related sessions and quick-action buttons.
Review PRs with diff stats, branch info, and comments. Start code review sessions directly from the UI.
Running sessions appear in the sidebar. Click to view the terminal output and interact with Claude Code.
Search and filter past Claude Code sessions. View transcripts with tool usage, costs, and linked issues/PRs.
Set up recurring analyses with cron expressions. Track last run status and next scheduled execution.
Configure Claude Code behavior: permission mode, allowed tools, model selection, and more.
Quick access to all actions with Ctrl+K. Jump to issues, PRs, sessions, or run commands.
- Python 3.11+
- Node.js 18+
- Claude Code CLI installed and authenticated
- GitHub personal access token
cd backend
python -m venv venv
source venv/bin/activate
pip install -e .
cp .env.example .env
# Edit .env with your GitHub token
uvicorn app.main:app --reloadcd frontend
npm install
npm run devOr use ./run.sh to start both.
- Add a repository (owner/name + local path)
- Browse issues or PRs
- Click "Analyze" to start a Claude Code session
- Type in the terminal
- Open more tabs for parallel sessions
- Search past sessions in the Analyses tab
Everything lives in ~/.clump/:
~/.clump/
├── repos.json # Repository list
└── projects/{hash}/
├── data.db # SQLite (sessions, tags, schedules)
└── sessions/{id}/transcript.jsonl
Each repo gets its own database.
backend/.env:
# GitHub token
GITHUB_TOKEN=ghp_...
# Claude Code settings
CLAUDE_PERMISSION_MODE=acceptEdits
CLAUDE_ALLOWED_TOOLS=Read,Glob,Grep,Bash(git:*)
CLAUDE_MAX_TURNS=10
CLAUDE_MODEL=sonnet
# Optional GitHub MCP server
CLAUDE_MCP_GITHUB=falseBrowser (React + xterm.js)
│
│ HTTP + WebSocket
▼
FastAPI backend
├── GitHub API proxy
├── PTY manager (spawns claude CLI)
├── Transcript parser (JSONL → structured data)
├── Scheduler (cron jobs)
└── SQLite per repo
GET/POST /api/repos- List/add reposGET /api/repos/:id/issues- List issuesGET /api/repos/:id/issues/:num- Issue with commentsGET /api/repos/:id/pulls- List PRs
POST /api/sessions- Start terminal sessionGET /api/sessions- List active sessionsDELETE /api/sessions/:id- Kill sessionWS /api/sessions/:id/ws- Terminal I/O
POST /api/headless/run- Run and wait for resultPOST /api/headless/run/stream- Stream NDJSON output
GET /api/analyses- Search past sessionsGET /api/analyses/:id- Get transcript and metadataPATCH /api/analyses/:id- Update summary/tags
GET/POST /api/schedules- Manage cron jobsPOST /api/schedules/:id/run- Trigger manually
GET /api/stats- Usage analyticsGET /api/tags- Tag managementGET /api/commands- Available slash commands
--allowedTools/--permission-mode- Permissions--session-id/--resume- Continue conversations-p- Headless mode with JSON output--max-turns- Limit execution depth--model- Model selection







