{"slug": "reckoning-github-feedback-companion", "title": "Reckoning – GitHub Feedback Companion", "summary": "GitHub user \"Reckoning\" released a client-side tool that compiles a user's pull requests, reviews, and issues into a structured self-review, with optional AI-generated summaries and analysis. The open-source companion runs entirely in the browser, sending GitHub personal access tokens and AI keys directly from the user's browser to the respective APIs without any backend or telemetry. The tool aims to help developers track and reflect on their contributions by generating headline accomplishments, themes, and STAR-format stories from their GitHub activity.", "body_md": "A client-side companion that turns your GitHub activity into a feedback-cycle self-review.\n\nPull every PR you authored, reviewed, or commented on, and every issue you opened or\nparticipated in within a date range. Then, optionally, point an AI provider at the data to\ngenerate a structured self-review with themes, headline accomplishments, and STAR stories — or\nask freeform questions like *\"What auth work did I do?\"* or *\"Which PRs took longest to merge?\"*\n\n**Everything runs in your browser.** No backend, no telemetry, no servers I control.\nYour GitHub PAT and AI key are sent directly from your browser to the respective APIs and\nnowhere else.\n\n```\nnpm install\nnpm run dev\n```\n\nOpen the URL Vite prints (usually `http://localhost:5173`\n\n).\n\n```\nnpm run build\n```\n\nThe build emits a static site to `./dist`\n\n. Drop that folder onto any static host.\n\nA ready-to-use Actions workflow lives at `.github/workflows/deploy.yml`\n\n. To turn it on:\n\n- Push this repo to GitHub.\n- On GitHub:\n**Settings → Pages → Build and deployment → Source: GitHub Actions**. - Push to\n`main`\n\n(or trigger the workflow manually). The action builds and publishes to Pages. - The site appears at\n`https://<your-username>.github.io/<repo-name>/`\n\n.\n\nThe Vite config uses `base: './'`\n\nso the build works from any subpath without configuration.\nA `.nojekyll`\n\nis included so Pages doesn't strip files starting with `_`\n\n.\n\n**Netlify / Vercel / Cloudflare Pages**— point them at the repo, build command`npm run build`\n\n, publish directory`dist`\n\n**Self-hosted**—`npx serve dist`\n\nor any nginx/Caddy static config\n\n**Contributed**— PRs you authored (`is:pr author:USER`\n\n)**Reviewed**— PRs you formally reviewed or left comments on (`reviewed-by:USER`\n\n∪`commenter:USER`\n\n)**Issues**— Issues you opened or participated in (`is:issue involves:USER`\n\n)\n\nEach view shows a stat count, expandable cards, and direct links to GitHub.\n\nWhen an AI key is present, each view gets a \"Generate\" button that produces:\n\n- Headline accomplishments with PR/issue links\n- 2–4 themes grouping related work\n- \"By the numbers\" paragraph\n- One STAR-format story for a standout item\n\nPlus a global Q&A bar that answers freeform questions against all your cached contributions.\n\n**Anthropic**(Claude Sonnet 4.5)** OpenAI**(GPT-4o)** Google**(Gemini 2.5 Pro)\n\nBring your own key for any of them.\n\nCreate a [Personal Access Token](https://github.com/settings/tokens/new?scopes=repo,read:org,read:user&description=Reckoning%20Feedback%20Companion)\nwith these scopes:\n\n`repo`\n\n— read your private repos and orgs (use`public_repo`\n\nif you only need public access)`read:org`\n\n— see contributions in org repos`read:user`\n\n— read your own profile for the username fallback\n\nA **fine-grained PAT** scoped to read-only on the orgs/repos you care about is the most\nsecure option.\n\nSSO orgs:If any of your orgs use SAML/SSO, go back to the[tokens page]after creating the token, clickConfigure SSOnext to it, and authorize each org. Without this, contributions in those orgs are silently missing from results.\n\n**No server.** Everything is a static SPA. Your tokens go from your browser straight to`api.github.com`\n\nand your AI provider's API.**Storage.** Keys live in`sessionStorage`\n\nby default (cleared when the tab closes). The \"Remember on this device\" checkbox switches to`localStorage`\n\n. The \"Clear data\" button on the setup screen wipes both.**No analytics, no telemetry, no third-party JS** beyond Google Fonts (loaded once at startup).\n\n- GitHub's search API caps results at\n**1,000 per query**. For very long windows on a very active user, narrow the date range or filter by repo. - GraphQL is used wherever cheaper than REST, but a power-user query against many repos can still consume a few hundred rate-limit points. The progress screen shows your remaining quota.\n- AI calls truncate item descriptions to keep prompts compact. For very long PRs, follow the links in the AI's output for full context.\n\n```\nsrc/\n  App.jsx                  ← Top-level orchestration of the four screens\n  main.jsx                 ← Vite entry\n  index.css                ← Tailwind + custom typography\n  components/\n    ui.jsx                 ← Shared primitives (Button, Input, Logo, Section)\n    SetupScreen.jsx        ← Token entry + AI provider selection\n    FilterScreen.jsx       ← Date range + repo type-ahead\n    FetchProgress.jsx      ← Animated fetch progress\n    ResultsScreen.jsx      ← Three-tab results + AI summaries + Q&A\n  lib/\n    storage.js             ← localStorage/sessionStorage wrapper\n    github.js              ← GraphQL queries + pagination\n    ai.js                  ← Provider-agnostic AI calls\n```\n\nMIT — do whatever you want with it.", "url": "https://wpnews.pro/news/reckoning-github-feedback-companion", "canonical_source": "https://github.com/SuperThinking/reckoning", "published_at": "2026-05-27 07:29:46+00:00", "updated_at": "2026-05-27 07:57:52.605876+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "generative-ai"], "entities": ["GitHub", "Vite", "Netlify", "Vercel", "Cloudflare Pages", "GitHub Actions", "GitHub Pages"], "alternates": {"html": "https://wpnews.pro/news/reckoning-github-feedback-companion", "markdown": "https://wpnews.pro/news/reckoning-github-feedback-companion.md", "text": "https://wpnews.pro/news/reckoning-github-feedback-companion.txt", "jsonld": "https://wpnews.pro/news/reckoning-github-feedback-companion.jsonld"}}