For freelancers and agencies · On your Mac

Your clients report bugs. Keanu hands you the fix.

10 min of review per fix, not 2 hours

Each client bug gets its own branch, its own fix and a second agent to check it. You review and send.

See it work

One client email, start to finish: issue, investigation, branch, fix, independent verification, pull request, reply.

keanu · Wayfinder
Share Sign Out
Issue Board + Issue Scan now

Issue Board

Scanning inbox… 1 new email from priya@acmenotes.example Triaged · matched sender to acme-notes · bug · high · no duplicate found
Project All projects (3) ▾
Pending approval0

Nothing waiting on you.

#1Share modal cuts off the URL on mobile

High

· investigating

acme-notesbug
2026-04-01pending_approval
ApproveReject
Active1

#2Add an Export as Markdown button to the note toolbar

Medium
acme-notesfeature
2026-04-02AutoWayfinder Passapproved
Resolved1

#3Typo in the welcome email subject line

Low
acme-notesbug
2026-03-28resolved
Reopen

← Back to Board

#1Share modal cuts off the URL on mobile

High
acme-notesbugpending_approvalSync to GitHub
Before you decideRe-investigate

Investigating ·

Keanu is checking the code for whether this already exists or is already open. Usually a few minutes.

read IMG_4412.png from Priya’s email

grep “share” src/components → ShareModal.tsx

your dev server on :3000 is up · opening /n/8f2k3q at 375px

Reproduced · High confidence

The share dialog’s URL field is 420px wide. At 375px it runs past the dialog edge and pushes the Copy button out of view.

  • attachmentIMG_4412.png · the client’s screenshot: the link is cut off at the right edge
  • codesrc/components/ShareModal.tsx:38 · width: 420px on the URL input
  • screenshotinvestigate-1.png · your dev server at 375px: link clipped, Copy button off screen
    acmenotes.example/n/8f2k3q…

▸ What it tried (3)

claude-sonnet-5-5 · 4/1/2026, 9:58:02 AM

Approve Re-analyze with context Reject Resolve manually

Read-only, before you spend anything. The reproduction becomes the first thing the fix has to prove. Approve stays enabled whatever the verdict.

← Back to Board

#1Share modal cuts off the URL on mobile

High
acme-notesbugpending_approvalSync to GitHub
Before you decideRe-investigate

Reproduced · High confidence · 3 pieces of evidence

Approve Re-analyze with context Reject Resolve manually
Approved by @you (dashboard)
WayfinderWayfinder Running

Iteration: 1   Started: 4/1/2026, 10:02:14 AM

worktree ../acme-notes-1-share-modal · branch fix/1-share-modal-cuts-off-the-url · master untouched

dev server for this worktree on :4123 · ready

Attachments+ Upload Media
IMG_4412.png · from Priya’s email

Issue: Share modal cuts off the URL on mobile

Proposed action. Make the URL field shrink with the modal, truncate the link with an ellipsis, keep the Copy button in flow under 400px, verify at 375px and 414px before opening the PR.

← All sessions

wayfinder-2026-04-01-acme-notes-share-modal-cuts-off-the-url

Running Completed

issue-triage   pid 48213   4/1/2026, 10:02:14 AM   ended 10:09:41 AM   exit 0

Output view Full logLatest only

===== WAYFINDER RUN backend=claude model=claude-opus-5-5 =====

Wayfinder — Contract Generator

  Issue: 2026-04-01-acme-notes-share-modal-cuts-off-the-url-on-mobile.md

  Project: acme-notes

✓ Contract written: 4 acceptance criteria — the first from the reproduction

Reading src/components/ShareModal.tsx

Found: URL input has a fixed width (420px); wider than the dialog on phones

Edited src/components/ShareModal.tsx (+9 −4)

Edited src/components/ShareModal.module.css (+5 −2)

Tests: 24 passed, 0 failed

Evaluator: scoring the diff against the contract…

✓ Score: PASS — 4 of 4 criteria, each quoted from git diff

Independent verifier: fresh session, contract and diff only, no transcript…

✓ Verdict: VERIFIED — 24 tests re-run, 375px and 414px re-checked in the browser

WayfinderPass — Ready for Approval

Iteration: 1   Started: 4/1/2026, 10:02:14 AM

VerificationVerified

· Visual verification · browser check on the worktree’s dev server

acmenotes.example/n/8f2k3q…
375px before
acmenotes.example/n/8f…
Copy
375px after
acmenotes.example/n/8f2k…
Copy
414px after
  • ✓ 375px: link truncates inside the dialog
  • ✓ 414px: Copy button visible and tappable
  • ✓ Desktop layout unchanged
  • 3 screenshots attached to the issue
gen-1 ▸
eval-1 ▾

Score: PASS

[x] Criterion 1: URL field shrinks with the modal  — evidence: +width: 100%; min-width: 0;

[x] Criterion 2: link truncates with an ellipsis  — evidence: +text-overflow: ellipsis;

[x] Criterion 3: Copy button stays in flow under 400px

[x] Criterion 4: verified at 375px and 414px  — 3 screenshots

verify-1 ▾

Verdict: VERIFIED

Independent session: contract, diff, and changed files only. No access to the run above.

npm test → 24 passed. Browser: 375px and 414px re-checked, 2 screenshots.

Approve & Commit Merge to Local Master Resume Session New Run Discard Changes

Supervised project: Approve & Commit is yours. On an Automatic project, Keanu commits and opens the pull request once the verifier passes.

← Back to Board

#1Share modal cuts off the URL on mobile

High
acme-notesbugin_reviewSync to GitHub
Pull Requestacme/notes/pull/118 →
Approve & Merge PR Iterate on Fix Push Updates to PR Review on GitHub →
Pending reviewReview on GitHub →

▸ Wayfinder eval report

▸ Verifier report · VERIFIED

2 files changed +14 −6

src/components/ShareModal.tsx+9 −4

src/components/ShareModal.module.css+5 −2

Client replyDraft in Gmail

To: priya@acmenotes.example · Re: Share link is cut off on my phone

Hi Priya, thanks for the screenshot. The share dialog used a fixed-width link field that didn’t fit phone screens. It now shrinks to the dialog, the link truncates cleanly, and the Copy button stays visible. Verified on iPhone-sized viewports; it’ll go out in the next deploy.

Waiting for you. Nothing merges, and no client reply goes out, without your sign-off.

Replica of the dashboard, using the sample project that ships in every install.

What happens at each step

  1. 01Capture

    Client email, screenshots, and GitHub comments become one issue record with project context.

  2. 02Investigate

    Before you decide, a read-only session checks the request against the code and your running app. It tells you when the feature already exists, when a bug does not reproduce, or when it matches an open issue, with the evidence, so a reply can be one click instead of a fix run.

  3. 03Isolate

    You approve. Projects linked to a GitHub repo get a branch and worktree per issue, so your main branch changes only when you merge.

  4. 04Execute

    Wayfinder, on Claude or Codex, reads the code, edits, tests, and records the changed files. A reproduced bug is the first thing the fix has to prove it changed.

  5. 05Verify

    A second session that never sees the agent's transcript re-runs the tests and browser checks and returns a verdict. Nothing commits without VERIFIED or a typed override that stays visible on the issue and in the pull request.

  6. 06Handoff

    Keanu commits and opens the pull request with the fix summary and the verifier's evidence. You merge, or send it back. After the merge, Keanu drafts the client reply for you to send.

Several fixes at once, on your Mac

Every fix runs in its own copy of the repo with its own dev servers, so several run side by side; how many depends on your Mac and your agent plan. Runs on your machine against your own repos, dev servers, and GitHub account, on the coding agent plan you already have, Claude Code or Codex. Prompts go only to the agent you choose. No Keanu server ever sees your code.

You set how much it does alone

Set the automation level per project. Supervised stops after the verifier and waits for your Approve & Commit. Automatic commits and opens the pull request once the verifier passes. Either way, nothing launches, merges, or replies to a client without a person.

The problem
"

You're a solo developer or small agency. Email is your inbox and your bug tracker and your feature request system. Every "quick fix" is an interruption. By the time you actually code, half your day is gone to triage.

How Keanu earns trust

Built for the work around the code.

Generic agents can write code. Keanu keeps the operational proof: what was checked before you approved, where the work ran, what changed, and who verified it. Every claim here is one you can read in the files on your own Mac.

One developer, one live client platform.

client requests triaged
287
resolved, 152 of them as pull requests
175
typical agent fix run
~15 min
developer time per fix, down from 2+ hours by hand
10 min

About 540 hours of developer work, for about 50 hours of review.

“Every client fix used to cost me two hours, minimum. Now it’s ten minutes of review. Keanu gave me my life back.”
Warren, co-founder

Counts from Keanu's issue records and the project's git history. Developer time is the developer's own; hours of work by hand are the low end of an estimate from each fix's size. Client not named.

Independent verifier

A fresh session that never sees the agent’s reasoning re-runs the tests and browser checks and returns VERIFIED or REJECTED with feedback. Its verdict is bound to the exact tree it judged. No commit without a verdict or a visible override.

Fix runs cannot push

A fix runs in its own worktree with the push URL disabled and no GitHub token in its environment. Commits and pull requests happen afterwards, from the dashboard, after the verifier.

Evidence before approval

Every issue arrives with an investigation: the file where the feature already lives, the step where the bug reproduces, or the open issue it duplicates. You decide with the evidence, not from the client’s wording.

Every claim traceable

The install is plain files on your Mac. The Verify it yourself page maps each claim on this site to the file that enforces it, and says which rules are code and which are prompts.

Client-ready replies

The follow-up is drafted in Gmail from the actual PR, changed files, and verification notes, and saved as a draft. You read it and press send.

Built with Keanu

We run Keanu on Keanu and on our own client projects. Every release is installed on a clean macOS VM and walked from issue to merged pull request before it ships.

What is in the box

Engineering operations, not just code generation.

Keanu owns the whole job: from the client’s email to a verified pull request and the reply that closes the thread.

Inbox triage

On each scan, client emails from Gmail and GitHub issue comments get classified, deduped, and routed into structured issues — so you start from a clean queue, not a full inbox.

Investigation before approval

Every new issue gets a read-only look at the code, the attachments, and your running app. The findings sit above the Approve button: the feature already exists under Advanced Search, the bug reproduces on step three, or this matches an open issue. Reply, reject, or build, with the evidence in front of you.

Runs on your machine

A Mac app that works against your own repos, dev servers, keys, and GitHub account. Prompts go only to the agent you choose: Anthropic for Claude Code, OpenAI for Codex. Nothing goes to a Keanu server.

Automation level per project

Supervised stops after the independent verifier and waits for Approve & Commit. Automatic commits and opens the pull request once the verifier passes, and resumes a rejected fix once with the verifier’s feedback. Launch, merge, and client replies are always yours.

Changed-file review

See what the agent touched before approving the commit or publishing the PR.

Model routing

Wayfinder runs on the agent plan you already have: Claude Code, Codex, or both. With both, a run that hits a usage limit on one continues on the other.

Dev-server registry

Track issue-specific public/admin servers and recover crashed sessions from the dashboard.

Reply drafting

Turn the technical fix into a Gmail draft grounded in the actual issue history. You read it and press send.

GitHub-native

Opens real pull requests, links them to the issue, and works inside your existing GitHub flow — no parallel tracker to maintain.

Your backlog too

Not just client tickets. Point Keanu at your own bugs and feature ideas — submit an issue or email yourself — and it runs the same verified loop on your own product.

Pricing

Pick the plan that fits your client load.

Every plan is self-serve: buy, install, and run it on your own Mac. If you want a hand getting started, book a paid setup session and we configure Keanu with you on a real repo.

Every plan includes

  • The full loop: intake, investigation, Wayfinder, independent verifier, pull request, reply draft
  • Fixes run in parallel, as many as your Mac and agent plan handle
  • Claude Code, Codex, or both, on the plan you already have
  • Supervised or Automatic, set per project
  • Every update while you are subscribed
  • Runs on your Mac (macOS 13 or newer)
Questions first? Send us a message. Want help getting set up? Book a 90-minute setup session ($300) and we configure Keanu with you on one of your repos. Keanu is a self-hosted Mac app: it runs on your machine, on the agent plan you already have (Claude Code, billed by Anthropic, or Codex, billed by OpenAI), alongside Cursor, Copilot, Codex, and your existing GitHub workflow. See the install guide.
FAQ

Common questions

Who is this for first? +

Small agencies, studios, freelancers, and founder-led teams that maintain several client codebases and still receive important work through email or GitHub comments.

Is this autonomous? +

As far as you set it, per project. Launching work always takes a person: you in the dashboard, or a trusted approver commenting /approve on the GitHub issue. After that, Supervised waits for your Approve & Commit once the independent verifier passes, and Automatic commits and opens the pull request for you. Merging and sending the client reply are always yours.

What does the verifier check? +

After a run reports PASS, a second session with no access to the first one’s reasoning gets the contract, the diff, and the changed files. It re-runs the tests and browser checks itself and returns VERIFIED or REJECTED with feedback. Approve & Commit needs VERIFIED or a typed override, and overrides stay visible on the issue and in the pull request.

What happens when the verifier rejects a fix? +

On a Supervised project the feedback sits on the issue and one click resumes the run with it. On an Automatic project Keanu resumes once on its own (you choose 0 to 3 resumes), then stops and marks the issue Needs you.

What if the feature already exists, or the bug does not reproduce? +

Keanu checks before you approve. A read-only session searches the code for the capability, reads the client’s screenshots, and, when your dev server is up, opens the page and follows the client’s steps. The issue shows the finding with its evidence: the file and route where the feature lives, or what happened on each step. For a feature that exists or a question, a reply is drafted for you to send. Approve stays available either way; the decision is yours, the reading is not.

Can I check what Keanu does before I install it? +

Yes. The Verify it yourself page lists every claim on this site, says whether code or a prompt enforces it, and names the file on your Mac to read or the string to grep for. It also shows how to try the install in a throwaway macOS VM first.

Where does the code run? +

On your Mac, against your own repos, dev servers, and GitHub account, on the agent plan you already have. Prompts and diffs go only to the agent you choose: Anthropic for Claude Code, OpenAI for Codex. No Keanu server sees your code.

What is Founding Developer? +

It is a paid self-service subscription for experienced developers who want local install docs, the starter Wayfinder flow, and setup guidance without a concierge rollout. The founding price is locked while the subscription remains active.

What do I get with self-service? +

You get access to the licensed Keanu runtime, the starter Wayfinder flow, setup documentation, GitHub/model provider configuration guidance, and product updates included with your active subscription.

Why is this priced above AI coding assistants? +

Keanu is not another editor assistant. It works alongside Cursor, Copilot, Claude Code, Codex, and GitHub to manage the client-issue-to-verified-PR workflow around those tools.

Which models does it use? +

Your choice at install: Claude Code, Codex, or both, each on your own plan. With both, a run that hits a usage limit on one continues on the other; the fallback setting on a project can keep it on one agent.

Which plan should I choose? +

Choose by how many client projects you run through Keanu: Founding Developer covers 1, Developer Pro 5, and Agency 20. Every plan is self-serve. If you want Keanu configured with you around a real client project, approval rules, and verification, book a 90-minute paid setup session.

What happens after I subscribe? +

You receive the next steps for local setup, including access instructions, setup documentation, and the starter Wayfinder flow for your first active project.