prompt-watch
Live archive & diff tracker for production AI system prompts — a Wayback Machine for the leaked instructions that ship inside Claude Code, Cursor, Devin, ChatGPT, Gemini, Grok and 30+ other tools.
What & Why
Production AI system prompts change silently. The April 2026 Anthropic
postmortem revealed that three prompt/harness changes had degraded Claude
Code for six weeks before users could prove anything had shifted. Today
there is no public source of truth for "what did the system prompt look
like last Wednesday vs today" — only raw .txt dumps in leak repos with
no diff UI, no timeline, and no alerting.
prompt-watch turns those leak repos into a queryable archive:
- Catalog of every tracked tool with last-changed date and size
- Version timeline per tool — every upstream commit is a snapshot
- Diff viewer — unified diff between any two versions of the same tool
- Side-by-side compare — pick two different tools, see their prompts
- next to each other (Cursor vs Windsurf, Claude Code vs Codex, …)
- Rule extractor — counts/lists every
NEVER,ALWAYS,MUST, -
DO NOT,IMPORTANTline per snapshot - Full-text search across every snapshot (SQLite FTS5)
- Atom & JSONFeed — subscribe to "Cursor prompt changed" alerts
Data sources (real, public)
Every byte is mirrored from two public GitHub repos:
| Repo | Tools covered |
|------|---------------|
| x1xhlol/system-prompts-and-models-of-ai-tools | Augment, Claude Code, Cluely, CodeBuddy, Comet, Cursor, Devin, Junie, Kiro, Leap.new, Lovable, Manus, Notion AI, Orchids, Perplexity, Poke, Qoder, Replit, Same.dev, Trae, Traycer, VSCode Agent, Warp, Windsurf, Xcode, Z.ai, dia, v0, Amp, Emergent |
| asgeirtj/system_prompts_leaks | ChatGPT (GPT-5.5 Thinking), Claude Opus 4.7 / 4.6 / Sonnet 4.6 / Claude Code, Gemini 3.1 Pro / 3 Flash / Gemini CLI, Grok 4.3, Perplexity, … |
The ingestion loop polls every hour:
GET /repos/{owner}/{repo}/git/trees/{branch}?recursive=1— file listGET /repos/{owner}/{repo}/commits?path={file}&per_page=20— historyGET https://raw.githubusercontent.com/{owner}/{repo}/{sha}/{path}— body
Without a token, GitHub allows 60 requests/hour/IP. SettingGITHUB_TOKEN (any read-only PAT) raises this to 5 000 requests/hour.
Stack
- Node.js ≥ 20, Express 4
better-sqlite3(WAL mode)node-cronhelmet,compression,morgan- Vanilla-JS SPA, dark theme, no build step
- No auth — every endpoint is public
Quick start
git clone <repo> prompt-watch && cd prompt-watch
cp .env.example .env # optional — sane defaults work
npm install
npm start # → http://127.0.0.1:4764/prompt-watch/
The first ingest kicks off 10 s after boot and back-fills the most recent
20 commits per prompt file. Subsequent hourly runs only fetch new commits.
Endpoints
UI
GET /prompt-watch/— catalogGET /prompt-watch/tool/:slug— version timeline + latest promptGET /prompt-watch/tool/:slug/v/:sha— single snapshotGET /prompt-watch/diff/:slug/:shaA/:shaB— unified diffGET /prompt-watch/compare?a=:slug&b=:slug— side-by-side compareGET /prompt-watch/search?q=…GET /prompt-watch/changes— last 7 days
JSON API
GET /prompt-watch/api/toolsGET /prompt-watch/api/tools/:slugGET /prompt-watch/api/tools/:slug/versions/:shaGET /prompt-watch/api/diff/:slug/:shaA/:shaBGET /prompt-watch/api/compare?a=:slug&b=:slugGET /prompt-watch/api/search?q=…GET /prompt-watch/api/changes?since=ISOGET /prompt-watch/api/statsGET /prompt-watch/healthPOST /prompt-watch/api/refresh(rate-limited, 1 trigger / 10 min)
Feeds
GET /prompt-watch/feed.atomGET /prompt-watch/feed.json(JSONFeed 1.1)
Environment
| Var | Default | Notes |
|-----|---------|-------|
| PORT | 4764 | |
| BASE_PATH | /prompt-watch | mount point under nginx |
| DB_PATH | ./data/prompt-watch.db | absolute path in prod |
| GITHUB_TOKEN | – | optional, raises rate limit |
| CRON_SCHEDULE | 0 | |
| BOOT_INGEST_DELAY_SECONDS | 10 | 0 disables boot ingest |
| MAX_HISTORY_PER_FILE | 20 | back-fill cap on first ingest |
Why this is interesting
- Prompt engineers — learn from production-grade prompts.
- Researchers — track refusal-rule evolution across vendors.
- Developers — diff the prompt the day "my AI feels different".
- Press / analysts — cite a stable URL: "Claude Code prompt @ 2026-04-23".
The viral angle is shareable diff cards: "Claude Code lost 47 lines about
reasoning effort on April 7", "Cursor added 12 new NEVER rules this
week". Everything you see is a real upstream commit.
License
MIT — note the prompts themselves are mirrored from third-party leak repos
under those repos' own licenses. We don't author or modify prompt content;
we mirror, version, diff, and search what's already public.