{"_id":"@balasivagnanam/gist","name":"@balasivagnanam/gist","dist-tags":{"latest":"0.3.0"},"versions":{"0.3.0":{"name":"@balasivagnanam/gist","version":"0.3.0","description":"Approve website changes without reading code — local before/after capture, diff, and an AI walkthrough via your coding agent.","license":"MIT","type":"module","bin":{"gist":"bin/gist.mjs"},"engines":{"node":">=22"},"scripts":{"gist":"tsx bin/gist.ts","test":"tsx --test test/*.test.ts test/*.test.mjs","typecheck":"tsc --noEmit","eval":"tsx eval/run.ts","eval:fixtures":"tsx eval/make-fixtures.ts","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","postpack":"mv README.repo.md README.md"},"dependencies":{"pixelmatch":"^7.2.0","playwright":"^1.61.1","pngjs":"^7.0.0","tsx":"^4.23.1"},"devDependencies":{"@anthropic-ai/sdk":"^0.112.3","@types/node":"^25.9.5","@types/pngjs":"^6.0.5","typescript":"5.9"},"_id":"@balasivagnanam/gist@0.3.0","gitHead":"37f8961b53b3335ae4512cb074909a8b16b7d8ec","_nodeVersion":"24.7.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-/cL7B5XDto3QKbJats+g1iymMGlCALqHuDykE6Uul6AuNmFhGzuS5rJfQUEERcwp0bGuo+y0WVz6F0d5LfxiAg==","shasum":"38c22c4bc20e9feb99cb5af97958aba693fc0a22","tarball":"https://registry.npmjs.org/@balasivagnanam/gist/-/gist-0.3.0.tgz","fileCount":22,"unpackedSize":122098,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC9GiX4D8VLokTjSwrcLZFaAH2eu0OSn537xs8G2KIgZwIhAPPIWHHLZuvnPLwY/xgbnKEfODaXeEHMAz1fdTYYmb3y"}]},"_npmUser":{"name":"balasivagnanam","email":"bala@mindlens.com.sg"},"directories":{},"maintainers":[{"name":"balasivagnanam","email":"bala@mindlens.com.sg"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gist_0.3.0_1784540231095_0.9753110430056322"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-20T09:37:10.982Z","0.3.0":"2026-07-20T09:37:11.234Z","modified":"2026-07-20T09:37:11.455Z"},"maintainers":[{"name":"balasivagnanam","email":"bala@mindlens.com.sg"}],"description":"Approve website changes without reading code — local before/after capture, diff, and an AI walkthrough via your coding agent.","license":"MIT","readme":"# Gist\n\n> **Approve website changes without reading code.**\n\nGist turns a website pull request into a before/after visual review: deterministic\nscreenshots of every page, a local diff UI, and a plain-English AI walkthrough\nwritten by the coding agent you already have. No hosted service, no API keys.\n\n## Install\n\nNode.js 22+.\n\n```sh\nnpm install -g @balasivagnanam/gist\ngist init\n```\n\n`gist init` installs the Playwright browser (one-time, ~150 MB), scaffolds\n`.gist/config.json`, and installs the `/gist` skill into `.claude/skills/`.\n\n## Use\n\n```sh\n# 1. Edit .gist/config.json — set your production URL and routes\n\n# 2. Capture a PR (uses gh to find the preview URL automatically):\ngist run --pr 42\n\n# 3. In Claude Code, run /gist — writes the walkthrough and opens the review UI\n```\n\nThat's it. The browser opens to `http://127.0.0.1:4100` with the full review:\nwhat changed, what looks intentional, and what's worth a closer look — with\nannotated before/after panels for every change region.\n\n## How it works\n\n1. **`gist run`** — Playwright captures every route at every viewport on base\n   (production) and head (PR preview), pixel-diffs them, writes screenshots +\n   `evidence.json` into a gitignored `.gist/` folder.\n2. **`/gist` skill** — inside Claude Code, reads the evidence + full PR\n   description, classifies each change as intentional or worth a look, writes\n   `summary.md` + `regions.json`, opens the review UI.\n3. **`gist ui`** — local viewer with annotated before/after panels per region.\n   Never calls an LLM.\n\n## Full docs\n\n[github.com/balasivagn/gist](https://github.com/balasivagn/gist)\n","readmeFilename":"README.npm.md","_rev":"1-68274117d24f7d1c8a3df28a9fb28e5a"}