AI customer support & experience agent

Show, don't tell.

Peeve is an AI customer support agent that resolves questions inside your product. Where a chat widget describes the answer, Peeve highlights it, then clicks it, in your user's own session.

Installs in an afternoon · From $40/mo · No sales call
Ask it: “where do I change my plan?”live on peeve.ai
peevenorthwind.ioHomeSessionsAnalyticsThe BrainAgent channelSettingsWorkspaceGuardrailsPlan & usageTeamSettingsWORKSPACESettings → Plan & usageChange your plan from here. I'll wait while you look.
routed: SHOW · 96ms · confidence 0.94 · app.peeve.aiyou can take over any time

Your help center was accurate eight months ago.

Your product shipped 14 times since. The docs didn't. So your chatbot quotes a page describing a button that moved, your user asks a human, and someone on your team answers the same question for the fortieth time this month.

Peeve doesn't quote the page. It reads your live interface, finds the thing, and takes the user there.

help-center/billing/change-plan
1. Open Settings
2. Click Account & Plan
3. Choose your new tier
broken · renamed 4 months ago
what Peeve sees instead
/settings/billing → “Plan & usage”
verified 6 minutes ago · confidence 0.94
The Peeve Ladder

Peeve climbs only as far as it needs, and hands off before it guesses.

Four rungs of effort: Answer, Show, Do, Escalate. Peeve starts with the lightest touch and steps up a rung only when the question demands it, deciding which one in about 150 milliseconds.

01
the first rung
Answer
The lightest touch: returns the answer with its source attached.
“what's included in Pro?”
Answer
02
↑ climbs when the answer is a place, not a fact
Show
Peeve moves through your interface and does it on screen, at human speed.
“how do I invite a teammate?”
Show
03
↑ climbs when it needs your backend
Do
Peeve executes the action, after confirming the exact effect first.
“cancel my subscription.”
Do
04
↑ climbs when it can't resolve safely
Escalate
Hand off, in-product
Peeve opens a ticket carrying the full session, rather than guess.
“I was charged twice.”
Hand off
04Escalate03Do02Show01Answer04EscalateCreate ticketdefaultTalk to a humanfallback03Doresolves here02Showresolves here01Answerresolves here“what's included in Pro?”“how do I invite a teammate?”“cancel my subscription.”“I was charged twice.”decided in ~150ms

Peeve never climbs past what's safe. Unsure between showing and doing, it shows. It won't execute something you asked it to explain.

What you're replacing

One agent instead of five tools that don't talk to each other.

Deflection
A chat widget that describes the answer
Peeve shows it on the live screen, and only bills when it resolves.
Onboarding
An authored tour that breaks every deploy
Peeve walks users through your real product, generated live, never re-recorded.
Analytics
A separate stack to guess where users stall
Every session already measures the routes they get stuck on, in their words.
Escalation
Routing rules that hand over “user needs help”
Hand-offs carry the full session into the helpdesk you already run.
Lead capture
A sales chatbot bolted onto your marketing site
Peeve catches buying intent inside the product and qualifies it in the moment.
Five subscriptions, five dashboards, five things to keep current, or one install where a single registry feeds every surface and one loop keeps it true.
Does real backend work

It doesn't just answer. It works your backend.

Connect your own tools two ways (your MCP server, or any REST API) and mid-conversation Peeve reads live data and takes real actions for your customers. No SDK, no integration project: minutes, not weeks.

Custom API ConnectorScale

Paste your API docs and Peeve builds the connector itself: base URL, auth, and every endpoint, each marked read or write. Reads run live to answer with current data; writes, like a refund, always run through a confirmation step and a workspace allow-list.

Custom MCP ServerGrowth and up

Already run an MCP server? Peeve plugs straight in. A live handshake discovers the tools it exposes, and you choose which the assistant may use. Anything that changes state runs through the same confirm guardrail.

Reads are automatic
Every write is confirmed and allow-listed. Nothing changes in your systems without approval.
You pick what's enabled
Turn individual tools and endpoints on or off; the auto-built connector is fully reviewable.
Credentials stay yours
Encrypted per workspace and never shown again. The model never sees a token.
Two kinds of users

Your users have agents now. Peeve serves those too.

Humans
Invite teammate
The cursor moves, narrates, and pauses before it acts. Rendered as motion, in the session they're already in.
Agents
POST /mcp/tools/call
{ "tool": "invite_teammate",
"input": { "email": "sam@northwind.io",
"role": "editor" },
"dry_run": true,
"effect": "Adds 1 seat. Bills $12 on Nov 1." }
The same capability, rendered as a typed tool with its effect stated before it runs. Agents get the same permissions as your users, never more.

One capability registry. The cursor renders it as motion. The MCP server renders it as tools. Neither is maintained separately.

The agent channel →
Agent integrations

Bring your own agent. Peeve serves it the same answers.

Claude, OpenAI, Hermes, OpenClaw (or any MCP client) connects to a scoped endpoint and gets your capabilities as typed tools, each stating its effect before it runs.

your users' agentsyour capabilities, as typed toolsClaudeOpenAIHermesOpenClawagent channel · MCPmcp.peeve.ai/…/u/…invite_teammatechange_plandownload_invoicesame permissions as the user, never more
Claude logoClaude
Add Peeve as a custom MCP connector.
OpenAI logoOpenAI
Connect over MCP; call your tools.
Hermes logoHermes
Connect the Hermes agent over MCP.
OpenClaw logoOpenClaw
Connect the OpenClaw agent over MCP.
See the agent channel →
Self-healing

Rename a button. Peeve notices before your users do.

Every session scores how confidently Peeve found each element. When a score falls, that route is flagged, re-captured on the next visit, and diffed against the map. A rename merges automatically. Anything structural waits 30 seconds of your attention.

Chat widgets can't do this. They never touch your interface, so they have no signal to collect.

How the Brain works →
/app/settings/billing/teamflaggednot mapped
verified
flagged
not mapped
Intent detection

Every pricing view and cancel click, tied to real revenue.

Peeve reads intent straight from your existing pricing cards and cancel buttons. No events to wire up. You see at-risk and upgrade-ready users the moment they act, even if they never open the assistant.

your pricing card: markup you already have
Growth
$99/yr
data-peeve-plan="Growth"
data-peeve-amount="$99.00"
data-peeve-currency="USD"
data-peeve-interval="yearly"
passive signal
the signal Peeve captures
{
  kind: "pricing_view",
  plan: "Growth",
  amount: 99,
  currency: "USD",
  interval: "yearly"
}
Zero-code capture
Add a few data-peeve-* attributes to markup you already have. No SDK calls, no event tracking.
Passive by design
Signals fire on a pricing view or a cancel click, even with the assistant closed.
Revenue-aware
Every signal carries the plan, amount, currency and interval, so intent ties to the money at stake.
Goal-aware conversations
Peeve knows whether each chat actually solved the user's problem, or was abandoned.
How intent detection works →Read the developer docs
Try it on your own product

Not ready to install? Start with a number.

Two free tools, no signup: see how stale your help center is, and what your support questions cost today.

Install

One command. No migration project.

Then a 20-minute guided walkthrough where you use your own product once while Peeve records the routes.

Read the developer docs →
TerminalCopied
$ npx peeve init
# detects your framework, adds the snippet, writes peeve.config.json
$ npx peeve verify
# 48 routes · good accessibility data · 2 canvas regions flagged
Loading and status lines say what they found. Never just that they're working.

Peeve can't navigate canvas-only interfaces. It says so before you spend twenty minutes setting it up.

Every capability carries a confidence score. Below 0.60 Peeve stops and hands off rather than guessing.

Pricing

Published, because everyone else hides it.

Starter
$40/mo
1,000 creditsNo agent channel2 members
Start free
GrowthMost Popular
$199/mo
5,000 creditsAgent channel, full5 members
Start free
Scale
$499/mo
16,000 creditsUnlimited agent grants10 members
Start free
14 days free, no card. Annual is two months free. Hard cap by default. You're never billed for overage you didn't buy.See the full pricing page →

Questions people ask.

Each answer is 40–60 self-contained words: subject named, no pronouns pointing backwards, one concrete number.

What is Peeve?

Peeve is an AI customer support and experience agent that installs into your web product with one snippet. It answers questions, shows users how by moving through your real interface, does tasks on your backend with confirmation, and hands off to your team with the full session attached.

How is Peeve different from a chatbot?

A chatbot returns text describing where something is. Peeve moves a cursor to it and clicks. Both answer; only one of them acts inside the interface the user is already looking at.

How long does installation take?

An afternoon. One command (npx peeve init) detects your framework and adds the snippet, then a roughly 20-minute guided walkthrough records your routes while you use your own product once. Nothing is live until you turn it on.

Does Peeve need my users' passwords?

Never. The model never sees a password or a session token. It requests a capability by name and an execution service maps that to the call, so a prompt injection can ask for a capability but never for an arbitrary request.

What happens when Peeve doesn't know?

It stops and says so. Every capability carries a confidence score; below 0.60 Peeve hands off rather than guessing, and conversations where it found nothing and said so are never billed.

Can AI agents use Peeve?

Yes. Your users connect their own Claude, OpenAI, Hermes, OpenClaw or custom agent to a scoped MCP endpoint and get your capabilities as typed tools with the effect stated before each runs. Agents get the same permissions as your users, never more.

What does Peeve cost?

Three public plans: Starter $40, Growth $199 and Scale $499 a month. One pool of credits powers every channel (a conversation is 1 credit per 24-hour window, voice is 0.5 credit a minute) with a hard cap. At typical completion that works out to about $0.06 per resolved conversation on Growth, against Intercom Fin's $0.99 per resolution.

Does Peeve work with Intercom or Zendesk?

Yes. Peeve resolves in-product how-do-I questions and hands off everything else to the helpdesk you already run (Zendesk, Intercom, Linear or a webhook) carrying the full session, so your existing tools keep working and their bill goes down.

Why we built this

I got tired of watching support teams answer the same question for the fortieth time — a question the docs should have answered, if the docs hadn't gone stale the moment the product shipped. Describing an interface that keeps moving is a losing game.

So we stopped describing the interface and started reading it. Every session is a measurement, and the measurements keep the answers true. When Peeve can't do something safely, it says so and hands off — it never guesses.

Arslan Nasir
Founder, Peeve
SessionsRoutesElementsConfidenceDriftConflictsCoverageThe Brain
14-day trial, no cardInstalls in an afternoonRead-only until you widen itKill switch in one commandCancel anytime, no lock-in

Install Peeve. 14 days free. No card. No call.