Get started with Diffline

Diffline is a preview extension for reviewing GitHub pull requests in VS Code or Cursor. Install it from a VSIX package. It is not on the VS Code Marketplace or Open VSX yet.

What you need

Download and install

  1. Download diffline-0.3.2.vsix from the download form: enter your email and the download starts.

  2. Install it from a terminal:

    code --install-extension ~/Downloads/diffline-0.3.2.vsix
    

    In Cursor, use the cursor command instead:

    cursor --install-extension ~/Downloads/diffline-0.3.2.vsix
    

    If cursor isn't found, run Shell Command: Install 'cursor' command from Cursor's Command Palette.

    Or, in either editor, run Extensions: Install from VSIX… from the Command Palette and select the file you downloaded.

  3. Reload the window if prompted.

Open your first review

  1. Click the Diffline icon in the activity bar.
  2. Run Diffline: Choose Agent Harnesses… and choose Claude Code, Codex or Pi.
  3. Pick a pull request from the sidebar.
  4. Press Run to start the agents. Read the briefing, then follow the chapters or the Map.
  5. Add your comments, or add an agent finding to your review and edit its wording.
  6. Finish review collects your summary, comments and decision. Preview what's sent shows the exact requests. Post now sends the review to GitHub.

To review any pull request, copy its GitHub link and press ⌥⇧⌘P on macOS or Ctrl+Shift+Alt+P on Windows and Linux (Diffline: Open a Pull Request…). The box starts with the link from your clipboard; press Enter.

A Diffline link opens a review straight from a browser, a chat or a terminal:

?pr=acme/web%23123 works in place of ?url=. Diffline: Copy Link to This Review copies the link for the open review, to keep in your notes. The first time, your editor asks whether Diffline may open the link: choose Open, or tick Do not ask me again for this extension. Extensions: Manage Authorized Extension URIs... undoes that. Chat apps often don't make these links clickable; the GitHub link with the shortcut works everywhere.

A link only opens the review and adds it to the sidebar. It never runs the agents or posts anything.

The page shows as soon as GitHub answers, with the description, discussion, checks and agent briefing, and "Loading the changes…" until the diff is ready. On a large pull request that's about a second, and the changes follow a few seconds later without reloading the page.

See where each pull request stands

Each sidebar row says how you reviewed the pull request, when, and what changed since: "you approved 2d ago · new commits", "you commented 5h ago · updated since", or "re-requested" when your review is asked for again. Rows also say draft, conflicts, merged or closed. Hover a row for your review's commit, the approvals and the agents' last run.

Pull requests you reviewed or wrote stay listed for 3 days after they're merged or closed, under Recently merged or closed. Set diffline.watch.recentlyClosedDays to change that, or to 0 to turn it off.

The list shows as soon as GitHub answers. Recently merged or closed pull requests, your teams' review requests and others you could review load a few seconds later, then refresh every 5 to 10 minutes. Press Refresh in the sidebar to check everything at once.

On the review page, a line under the title says where you stand, such as "You approved this 2 days ago at abc1234 · 3 new commits since". If the pull request is merged or gets new commits while you read, a bar offers Refresh instead of reloading the page under you.

Hand a review to your agent

To work on the findings in Claude Code, Codex, Pi or a chat, press Copy for an agent in the briefing's header and paste. Its menu offers Copy all findings, Copy open findings only (without the ones you dismissed or added to your review) and Save as Markdown…. Diffline: Copy Agent Review as Markdown does the same from the command palette or a pull request's menu in the sidebar.

The Markdown holds what an agent needs to find the code: the repository, pull request and branches, the commit the agents reviewed and the merge base with commands to check them out, and each finding's file and line in that commit with a GitHub permalink. It also holds the summary, the description check, each finding with its status, the checked notes, the reading order and the flows as Mermaid charts. Diffline builds it on your computer and only copies or saves it. It includes lines of code, so paste it only where that code may go.

Automatic runs and usage

Automatic runs are on by default for pull requests that request your review by name. They wait for a two-minute quiet period after a push, skip drafts, and stop after five automatic runs per pull request. Pull requests over 100 files or 5,000 changed lines require a manual run. Team requests and assignments do not start agents automatically. When someone has already approved a pull request, Diffline asks before running the agents on it, to save usage: skip this pull request, run anyway, or always skip approved ones. Set diffline.agents.approvedPullRequests to skip or run to stop asking.

To start every run yourself, turn off diffline.agents.autoRun before installing, or during the first two minutes after startup.

Diffline adds no charges of its own. Agent usage counts against your Claude Code, Codex or Pi provider account's limits or API billing. Five agents run by default, plus a short process for the briefing's opening line. Diffline: Show Agent Log shows token usage and, for Claude Code and Pi, cost. With a subscription sign-in, Pi's cost is an estimate at API prices, not a charge.

Make the agents yours

Settings live on your computer in ~/.diffline/agents.yml. Instructions live in ~/.diffline/agents/<id>.md under Look for and Leave alone.

Use Diffline: Customize Agents… to edit them. Diffline: New Agent… creates a reviewer with your own name, focus and instructions. You can choose a harness and model per agent. Changes apply to the next run.

With Pi, agents use Pi's own default model and thinking level. To choose others, run Diffline: Choose Agent Harnesses…, pick Pi, then Choose Pi model…, or set diffline.pi.model and diffline.pi.thinking.

Review metrics

Run Diffline: Show Review Metrics, or choose Review metrics on Home, to see your reviews per week, which agents' findings you use, dismiss or leave open, and what agent runs cost. Pick the last 7, 30 or 90 days or all time, and group the agents by agent, harness, model or thinking level. You can export the numbers as CSV or JSON.

Diffline records what you do with each agent finding, the description rules you ask about or skip, each review you post (its decision, comment counts, how much you marked reviewed and the time the page was in use) and each agent run (duration, tokens and cost). It keeps finding titles, but no code, diffs or comment text.

The record is a file on your computer, metrics/events.jsonl in the extension's storage, readable only by your account. It is never sent anywhere. It is on by default: turn off diffline.metrics.enabled to stop recording, and run Diffline: Delete Review Metrics to delete the file.

Where your data goes

Drafts, reviewed marks, finding decisions, agent results, cached diffs and your review metrics stay in the editor's local extension storage. Settings stay in ~/.diffline.

The agents run on your computer through Claude Code, Codex or Pi. Those CLIs send the diff, PR title, description, review threads and files the agents read to Anthropic, OpenAI or the provider you use with Pi, under your account's terms. Running locally does not mean offline inference.

GitHub reads and commit fetches use gh and git. Writes happen only when you press Post now. Agents operate on a separate checkout with read-only limits; they do not modify your working clone. Diffline has no telemetry: the review metrics stay on your computer.

In SSH, WSL and container workspaces, the extension runs remotely. Install and sign in to git, gh and the agent CLI in that environment.

If something looks wrong

Read the feature reference or architecture notes for more detail.

Documentation for Diffline 0.3.2.