early access

The code comprehension layer for building with AI.

download for freehow it works

macOS 12+ on apple silicon · or use hosted

how it works

See the change in seconds.

One feature, end to end: from the prompt you give your agent to the canvas on the merged PR.

01 · your agent

Start with your own agent workflow.

Prompt Claude, Codex or Cursor the way you already do. Narrate plugs in over MCP.

02 · the proposal

See the shape of the proposal at a glance.

View proposed changes as an interactive map, without the noise.

03 · your call

Weigh in, without getting bogged down.

you → claude

This is way over-engineered. … After publishing the canvas, let’s just make a best-effort POST to git host for the comment. … If the comment fails, so be it. …

04 · the result

Align on the final result.

The PR lands as a canvas too. reconcile calls _publish, then _comment_canvas_link, and that’s the whole change.

claude · ~/code/narratemcp · narrate
IDE-138: Canvas link comment on the PRpinned dd96133
#61 feat(reviews): comment the canvas link on the PRmain ← claude/pr-canvas-link-comment
you

After we receive the GitHub webhook and publish the PR canvas, I want to comment back a URL onto the PR itself for easy access. Please generate a Canvas using the narrate MCP to represent the spec. Make no mistakes.

claude

Write.docs/pr-canvas-link-comment.md

narrate · canvas_createIDE-138: Canvas link comment on GitHub

narrate · canvas_edit18 proposed symbols

The spec is written up and drawn as a canvas. _publish writes a PullRequestCanvasComment outbox row in the same transaction. A new controller posts it under a row lock, and the import sweep retries anything still PENDING.

+18 proposed symbolsnew table + migrationoutbox write in _publishrow lockretry sweep

−15 of 18 cutno new table, no outbox, no retryone best-effort comment after _publish

+3 new~3 changedno new model, no migrationa failed comment is logged and dropped

step 1 of 4

why narrate

Build with AI. Own your craft.

01 · confidence

Ship with confidence.

Focus on the high-risk pieces you care about, and skip the noise.

02 · judgement

Weigh in on the system.

Make the calls on UX, maintainability, and extensibility, with business context AI doesn’t have.

03 · velocity

Protect your velocity.

Don’t get burnt out by endless walls of text.

get started

Run locally, or in the cloud.

desktop · local only

Everything stays on your machine.

Point the app at a repo on disk. Narrate indexes it locally and your agents talk over a local MCP. Your code never leaves your machine.

Narrate.appindexes offline
code, indexes, canvases
on this mac
agents
local mcp
github app
no installation

macOS 12 or later, Apple silicon. Other systems coming soon.

cloud · hosted by narrate

A canvas on every PR.

Connect GitHub and we index each pull request on our servers, then comment with a canvas your whole team can open.

narratecommented on #142

Narrate canvas for this PR: app.withnarrate.dev/canvas/62142081

It follows the latest push.

faq

Before you ask.

Which languages?

Python today, with TypeScript coming soon. If your repo is neither, please join the waitlist to let us know what to integrate next!

Is this AI?

Narrate deterministically indexes your code using LSPs, without LLM involvement. Your agents can use Narrate as a shared canvas for you to collaborate on.

Desktop or cloud?

The desktop app runs entirely on your Mac. It indexes repositories already on disk, your agents connect to it over a local MCP, and there’s no GitHub App to approve. The cloud is hosted by Narrate: connect GitHub, and we index each pull request on our servers and comment with a canvas your whole team can open. The two are separate today, so canvases don’t move between them.

What happens to my source code?

On desktop, your code, indexes and canvases never leave your Mac. In the cloud, we temporarily check out your code for indexing but do not retain your source code beyond metadata (such as symbols and relationships). Either way, we do not sell or use your data to train any models.

Does this replace code review, or GitHub?

Neither. It’s where you go to understand something; the approving still happens where it happens today.

languages

More languages are on the way.

Narrate maps Python today. Tell us what you write. We'll email you when it lands, along with the occasional product update.

The language you need

See our privacy policy for how we use your email.