A watcher for the work you ship with AI. Lives in the background. Knocks on your door only when your repo is drifting from what you said you'd build.
Cursor agrees with everything. Claude Code says yes to features you don't need. Two hours in, you've half-built three things you'll abandon next week. Scope Creeper is the second pair of eyes your AI doesn't have.
$npm install -g @scopecreeper/tui
then run creeper init <your-repo> and you're live.
Paste a chatlog or a repo URL. Scope Creeper reads what you built vs what you said you'd build, scores it 0–100, and hands you the exit routes ranked by how much each creeps your scope.
creeper · arcade · input
paste a chatlog, repo URL, or single idea →
> I asked Claude to add a forgot-password flow to the login page.
Two hours later: admin dashboard, role tables, audit logs.
The original login page is still broken.
creeper · scan result
scanning chatlog · 847 tokens · done in 1.4s
DELUSION SCORE 071 / 100 · ABYSS
─────────────────────────────────────────────────
Asked for: "add forgot-password to the login page"
Drifted to: admin dashboard · role tables · audit log
You asked for one thing. You're building a platform.
PATHS FROM HERE
▸ KILL IT ▓░░░░░░░░░ creep 12/100★ fastest exit
delete admin + roles, ship just forgot-password today
REDIRECT ▓▓▓░░░░░░░ creep 28/100
paste the STOP DRIFTING prompt into Claude, reset context
LEGITIMIZE▓▓▓▓▓▓▓░░░ creep 71/100
add admin to .scopecreeper.md · keeps the work, sets new scope
You don't have a capability problem anymore. You have a judgment problem. The AI ships anything you ask. It never says "this is dumb" or "you're avoiding the real work." It just builds.
your week with cursor · last monday
Mon 10:14 commitadd post-call CRM auto-write loop✓ in scope
Mon 11:48 commitscaffold billing dashboard✗ drift
Mon 14:02 commitadd referral system✗ drift
Mon 15:30 commitadd team-management role table✗ drift
Mon 17:14 commitrefactor auth (rebuild)✗ drift
→ 5 commits, 4 in feature graveyard by Friday
▸ The loop, in five moves
the system
1. daemonrust binary, 10 MB ram, watches every repo
2. every commitscored against your .scopecreeper.md
3. drift detectedfires a macOS notification
4. action pickeryou pick a route, each ranked by creep score
5. diaryper-repo .scopecreeper-diary.md, claude reads it
▸ What the action picker looks like
creeper · ? drain pending
▸ DRIFT · pick a routedittomethis #a3f7c2
adds apps/web/billing/page.tsx
73/100ABYSS · SCOPE EXPANDS UNCONTROLLABLY
▸ REDIRECT ▓░░░░░░░░░15/100★ recommended
copy a 'stop drifting' prompt to clipboard → paste into AI
EXPAND ▓▓▓▓▓▓▓▓▓░88/100
add this feature to .scopecreeper.md (legitimize)
KILL ░░░░░░░░░░0/100
generate the autopsy artifact for the drifty branch
ACCEPT ▓▓▓▓▓▓▓░░░73/100
keep it, log a justification, scope unchanged
↑↓ select · enter confirm · esc dismiss
Every route is scored so you can rank them. The recommended option is whichever creeps your project the least. Pick. Tool acts. Decision is appended to .scopecreeper-diary.md.
▸ The diary is your committed past
Each decision lands in a markdown file at the repo root. This file becomes the source of truth Claude reads next session, so it stops re-suggesting things you already rejected.
.scopecreeper-diary.md
# Scope Creeper Diary · dittomethis
## 2026-05-24 16:32 · REDIRECT · drift 73 → 15
**Commit:** `a3f7c2` — adds billing dashboard
**Verdict:** SCOPE EXPANDS UNCONTROLLABLY
**Why drift:** apps/web/billing/* not in .scopecreeper.md
✎Auto-maintained diary Claude / Cursor can read on next session
⚙Live tail of any active Claude Code session (press w)
✗KILL artifact: one-page brutal autopsy of any branch (press k)
$8.6 MB RAM total, scales to dozens of repos
▸ Stop watching the AI build for you.
Start watching what you both shipped. Become the scope creeper of your own work. It's the first useful thing AI tools can do for you: warn you when they've made you drift.
$npm install -g @scopecreeper/tui
then run creeper init <your-repo> and you're live.