
Ask, and it shows you
Ask out loud or type. The guide opens the right screen and tab, then lights up the exact control. No tours to write, no selectors to keep alive.
Users ask by voice or text. Wayfind opens the right screen, lights up the control, and says why something is hidden. It never clicks anything that saves, deletes or costs money.
npx wayfind-setup — or one script tag


Ask out loud or type. The guide opens the right screen and tab, then lights up the exact control. No tours to write, no selectors to keep alive.

Every control in the map carries the conditions it renders under — role, plan, feature flag. When something isn’t there, users hear why instead of hunting.

Anything that saves, deletes or costs money is classed at build time. The guide lights it up and hands the click to your user.
No recording, no crawling, no CSS selectors. Wayfind reads what your code already says about every control.
A build plugin stamps a stable ID on every control. IDs survive refactors and copy changes, so links never rot.
screen
/settings
revealedBy
settings.tab-team
gate
user.role === "admin"
risk
commit · user clicks
Labels, routes and conditions only. No source code.
The indexer records every screen, the tab or dialog that reveals each control, who is allowed to see it, and how risky it is.
Settings
Users ask in words. The guide answers from the map, opens the way, and lights the exact control in your live UI.
Never stale. Your CI rebuilds the map on every deploy, so the guide always describes the UI your users actually have.
Realtime voice, in your app. Start talking and it stops to listen. Most answers need no lookup, because every screen change hands the guide a short card of what’s on it.
When it helps, it can glance at the screen — to read a chart title or an error your code didn’t predict. Frames are read as content, never as instructions, and every action still needs an ID from your map.
Prefer typing? Same guide, same map.

Tabs, menus, navigation. Every control is classed at build time; anything that commits, deletes or charges is left for your user.
Passwords, card numbers and API keys are marked in the map. The guide will point to them, never fill them.
The model works from text written in your code and the list of controls on screen. Page text isn’t sent, so a hostile comment can’t steer it. With vision on, frames are read as content, never as instructions.
Indexing runs in your own build. We receive labels, routes, conditions and risk classes. Your source code stays with you.
Who clicks what
| Class | Examples | Who clicks |
|---|---|---|
| safe | Tabs, menus, navigation | Guide may click |
| commit | Save, send, invite | Your user clicks |
| destructive | Delete, archive | Your user clicks |
| financial | Upgrade, pay, refund | Your user clicks |
| sensitive | Passwords, cards, keys | Never filled |
Classed automatically from what each control’s handler does. You review it, and can override any control.
From our own test on a 31,000-line Electron app.
Run it in your repo. It opens a branch with everything wired: the build plugin, a CI step, the connector for roles and flags, and your first map. Review it like any pull request.
No build access? Paste one tag into any web app and the guide learns from the live page. Desktop apps (Electron, Tauri) use the command.
<script
src="https://wayfind.dev/sdk/v1/wayfind.js"
data-key="YOUR_PUBLISHABLE_KEY"
defer
></script>Every plan includes voice, both install modes, and the same safety rules.
Try it on one app.
$0
For a product with real users.
$149/mo
For teams shipping every day.
$599/mo
For security reviews and scale.
Custom
No. Indexing runs in your own build and CI, and only the map is uploaded: labels, routes, render conditions and risk classes. One thing to know: the npx wayfind-setup installer uses an AI assistant (Claude) on your machine to wire up the connector, and it reads your code once while doing that.
Web apps and desktop apps. Code mode supports React, Next.js, Vite, Electron and Tauri. Script mode works on any web app with a single tag, learning controls from the live page.
Your CI rebuilds the map on every deploy. IDs describe what a control is, not where it sits, so a renamed button keeps its ID and nothing you’ve configured breaks.
Only safe ones: tabs, menus, navigation, dialogs that just open. Anything classed as commit, destructive or financial is lit up for your user to click, and sensitive fields are never filled. You can change any control’s class.
Each control in the map carries the conditions it renders under, like user.role === "admin" or a feature flag. Your app tells the guide the current user’s role, plan and flags — nothing personal — so it can explain instead of guessing.
No. Text works everywhere, and voice can be turned off per project. When it’s on, replies typically start within one to two seconds.
Yes, on Enterprise — along with SSO/SAML, a DPA and data residency. Talk to us and we’ll walk through your setup.

Free for your first project. One command or one tag to install.