{"_id":"@ankitpandey2708/pinpoint","_rev":"8-f396c6c284784daf3c80ad280970ca68","name":"@ankitpandey2708/pinpoint","dist-tags":{"latest":"0.3.3"},"versions":{"0.1.0":{"name":"@ankitpandey2708/pinpoint","version":"0.1.0","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","_id":"@ankitpandey2708/pinpoint@0.1.0","maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"homepage":"https://github.com/ankitpandey2708/pinpoint#readme","bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"bin":{"pinpoint":"dist/app/index.js"},"dist":{"shasum":"e21f693a9ffd7a387c1b1af6a5cc3e7752b63eff","tarball":"https://registry.npmjs.org/@ankitpandey2708/pinpoint/-/pinpoint-0.1.0.tgz","fileCount":38,"integrity":"sha512-rBBJvN0Zr+Vy8PHtzD32GCYY95In1itKYrQlGXe+/z/e5f9yGNEwOKNhkmQaBtvW4kntD1XrtXwhG3C+m6h3+w==","signatures":[{"sig":"MEYCIQCsvJRC/pD0vKJIz+KOljaDQnNhzl7D850Mo3ZRMqltRgIhAPGo8sUxlOWo0u+4kd3uTMpdaQ1KNPwlHomj5Rex82oO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264237},"engines":{"node":">=20"},"gitHead":"cece15ded228c3e974ea99617df2453ec6fc53ef","scripts":{"dev":"node scripts/build-overlay.mjs && tsx src/app/index.ts","kill":"tsx src/app/index.ts kill","build":"node scripts/build-overlay.mjs && tsc && node scripts/copy-assets.mjs","start":"node dist/app/index.js","prepack":"npm run build","typecheck":"tsc --noEmit","build:overlay":"node scripts/build-overlay.mjs"},"_npmUser":{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"},"repository":{"url":"git+https://github.com/ankitpandey2708/pinpoint.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"express":"^4.21.0","commander":"^12.1.0","http-proxy-3":"^1.23.3","element-source":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","esbuild":"^0.28.1","typescript":"^5.6.2","@types/node":"^22.7.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/pinpoint_0.1.0_1784058485838_0.2785806565428368","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ankitpandey2708/pinpoint","version":"0.1.1","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","_id":"@ankitpandey2708/pinpoint@0.1.1","maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"homepage":"https://github.com/ankitpandey2708/pinpoint#readme","bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"bin":{"pinpoint":"dist/app/index.js"},"dist":{"shasum":"3520f200ed96b4facee162f90b79de2d3993142e","tarball":"https://registry.npmjs.org/@ankitpandey2708/pinpoint/-/pinpoint-0.1.1.tgz","fileCount":38,"integrity":"sha512-paIyziYh+blPiQltuGfLLoxOVy8hSbqetaYs1CLAjq/8LyOanlMUHIk0/DraYrR5pFQXU85jZms0HfUtysbEhA==","signatures":[{"sig":"MEYCIQCvlY3HMIHwbGzLEI6I1a1l6RD8luDZ3zw9vRacwQd/ngIhANdSb+a9sldPlBU2GJph9QdtImMjAyR411N4JDUxc4zf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279500},"engines":{"node":">=20"},"gitHead":"2cc69c52706e1723aca42f646a34b50b3e569d18","scripts":{"dev":"node scripts/build-overlay.mjs && tsx src/app/index.ts","kill":"tsx src/app/index.ts kill","build":"node scripts/build-overlay.mjs && tsc && node scripts/copy-assets.mjs","start":"node dist/app/index.js","prepack":"npm run build","typecheck":"tsc --noEmit","build:overlay":"node scripts/build-overlay.mjs"},"_npmUser":{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"},"repository":{"url":"git+https://github.com/ankitpandey2708/pinpoint.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"express":"^4.21.0","commander":"^12.1.0","http-proxy-3":"^1.23.3","element-source":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","esbuild":"^0.28.1","typescript":"^5.6.2","@types/node":"^22.7.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/pinpoint_0.1.1_1784059286130_0.4637531936414092","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ankitpandey2708/pinpoint","version":"0.1.2","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","_id":"@ankitpandey2708/pinpoint@0.1.2","maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"homepage":"https://github.com/ankitpandey2708/pinpoint#readme","bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"bin":{"pinpoint":"dist/app/index.js"},"dist":{"shasum":"a02d4b9356c2c08278a2097c2f05b4b1d54d34a6","tarball":"https://registry.npmjs.org/@ankitpandey2708/pinpoint/-/pinpoint-0.1.2.tgz","fileCount":38,"integrity":"sha512-r+mT87g5a1JOpf/CeKgdLkRSVjwJb9yT3LTiCyX0FRyFzyZo+98uAQGs+dSYQxDTfWvW+NWH2LhgsMkj9dAASQ==","signatures":[{"sig":"MEQCIDzRW07+r63PTBEdKrcAPeDrSMqQkoBcqtTWOZsaNN1LAiBFa+C+gp/G7tfY+KYKedhvKole/e4hn6bB8zRk7Pgnhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276284},"engines":{"node":">=20"},"gitHead":"43c76e5e21a3d5ec5be4f3d62548440ca49728da","scripts":{"dev":"node scripts/build-overlay.mjs && tsx src/app/index.ts","kill":"tsx src/app/index.ts kill","build":"node scripts/build-overlay.mjs && tsc && node scripts/copy-assets.mjs","start":"node dist/app/index.js","prepack":"npm run build","typecheck":"tsc --noEmit","build:overlay":"node scripts/build-overlay.mjs"},"_npmUser":{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"},"repository":{"url":"git+https://github.com/ankitpandey2708/pinpoint.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"express":"^4.21.0","commander":"^12.1.0","http-proxy-3":"^1.23.3","element-source":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","esbuild":"^0.28.1","typescript":"^5.6.2","@types/node":"^22.7.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/pinpoint_0.1.2_1784059640937_0.4301164698689206","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ankitpandey2708/pinpoint","version":"0.2.0","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","_id":"@ankitpandey2708/pinpoint@0.2.0","maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"homepage":"https://github.com/ankitpandey2708/pinpoint#readme","bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"bin":{"pinpoint":"dist/app/index.js"},"dist":{"shasum":"7c0b8654927eedc05c5202a08be506170eb919c8","tarball":"https://registry.npmjs.org/@ankitpandey2708/pinpoint/-/pinpoint-0.2.0.tgz","fileCount":38,"integrity":"sha512-1UTdHdpHNtqwkRUjmup+uR//oqDlT171F0vrtJgPQKi7UXDyMSjJseTHZQvdlZMxTyWiA6/HSdw+mZZ7DtZaaw==","signatures":[{"sig":"MEYCIQDF1hdorEERoozAXjl+TrvEBuZlArb1l4KOIu/wjHq/TwIhAItLXFYcYV0ntaT+1taLVylblIStpLQzATxBUTahKJRI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284618},"engines":{"node":">=20"},"gitHead":"9413a9ac80b5d8a3044ea3b5f2d2af1e05bb434f","scripts":{"dev":"node scripts/build-overlay.mjs && tsx src/app/index.ts","kill":"tsx src/app/index.ts kill","build":"node scripts/build-overlay.mjs && tsc && node scripts/copy-assets.mjs","start":"node dist/app/index.js","prepack":"npm run build","typecheck":"tsc --noEmit","build:overlay":"node scripts/build-overlay.mjs"},"_npmUser":{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"},"repository":{"url":"git+https://github.com/ankitpandey2708/pinpoint.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"express":"^4.21.0","commander":"^12.1.0","http-proxy-3":"^1.23.3","element-source":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","esbuild":"^0.28.1","typescript":"^5.6.2","@types/node":"^22.7.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/pinpoint_0.2.0_1784061477316_0.998530952787229","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ankitpandey2708/pinpoint","version":"0.3.0","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","_id":"@ankitpandey2708/pinpoint@0.3.0","maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"homepage":"https://github.com/ankitpandey2708/pinpoint#readme","bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"bin":{"pinpoint":"dist/app/index.js"},"dist":{"shasum":"b4b32701c8c88d02383d270428ed43f38a2208fc","tarball":"https://registry.npmjs.org/@ankitpandey2708/pinpoint/-/pinpoint-0.3.0.tgz","fileCount":38,"integrity":"sha512-Ve48g2BXc35dKxfTBo4Zmd9fqsM8fre7DD1LbjiIfkvVL5CmEjvwEfR6762DOHFBeLUKBcwXcxe+xg4ovYrJbQ==","signatures":[{"sig":"MEYCIQCKpOpoY+FwOtcJwpmnv5NsHTgQaCs3MWCVNAYKPcvMCgIhAJPF7xJ2cG7ZhEdifARkJsQoexoGZvIuhjtvZ3/lXBHs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288965},"engines":{"node":">=20"},"gitHead":"3720885f26f6d1d701ba16e98614943ba63ae0b7","scripts":{"dev":"node scripts/build-overlay.mjs && tsx src/app/index.ts","kill":"tsx src/app/index.ts kill","build":"node scripts/build-overlay.mjs && tsc && node scripts/copy-assets.mjs","start":"node dist/app/index.js","prepack":"npm run build","typecheck":"tsc --noEmit","build:overlay":"node scripts/build-overlay.mjs"},"_npmUser":{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"},"repository":{"url":"git+https://github.com/ankitpandey2708/pinpoint.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"express":"^4.21.0","commander":"^12.1.0","http-proxy-3":"^1.23.3","element-source":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","esbuild":"^0.28.1","typescript":"^5.6.2","@types/node":"^22.7.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/pinpoint_0.3.0_1784140611794_0.38102865694947585","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@ankitpandey2708/pinpoint","version":"0.3.1","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","_id":"@ankitpandey2708/pinpoint@0.3.1","maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"homepage":"https://github.com/ankitpandey2708/pinpoint#readme","bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"bin":{"pinpoint":"dist/app/index.js"},"dist":{"shasum":"a6417be0704609d4773a6fa258634c5565905167","tarball":"https://registry.npmjs.org/@ankitpandey2708/pinpoint/-/pinpoint-0.3.1.tgz","fileCount":38,"integrity":"sha512-zplIrqJ9yQWdxcEGIwZVPbwvhuBkaQep44oZ1rzcqwbcClpEhfrznPy4ASEteSLl5YSONNciKZWw8VTQTrb1fQ==","signatures":[{"sig":"MEUCIQDN4BdaAxPqnWnusoaGzPcfUjjEgMXQeYfYp86SCPs5ZAIgH3GkEaPkvHqO24oCyxcPysknZEdRh27K3WnT3DU8Q6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289817},"engines":{"node":">=20"},"gitHead":"471085e993bd957b37ed6ab806e7c8304e9cbdfa","scripts":{"dev":"node scripts/build-overlay.mjs && tsx src/app/index.ts","kill":"tsx src/app/index.ts kill","build":"node scripts/build-overlay.mjs && tsc && node scripts/copy-assets.mjs","start":"node dist/app/index.js","prepack":"npm run build","typecheck":"tsc --noEmit","build:overlay":"node scripts/build-overlay.mjs"},"_npmUser":{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"},"repository":{"url":"git+https://github.com/ankitpandey2708/pinpoint.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"express":"^4.21.0","commander":"^12.1.0","http-proxy-3":"^1.23.3","element-source":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","esbuild":"^0.28.1","typescript":"^5.6.2","@types/node":"^22.7.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/pinpoint_0.3.1_1784199762780_0.634002310559836","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@ankitpandey2708/pinpoint","version":"0.3.2","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","_id":"@ankitpandey2708/pinpoint@0.3.2","maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"homepage":"https://github.com/ankitpandey2708/pinpoint#readme","bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"bin":{"pinpoint":"dist/app/index.js"},"dist":{"shasum":"694b3ccabc56db681fcedf20814a3d32f149ca53","tarball":"https://registry.npmjs.org/@ankitpandey2708/pinpoint/-/pinpoint-0.3.2.tgz","fileCount":38,"integrity":"sha512-iDTTAmjZu1MwbtuvTRpCAtRSZ7yHSmpUpX5/vRatfbrvIcJjNfLdKFhtHYHYZaYl7PurpAZd5roiZYd8bD2sZQ==","signatures":[{"sig":"MEQCIBi/lSqsReHqLWOlRImFu1y+nGbvE8/yaVs7hbILJJt0AiAeLxU9xhvL3jxlA+lIv3vdsnusTNx8eZ5PiTp4jq60cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292156},"engines":{"node":">=20"},"gitHead":"a9e048f0a6b322dfa68bab8a2e86329bfb75379f","scripts":{"dev":"node scripts/build-overlay.mjs && tsx src/app/index.ts","kill":"tsx src/app/index.ts kill","build":"node scripts/build-overlay.mjs && tsc && node scripts/copy-assets.mjs","start":"node dist/app/index.js","prepack":"npm run build","typecheck":"tsc --noEmit","build:overlay":"node scripts/build-overlay.mjs"},"_npmUser":{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"},"repository":{"url":"git+https://github.com/ankitpandey2708/pinpoint.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"express":"^4.21.0","commander":"^12.1.0","http-proxy-3":"^1.23.3","element-source":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","esbuild":"^0.28.1","typescript":"^5.6.2","@types/node":"^22.7.4","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/pinpoint_0.3.2_1784201203651_0.28383500962784747","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@ankitpandey2708/pinpoint","version":"0.3.3","description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","homepage":"https://github.com/ankitpandey2708/pinpoint#readme","repository":{"type":"git","url":"git+https://github.com/ankitpandey2708/pinpoint.git"},"bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"engines":{"node":">=20"},"bin":{"pinpoint":"dist/app/index.js"},"publishConfig":{"access":"public"},"scripts":{"build:overlay":"node scripts/build-overlay.mjs","kill":"tsx src/app/index.ts kill","dev":"node scripts/build-overlay.mjs && tsx src/app/index.ts","build":"node scripts/build-overlay.mjs && tsc && node scripts/copy-assets.mjs","prepack":"npm run build","start":"node dist/app/index.js","typecheck":"tsc --noEmit"},"dependencies":{"commander":"^12.1.0","element-source":"^0.0.5","express":"^4.21.0","http-proxy-3":"^1.23.3"},"devDependencies":{"@types/express":"^4.17.21","@types/node":"^22.7.4","esbuild":"^0.28.1","tsx":"^4.19.1","typescript":"^5.6.2"},"gitHead":"dea78ed61acdbe91729d838208d60cc6b6757e9e","_id":"@ankitpandey2708/pinpoint@0.3.3","_nodeVersion":"24.11.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-xe1v2ZRm5Yxk4eErs4ofWrUF6aqeUtznxhYIR1z/A3ggkyYJ+pn3hfWyeSLmcPMS5+5aunzv3+Eo/RDvn0FwZQ==","shasum":"985c4e0fd5a66972179d88f2d55d764a813afd4b","tarball":"https://registry.npmjs.org/@ankitpandey2708/pinpoint/-/pinpoint-0.3.3.tgz","fileCount":38,"unpackedSize":293900,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGqJROgJjzj+vsal46Tq/Kh9l6ISBopX/h+UO3kBsFIAAiEA6wWNnIDfFhvlp43J4KWtcU0AhU5FMAzfNzah39IGZmQ="}]},"_npmUser":{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"},"directories":{},"maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pinpoint_0.3.3_1784202964245_0.5951785539759238"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-14T19:48:05.727Z","modified":"2026-07-16T11:56:04.761Z","0.1.0":"2026-07-14T19:48:05.981Z","0.1.1":"2026-07-14T20:01:26.260Z","0.1.2":"2026-07-14T20:07:21.088Z","0.2.0":"2026-07-14T20:37:57.452Z","0.3.0":"2026-07-15T18:36:51.954Z","0.3.1":"2026-07-16T11:02:42.939Z","0.3.2":"2026-07-16T11:26:43.812Z","0.3.3":"2026-07-16T11:56:04.399Z"},"bugs":{"url":"https://github.com/ankitpandey2708/pinpoint/issues"},"author":{"name":"Ankit Pandey","email":"ankit.p@realfast.ai"},"license":"MIT","homepage":"https://github.com/ankitpandey2708/pinpoint#readme","keywords":["code-review","visual-review","feedback","github","pull-request","claude","cli"],"repository":{"type":"git","url":"git+https://github.com/ankitpandey2708/pinpoint.git"},"description":"Local-first visual review tool that turns element-specific client feedback into draft GitHub pull requests.","maintainers":[{"name":"ankitpandey2708","email":"ankitpandey2708@gmail.com"}],"readme":"# Pin Point\r\n\r\nLocal-first visual review tool. A client clicks elements on your live page, leaves\r\nplain-language comments, and submits. Pin Point maps each comment to the source\r\nfile, runs Claude Code in an isolated Git worktree, and opens a **draft** GitHub\r\npull request.\r\n\r\n- The client needs no technical knowledge, browser extension, or GitHub access.\r\n- Submitting feedback automatically runs the agent and opens a draft PR. The draft\r\n  is the review gate — Pin Point never merges and never force-pushes.\r\n- The agent works only in a throwaway worktree at the review's commit; your working\r\n  tree is untouched.\r\n- A failing build blocks the push and PR.\r\n\r\n## Requirements\r\n\r\n- Node.js 20+ (24 LTS recommended)\r\n- Git on your PATH\r\n- GitHub auth for PR creation — either the GitHub CLI (`gh auth login`), or a\r\n  stored HTTPS Git credential for github.com (e.g. Git Credential Manager), which\r\n  Pin Point uses to open the PR via the REST API when `gh` isn't available\r\n- Claude Code CLI (`claude`) authenticated — the default agent\r\n- A clean local Git repo with a GitHub remote\r\n\r\nSupported projects: any framework with a `dev`/`start`/`serve` script in\r\n`package.json` (React, Next.js, Vue, Svelte/SvelteKit, Angular, Astro, Remix, …)\r\n— Pinpoint runs the repo's own dev script and previews it through a proxy — plus\r\nplain HTML/CSS/JS sites (served directly). npm, pnpm, yarn, and bun are detected\r\nfrom the lockfile.\r\n\r\n## Install\r\n\r\n```bash\r\nnpx @ankitpandey2708/pinpoint <path-to-repo>   # run without installing\r\n# or:\r\nnpm install -g @ankitpandey2708/pinpoint\r\npinpoint <path-to-repo>                         # omit the path to review the current repo\r\n```\r\n\r\n## Usage\r\n\r\n`pinpoint <repo>` inspects the repo, starts an instrumented preview, and prints two\r\nURLs. The preferred port is 7777; it steps up (7778, 7779, …) if taken.\r\n\r\n```text\r\nReview link (local):    http://localhost:7777/review/<projectId>\r\nDeveloper dashboard:    http://localhost:7777/dashboard?token=<devToken>\r\n```\r\n\r\nSend the **review link** to your client; keep the tokenized **dashboard** link\r\nprivate. Pin Point also starts a public Cloudflare tunnel and prints public URLs;\r\nif `cloudflared` is unavailable it falls back to local URLs and says how to enable\r\nsharing. Press **Ctrl+C** to stop and release the port.\r\n\r\nFrom a source checkout, use `npm run dev -- <path-to-repo>` (no path reviews the\r\ncurrent repo).\r\n\r\n## How it works\r\n\r\n1. **Client** opens the review link, clicks elements, comments, and submits. Drafts\r\n   persist in `localStorage` until submission, then are stored as JSON.\r\n2. **Fix runs automatically.** Pin Point creates a worktree at the review's commit,\r\n   runs Claude Code scoped to the feedback, runs the build gate, commits, pushes a\r\n   `pinpoint/review-*` branch, and opens a draft PR.\r\n3. **Developer** watches the dashboard: per-comment source mapping, a confidence\r\n   badge (`direct` / `unresolved`), and live status\r\n   (`preparing → running-agent → verifying → pushing → pr-opened`). Failed runs can\r\n   be retried.\r\n4. **Developer decides** on GitHub: merge, revise, or close the draft.\r\n\r\n## Troubleshooting\r\n\r\n- **\"working tree must be clean\"** — commit or stash changes before starting.\r\n- **PR step fails** — check `gh auth status` and that the repo has a GitHub `origin`.\r\n- **Agent step fails** — check the `claude` CLI is installed and authenticated. The\r\n  job is marked `failed` with a sanitized reason; the worktree is kept and you can\r\n  retry from the dashboard.\r\n\r\n## Data and cleanup\r\n\r\nState is JSON under `~/.pinpoint/data/` (`projects.json`, `reviews.json`,\r\n`jobs.json`, redacted `logs/`) — one per-user store shared across runs. Preview\r\ncopies and worktrees live in the OS temp dir (`%TEMP%\\pp\\<hash>` on Windows).\r\n\r\n```powershell\r\nRemove-Item -Recurse -Force $env:USERPROFILE\\.pinpoint, $env:TEMP\\pp -ErrorAction SilentlyContinue\r\n```\r\n\r\n`pinpoint kill` stops running sessions and clears their workspaces.","readmeFilename":"README.md"}