AI DevOps tool that haunts your GitHub repository
Haunted ๆฏไธๅใ้่บซใๅจ GitHub repo ็ AI DevOps ๅทฅๅ ท๏ผ้้ๅ ฉๅ agent ่ชๅๅ็ฎก็้็ผๆต็จใ
- House Master (HM) - AI Project Manager๏ผ่ฒ ่ฒฌๅๆ issueใๆๆดพไปปๅใCode Review
- Claude Code (CC) - AI Developer๏ผ่ฒ ่ฒฌๅฏฆ้้็ผใๅปบ็ซ PR
- ๐ ่ชๅๅๆๆฐ issue ไธฆๆฑบๅฎ่็ๆนๅผ
- ๐ค AI ่ชๅๅฏฆไฝไธฆๅปบ็ซ PR
- ๐ ่ชๅ Code Review
- ๐ GitHub Project ็ๆฟๆดๅ
- ๐ ๆฏๆด Webhook + Polling ๆททๅๆจกๅผ
- ๐ณ Docker ๅ้จ็ฝฒ
- ๐ณ Git worktree ๆฏๆดๅคไปปๅไธฆ่ก
- Bun 1.0+
- GitHub CLI (
gh) - Claude Code CLI (
claude)
# Clone ๅฐๆก
git clone https://github.com/your-org/haunted.git
cd haunted
# ๅฎ่ฃไพ่ณด
bun install
# ็ขบ่ช GitHub CLI ๅทฒ็ปๅ
ฅ
gh auth status
# ็ขบ่ช Claude Code ๅทฒ็ปๅ
ฅ
claude --version- ่ค่ฃฝ็ฏไพ้ ็ฝฎๆช๏ผ
cp haunted.yaml.example haunted.yaml- ็ทจ่ผฏ
haunted.yaml๏ผ
scope:
type: "repo"
target: "your-org/your-repo"
github:
webhook:
enabled: true
port: 3000
secret: "${WEBHOOK_SECRET}" # ๅฏ้ธ
polling:
enabled: true
interval: 60# ้็ผๆจกๅผ (hot reload)
bun run dev
# ็็ขๆจกๅผ
bun run start# ๅปบ็ฝฎ image
docker build -t haunted .
# ๅท่ก (้่ฆๆ่ผ่ช่ญ็ฎ้)
docker-compose up -d| ่ฎๆธ | ่ชชๆ | ้ ่จญๅผ |
|---|---|---|
REPO_PATH |
็ฎๆจ repo ่ทฏๅพ | . |
WEBHOOK_SECRET |
GitHub webhook ๅฏ้ฐ | - |
LOG_LEVEL |
ๆฅ่ช็ญ็ด | info |
็ถๆๆฐ issue ๅปบ็ซๆ๏ผHaunted ๆ่ชๅ๏ผ
- House Master ๅๆ - ๅคๆท issue ้กๅใ่ค้ๅบฆ
- ๆฑบๅฎๆๆดพ - AI ่็ๆ้่ฆไบบ้กไปๅ ฅ
- Claude Code ๅฏฆไฝ - ๅจ็จ็ซ worktree ไธญ้็ผ
- ๅปบ็ซ PR - ๆจ้่ฎๆดไธฆๅปบ็ซ Pull Request
- Code Review - House Master ่ชๅๅฏฉๆฅ
| Label | ่ชชๆ |
|---|---|
human-only |
ๅช่ฝ็ฑไบบ้ก่็๏ผAI ๆ่ทณ้ |
haunted-skip |
ๅฎๅ จ่ทณ้ AI ่็ |
auto-merge |
PR ้้ๅฏฉๆฅๅพ่ชๅๅไฝต |
needs-review |
้่ฆไบบ้กๅฏฉๆ ธ |
ๅจ issue ่ฉ่ซไธญไฝฟ็จ๏ผ
/retry- ้ๆฐ่็ๆญค issue/cancel- ๅๆถๆญฃๅจ้ฒ่ก็่็/status- ๆฅ็่็็ๆ
ๅจ่ฉ่ซไธญ @haunted ๅฏไปฅ่ House Master ไบๅใ
Haunted ๆไพ Manager ๆๅ๏ผๅฏไปฅๅๆ็ฎก็ๅคๅ haunted instanceใ
# ่ค่ฃฝ็ฏไพ้
็ฝฎ
cp manager.yaml.example manager.yaml็ทจ่ผฏ manager.yaml๏ผ
version: "1.0"
manager:
api:
port: 8080
host: "0.0.0.0"
supervisor:
auto_restart: true
max_restarts: 3
instances:
- id: "org-main"
name: "Main Organization"
enabled: true
config_file: "./instances/org.yaml"
working_dir: "/path/to/org/repo"
env:
GITHUB_TOKEN: "${ORG_GITHUB_TOKEN}"
- id: "my-repo"
name: "Personal Repo"
enabled: true
config:
scope:
type: "repo"
target: "username/repo"
github:
webhook:
port: 3001
working_dir: "/path/to/repo"# ้็ผๆจกๅผ
bun run manager:dev
# ็็ขๆจกๅผ
bun run managerManager ๆไพ HTTP API ไพ็ฎก็ instances๏ผ
| Method | Endpoint | ่ชชๆ |
|---|---|---|
| GET | /health |
ๅฅๅบทๆชขๆฅ |
| GET | /api/instances |
ๅๅบๆๆ instances |
| GET | /api/instances/:id |
ๅๅพ instance ็ๆ |
| POST | /api/instances/:id/start |
ๅๅ instance |
| POST | /api/instances/:id/stop |
ๅๆญข instance |
| POST | /api/instances/:id/restart |
้ๅ instance |
| GET | /api/instances/:id/logs |
ๅๅพๆฅ่ช |
| GET | /api/instances/:id/logs/stream |
SSE ๅณๆๆฅ่ช |
| GET | /api/metrics |
ๅ จๅฑ็ฃๆงๆๆจ |
็ฏไพ๏ผ
# ๆฅ็ๆๆ instances
curl http://localhost:8080/api/instances
# ้ๅ็นๅฎ instance
curl -X POST http://localhost:8080/api/instances/my-repo/restart
# ๅๅพๆๆฐ 50 ่กๆฅ่ช
curl "http://localhost:8080/api/instances/my-repo/logs?limit=50"โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ GitHub Repository โ
โ โโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโ โโโโโโโโโโโโ โ
โ โ Issues โ โ Projects โ โ PRs โ โ Webhooks โ โ
โ โโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโ โโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโผโโโโโโโโ
โ Haunted โ
โโโโโโโโโโโโโโโโโค
โ Event Handler โโโโ Webhook + Polling
โโโโโโโโโโโโโโโโโค
โ House Master โโโโ Claude Code CLI
โโโโโโโโโโโโโโโโโค
โ Claude Code โโโโ Claude Code CLI
โ Workers โ + Git Worktrees
โโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Haunted Manager โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ
โ โ HTTP API โ โ Supervisor โ โ MetricsCollectorโ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโ โ
โ โ Instance โ โ Instance โ โ Instance โ ... โ
โ โ (ๅญ้ฒ็จ) โ โ (ๅญ้ฒ็จ) โ โ (ๅญ้ฒ็จ) โ โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# ๅๅฅๆชขๆฅ
bun run typecheck
# Lint
bun run lintMIT