Understand, review, and fix the code your agents write.

DifVi is a Mac workspace for AI-written code. Explore changes as a map, inspect the code and running app, and send targeted feedback to your coding agent.

Mac appFree during the closed betaDetails by email right awaySee the workflow

Works with Claude CodeCodexCursor

Your agent wrote 200 files. Can you explain them?

Agents change hundreds of files in minutes. You still have to answer for every one of them.

  1. 01Why did it add another table?
  2. 02Is this more complicated than it needs to be?
  3. 03How does this change the architecture?
  4. 04Will the next change build on a sensible foundation?

The questions are simple. Finding the answers in a 200-file diff isn't.

One change, from first look to fixed

DifVi maps the change and walks you through it in the order the data flows. Then it checks what could break, and sends the fix back to your agent.

working tree redeemGiftCard › 4 effects 0/7 viewed
AGENTS.md
8## HTTP and logging
9- Use httpClient for outbound HTTP. Never call fetch directly.
10- No console.* in src/. Use the logger.

One click writes a walkthrough of the change in the order the data flows

Share it internally so your team quickly knows exactly what's shipping. Ask why about any file, or highlight multiple lines and ask What or Why.

working tree DifVi AI

w a tour of the change, in flow order

AI risk checks catch regressions before you merge

When your agent reviews its own work, it only reads the diff. DifVi also reads the code around it: the code that calls what changed, the code that writes the same tables, and your team's rules. So it catches what breaks outside the diff: security holes, lost data, wrong charges and broken callers. It shows you where to look, and you make the call.

Before you merge

A gift card can be redeemed twice

redeem() checks redeemedAt, then charges the order before marking the card used. Two checkouts at the same moment both pass the check.

GiftCardService.ts
18if (!card || card.redeemedAt) throw …
19await this.payments.charge(order, card)
20await this.cards.markRedeemed(card.id)

Worth checking

Refunds skip the gift card

refundOrder() reverses the payment but leaves the gift card balance spent.

Card codes are case-sensitive

findByCode() looks codes up as typed, while new codes are stored in capitals.

Give precise feedback. Review the fix.

Comment on a line, or message the agent about the whole change. Your note goes to the agent that wrote the code, and you review its revision in the same place.

GiftCardService.ts Service · newAgent · whole change
you → Codex
Codex
Tested checkout with a $20 card on a $50 order. The card pays $20, payments charges $30, and both writes land.
2 files changed
Message Codex…Send now
Claude Code · idle

Steps: you comment on a line; the comment is delivered to the agent session that wrote it, via hooks, for Claude Code, Codex or Cursor; the agent fixes the code; the issue clears and the map refreshes.

Point to the problem. Steer the fix.

Open the running app inside DifVi. Select an element or an area, write a note, and your agent gets it with all the context available: the page, the element and the code behind it.

Sent to Claude Code1 note
Note
The total ignores the gift card. It should be $30.00.
Page
localhost:3000/checkout
Element
div.total-row “Total $50.00”
Source
src/components/OrderSummary.tsx:42
Image
The selected area, cropped
Claude Code
The total now subtracts applied gift cards. Checked with a $20 card on a $50 order.
OrderSummary.tsx · 1 file changed

Review any worktree, branch or PR, right in the app

Keep track of every agent you have running: see which ones are working, which are waiting on you, and jump between them from the keyboard.

Grouped by what needs you

All your worktrees and agents in one list. Menu bar, notifications and a dock badge when one is waiting.

Keyboard-first, in flow order

] jumps to the next unviewed file, in flow order. A fix takes four keys.

Keep your coding agent. Change how you work with its output.

Your agent still writes the code, on your own account. DifVi shows you what it did and carries your feedback to it.

Platform
A Mac app for Apple silicon and Intel. It updates itself.
Agents
Claude CodeCodexCursorFeedback goes to the session that wrote the change.
Repositories
Any git worktree, branch or pull request opens as a diff.

The flow map

TypeScript, JavaScript

ServersNext.js, Remix, Nuxt, SvelteKit, Express, Fastify, Hono, Koa, NestJS, tRPC

InterfacesReact, Vue, Svelte

DataPrisma, Drizzle, TypeORM, Sequelize, Knex, Kysely, MongoDB, Supabase, Postgres, MySQL, SQLite

JobsBullMQ, Inngest, Trigger.dev, pg-boss

Python

ServersDjango, FastAPI, Flask

DataDjango ORM, SQLAlchemy

JobsCelery, RQ, Dramatiq

Go

ServersGin, Echo, Chi, Fiber, Gorilla

DataGORM, sqlc, database/sql

JobsAsynq, River

Queries and schemas
SQL and GraphQL
Other languages
Not supported yet. More stacks are coming.

AI built in, privacy enforced

  • Zero data retention. The models behind DifVi AI keep nothing once they've answered.
  • Never used for training. Your code and questions never train a model.
  • The map stays on your Mac. The map, rules and issues never use AI.

DifVi AI is built in: sign in and the summaries, walkthroughs, and What/Why just work. Local model support comes with DifVi Enterprise.

Bringing agents to a whole team?

Evaluate DifVi with your own engineers, codebase and requirements. It starts with a short conversation with us.

Talk to sales

Questions

Do I still read the real code?

Yes. Every file opens as a normal diff. The map shows how the files connect and the order to read them in, so you know where to look first.

Do I need my own coding agent?

Yes. DifVi doesn't write code. Your agent (Claude Code, Codex or Cursor) writes it, on your own account. DifVi shows you what it changed and sends your feedback back to it.

Which agents and stacks?

Claude Code, Codex and Cursor, on macOS (Apple silicon and Intel). The flow map covers TypeScript and JavaScript (Next.js, Remix, Nuxt, SvelteKit, Express, Fastify, Hono, Koa, NestJS, tRPC, with React, Vue or Svelte), Python (Django, FastAPI, Flask) and Go (Gin, Echo, Chi, Fiber, Gorilla), plus SQL and GraphQL. Other languages aren't supported yet. Any git repository, branch or pull request opens as a diff.

Does my code leave my Mac?

The map, rules and issues never use AI and are worked out on your Mac. AI features send the code they work on to DifVi AI, whose model providers are set to zero data retention and never train on your code. For local models, ask about DifVi Enterprise.

Can I use local models?

Yes, with DifVi Enterprise. The AI features can run on a local model you host instead of DifVi AI, so the code they read never goes to us. The map, rules and issues never use AI on any plan.

Is DifVi an AI code reviewer?

You make the call; DifVi makes the review easier. It maps the change, explains it with AI when you ask, and its risk checks point out what could break before you merge. Your feedback then goes back to the agent that wrote the code.

Can I review a GitHub pull request?

Yes. Click + Review in DifVi to open any branch or pull request, compared against its real base.

How does the closed beta work?

DifVi is in closed beta. Leave your email to request access. We read every request and reply by email. There's no pricing yet.

Request access to the closed beta

Available on

Mac appFree during the closed betaDetails by email right awaySee the workflow