ELI5, for pull requests

Your agent wrote 4,000 lines. You wrote “LGTM”.

Code review reads lines. Intent review reads decisions. ELI5 bot explains every pull request like you're five, so the next LGTM actually means something.

We let teams in a few at a time and only email you about access. Privacy

See a real explanation
eli5-botbotcommented

ELI5

TL;DR Owners can now invite someone into just the projects they choose, as a guest, instead of into the whole workspace. Guests see and comment on the work inside those projects and nothing else.

Needs your judgment

What changes
For users

Code review is a vibe check now

Agents write a day of code in a few minutes. Reviewers didn't get a firmware update. So a 3,000-line pull request lands, someone scrolls to the bottom, and approves it. That's not review. That's a signature on code nobody read.

Read every line.

Sure. See you next quarter. Meanwhile the decisions that matter hide under forty files of boilerplate.

Let another AI review it.

Now a bot grades a bot's homework, and nobody is on the hook for what ships.

Or: give the reviewer something worth reading.

Read what it decided, not what it typed

Intent review: judge a change by what it's for and what it commits you to. The diff is still there. It's the evidence, not the homework.

eli5-botbotcommented

ELI5

TL;DR Owners can now invite someone into just the projects they choose, as a guest, instead of into the whole workspace. Guests see and comment on the work inside those projects and nothing else.

Changed since the last version Owners can now add a project to an existing guest from that guest's row, so a guest's access is no longer fixed when they accept the invitation.

Needs your judgment

What changes
For users
For existing data
For the release
  • One new migration has to run before this code: it rewrites the membership role check and creates the two tables plus an index.
  • The visibility rule lives in one shared SQL fragment used by project and task lookups; the board's own task list is not filtered and relies on the project having been checked just before it.
  • That visibility rule has no automated test: the suite only covers which role may do what and doesn't use a database.
Asked vs. done
✅ DoneOwners can invite someone as a guest to one or more projects from the members page.; Guests see only the projects they were invited to.; Guests can read tasks and comment, and can't change the board.; The members page shows who is a guest and which projects they're on, and owners remove guests like anyone else.
➕ Not askedGuests don't see the Members page or its menu link, so they can't see other people's emails or other guests' projects.
➕ Not askedGuests can't be assigned tasks and no longer appear in assignee lists.
➕ Not askedAn invitation for an address that already has one waiting is updated in place, keeping the same link, instead of being ignored.
➕ Not askedInvitations can only cover projects that aren't archived.
➕ Not askedOwners can widen an existing guest's access from the guest's row, but can't take a single project away.
How it works

Before

  1. Owner enters an email address
  2. Invitation holds email and link only
  3. Person signs in and accepts
  4. Membership created as a plain member
  5. Everyone sees every workspace project

After

  1. Owner enters an email address
  2. NEWGuest form: email plus projects; member form unchanged
  3. CHANGEDInvitation holds role and picked projects
  4. Person signs in and accepts
  5. CHANGEDMembership created with the invited role
  6. NEWGuest's project access rows written
  7. CHANGEDGuests see their projects, others see all

Decisions

  1. The invitation stores the role and copies it on accept. The role and the project list travel with the invitation and are applied only when the link is accepted, so an unaccepted invitation grants nothing.
  2. Guest project access hangs off the membership row. Removing a guest revokes their project access in the same statement that removes them, and re-inviting starts from no projects.
  3. A second invite rewrites the waiting invitation instead of adding one. A link already sent keeps working but now grants whatever the latest invitation says; projects left unticked in the new invitation are dropped rather than added.
  4. Adding a project to a guest only ever inserts access. An owner can widen a guest's access from the row but can't take one project back; narrowing means removing the guest and inviting them again.
What's in the diff
Coverage
  • app/globals.css: For users (guest invite form and add-project control styling)
  • app/invite/[token]/page.tsx: Decisions 2, 4
  • app/w/[workspace]/actions.ts: Decisions 1, 7, 8, 9 (call sites)
  • app/w/[workspace]/layout.tsx: Decision 6
  • app/w/[workspace]/members/page.tsx: Decisions 5, 7, 9; For users
  • app/w/[workspace]/page.tsx: Decision 1 (call site)
  • app/w/[workspace]/projects/[project]/page.tsx: Decision 1 (call site)
  • app/w/[workspace]/tasks/[task]/page.tsx: Decisions 1, 7 (call sites)
  • lib/members.ts: Decisions 2, 3, 4, 5, 9; For existing data
  • lib/permissions.ts: Decision 6
  • lib/projects.ts: Decision 1
  • lib/tasks.ts: Decision 1
  • migrations/002_guests.sql: Decisions 1, 2, 3, 4; For the release
  • tests/permissions.test.ts: tests

Not explained

  • The pending-invitations list was moved out of the invite form into its own section, so it no longer depends on the invite form being rendered.
  • In the member list, owners and members now sort above guests, and the role column is rendered from a label lookup instead of an inline check.

Explains f833a85 · 👍 / 👎 or reply with what's wrong

ELI5 bot's explanation of a pull request in our demo app, after one round of review, shortened.

No, this is not another AI code reviewer.

  • Hunting for bugs
  • Commenting on every line
  • Scoring, approving or blocking
  • Judging the implementation

It says what was done and leaves the call to you. Review bots give you more to read. This one gives you less.

“Trust me bro” is not a citation

Every claim comes with receipts

Each claim links its own words to the exact lines, at the exact commit. Checking one takes a click, not an afternoon of archaeology. Here's one from a pull request in our demo app.

eli5-botbotcommented

…existing invitations get the new role column defaulting to plain member, so none of them turn into guest access.

migrations/002_guests.sql, line 14 at f833a85
12);13 14alter table invitations add column role text not null default 'member' check (role in ('member', 'guest'));15 16create table invitation_projects (

The PR description is a claim. The code is the fact.

A pull request titled “docs only” that changes how people sign in gets explained as changing how people sign in. Nice try.

Fact-checked before you see it

A second pass checks every claim against the code, then the corrections get checked too. Links, line ranges and file coverage are verified automatically.

Never stale, never sneaky

Push again and within seconds the comment says it's out of date. Once the pushes stop it catches up, with a line on what changed.

Updating for f833a85; this explains 409d11a.

It reads the other half

Linked issues, plus pull requests, commits and branches in your other repos, so half a feature doesn't get explained in a vacuum.

We run it on every PR we ship

ELI5 bot is installed on every one of our repos, so every pull request we open gets explained, whether an agent wrote it or we did. It flags the stuff a tired reviewer scrolls right past. No “bug!”, no blocked merge: it says what the code does, and the reviewer decides.

“…that path never reaches the merge-base line, so the note's claim covers only non-stacked pull requests.”
On a PR that “just fixed a comment”
“…an unchanged PR with unmoved links reuses the stored version without the check.”
On a PR that promised more than it shipped

How it works

  1. Join the waitlist

    We let teams in a few at a time, and help you set up.

  2. Install the GitHub App

    On the repos you pick. It's read-only and writes exactly one comment per pull request.

  3. Try it on PRs you already have

    No waiting for the next pull request. Pick a few that are already open and see them explained in minutes.

  4. Keep shipping

    Every new or updated pull request gets explained within minutes. Drafts too.

No config files, no process change. The explanation shows up in the pull request, where your team already reviews, and approving still happens in GitHub.

Who it's for

Reviewers and tech leads
Know what you're approving before you approve it.
Product managers
Check the PR does what the ticket asked, without learning TypeScript.
Teams running coding agents
Keep a human on the hook while the agents go brrr.
Authors
See your PR the way your reviewer will. Before they do.
Developers on their own projects
The Solo plan. Someone should read what your agent shipped at 2am.

What happens to your code

Read-only

It reads your code and writes exactly one thing: its own comment. When the run ends, its copy of your code is deleted.

Isolated

Each run gets its own fresh copy of your repository, can't see anything else, and never runs your code.

Not for training

Code goes only to AI providers that keep no copy of it, so none of them can train on it.

What we keep

The explanation, usage numbers such as tokens and cost, and the reactions and replies it gets. Not your code.

Pricing

Pay per run. One run is one explanation, written or brought up to date after a push.

Solo

$19 a month

50 runs

One developer's personal repositories

Starter

$49 a month

150 runs

A team of three to five

Team

$149 a month

600 runs

A team of about ten

Scale

$449 a month

2,000 runs

Several teams, or repositories where agents push all day

Try it first. Every invited account starts with 10 runs to use within 14 days, no card needed.

Top-ups. Add 100 runs for $39 whenever you run low, as often as you need, on any plan. Top-up runs last 12 months. For a custom plan, talk to us.

  • A burst of pushes counts as one run.
  • Explanations reused unchanged, and pull requests opened by bots such as Dependabot, don't use a run.
  • Solo is for personal GitHub accounts. Repositories in an organization need Starter or above.
  • Prices exclude VAT.
Join the waitlist

Questions

Is this an AI code reviewer?

No. It doesn't review code, hunt bugs or approve anything. It explains what a pull request does and decides, so a human can review it properly.

Will it catch bugs?

Not on purpose. If the code does something a reviewer should know about, like dropping records or changing who sees a page, it says so and links the line. Bug or feature is your call.

Do I still need to read the code?

The parts that matter, yes. It points you straight at them, so you read the right lines instead of all of them.

What if the explanation is wrong?

Every claim links to its code, so a wrong one is easy to catch. Thumbs-down it or reply. We read every single one.

How long does it take?

A few minutes after the last push. An agent pushing ten times in a row counts as one update.

What does it read besides the diff?

The surrounding code at the pull request's head and base, the description, linked issues, and any pull requests, commits or branches the pull request mentions, in any repository the app can access.

Which languages and frameworks?

Anything on GitHub. Explanations come out in English, whatever the code is written in.

Does it work with GitLab or Bitbucket?

GitHub only, for now.

What about very large pull requests?

Big pull requests get a bigger explanation, and every changed file is accounted for. Anything it couldn't explain is listed under “Not explained”, never quietly dropped.

Is there a free plan?

No. Every invited account gets a trial instead: 10 runs in 14 days, no card. Spend them on the open pull requests you pick at install, or on new ones.

What counts as a run?

Each time the bot writes an explanation, or brings one up to date after a push. Pushes in quick succession count once. Explanations it can reuse unchanged, and pull requests opened by bots, are free.

What happens if we run out of runs, or the trial ends?

New explanations pause until you top up, your plan renews or you pick one. Existing comments say they're paused. Nothing is lost.

Do unused runs carry over?

Plan runs reset every month. Top-up runs last twelve months.

Who's behind it?

ELI5 bot is built by Appstyx, a development studio in Florence, Italy.

Nobody's reading all 4,000 lines. Give them what it decided.

We let teams in a few at a time and only email you about access. Privacy