A Claude Code plugin · native to your pull requests

The AI⁠-⁠Story behind every PR.

DiffLore links the Claude Code sessions behind every pull request — so your whole team can see how your best engineers actually work with AI: the prompts, the MCP servers, the skills, the guardrails.

Free for individual developers · no card required
Why DiffLore

AI adoption is a team sport.
Most teams still play it solo.

The gap between your AI power users and everyone else is the biggest unclaimed productivity win in your org. DiffLore turns your champions' everyday sessions into a playbook the whole team learns from — without anyone writing a doc.

01

Every team has a champion

One or two engineers quietly get 3× out of Claude. What actually makes them fast is invisible to everyone else on the team.

02

The edge is the setup, not the prompt

Their real advantage is configuration — the MCP servers they wired in, the skills and subagents they lean on, the CLAUDE.md that keeps output on the rails. None of it shows up in a diff.

03

…and it vanishes at merge

The session behind a great PR disappears the moment it lands. Reviewers inherit the code, never the reasoning — or the setup — that produced it.

DiffLore makes the whole setup visible
Not just what was typed — how the session was actually run.
PromptsThinkingMCP serversSkillsSubagentsCLAUDE.mdSlash commandsEvery tool call
Merged
Add token-bucket rate limiting to ingest API
#482
DiffLorebotlinked 2 sessions behind this PR
SessionACalex
41m · 28 turns · 6 files
Open
SessionACalex
12m · 9 turns · 2 files
Open

access mirrors this PR — anyone who can see #482 can open the sessions with their GitHub login.

difflore.com/s/9f3a…c1feat/ingest-rate-limit41m
MCPgithubpostgresredissentry
Prompt · alex
Add a token-bucket rate limiter to the ingest endpoint — 100 req/s per key, return 429 with a Retry-After header. Cover it with tests.
Thinking
Token bucket fits — refill 100/s, capacity 100. I'll key on the API key, keep state in Redis so it holds across instances…
Edit · ingest/limiter.ts
+ export function allow(key: string) {
+  const b = bucket(key)
+  return b.take(1)
  · +48 −2
Bash · bun test
limiter.test.ts  14 pass, 0 fail
Result
Added allow() with Redis-backed buckets, wired it into the ingest handler, and covered burst + refill in tests. ✅
How it works

From install to insight in under five minutes.

No pipelines to wire up. Nothing to babysit. You feel it on the very first PR.

1

Install the plugin

One command for a team, or flip a single switch in Claude Enterprise to roll it out org-wide. No CI changes, nothing to babysit.

$ claude plugin install difflore
2

Sessions post themselves

As soon as a PR opens, DiffLore drops a comment linking the sessions behind it — mapped automatically from the branch, with secrets redacted.

linked 2 sessions to #482
3

Teammates open in one click

Access mirrors the PR. They sign in with their existing account — if they can see the pull request, they can open its full story. No new logins, no permission database.

access == can_view(pr)
The magic trick: your existing login is the only permission model. DiffLore never stores who can see what.
Pricing

Free for almost everyone.

Individual developers and standard organizations pay nothing. Only large enterprises do — and only for people who actually use it.

Freeforever
$0/ month

For individual developers and organizations on GitHub Free, Pro & Team.

Unlimited sessions & pull requests
The full session viewer & timeline
Automatic secret redaction
Access mirrors your PRs — no new logins
Works with Claude Enterprise
Enterprisefor GitHub Enterprise orgs
$10/ active person* / month

For organizations on GitHub Enterprise. Billed monthly with a 100-person minimum.

Everything in Free
SSO through your identity provider
Audit log & retention controls
Priority support & onboarding

* “Active” means anyone who submitted or opened a session that month. Everyone else is free.

Give every diff its story.

Install in a minute. Learn from your best engineers on the very next pull request.