How Heresay works.

Someone in your app says what's wrong. A person on your team decides. A coding agent can fix it. They hear back.

  1. 1The loop
  2. 2Setting it up
  3. 3What your users see
  4. 4What your team sees
  5. 5Coding agents, safely
  6. 6Where your data lives
1

The loop

Every report ends with an answer the reporter can read.

2

Setting it up

One command for your team. One prompt per app.

A

Your own Heresay

One command creates it in your team's own Google account: a dashboard, an API and the SDK. About five minutes.

$ npx create-heresay
B

Add an app, copy one prompt

Paste it into your coding agent. It connects the repo, installs Heresay and checks the install by itself.

Dashboard Put Heresay in Acme Copy prompt The page ticks over by itself when it's done.
  1. Connect the repo
  2. Install Heresay
  3. Verify it
C

Web, iOS or Mac

On the web it's one script tag. On iOS and macOS it's a Swift package.

Web<script src="…/sdk/v1.js" data-key="pk_…" defer></script>
iOS and macOSimport Heresay
ContentView()
  .heresayReportButton()
3

What your users see

No sign-up. A button, a short form, and the answer.

Help make this app better

A real person reads every report, and you will see what happens to yours right here.

Got itTry it
Report
The Report button and a one-time note that it's there.
AcmeFileEditViewHelp
Acme Help
Report a Problem… ⌥⌘R
On the Mac, it lives under Help › Report a Problem…
ReportYour reportsPreferences
Waiting for the developer

Dark mode resets on reload.

Accepted, being worked on

The export button does nothing.

Fixed

Search misses old notes.

Search now finds notes of any age.
Declined

Where do I cancel my plan?

Why: It's under Settings › Plan.
Your reports: every report from this device, and what happened to it.
Not signed in
Signed in
AK
Signed in as Asha K.The app told Heresay. Nobody asks.
Preferences: a note about their setup. A name and email only if the app hasn't said who they are.
4

What your team sees

One inbox per product, most urgent first.

AcmeWeb · iOS · Mac
AllWebiOSMac
Broken

The export button does nothing.

/export · v1.4.0 · Safari · macOSWeb
Confusing

I can't find where to cancel my plan.

Settings · 2.1 (40) · iOS 18iOS
Could be better

Sync takes a while on first launch.

Library · 2.1 · macOS 15Mac
Idea

Let me pin a note to the top.

/notes · v1.4.0 · Chrome · WindowsWeb

Priority comes from the type

The reporter picks what it is. Nobody picks their own priority.

  1. Broken
  2. Confusing
  3. Could be better
  4. Idea

Every platform, one inbox

Web iOS Mac One inbox

Details, attached

Page or screenApp versionBrowserOSDevice
5

Coding agents, safely

Reports come from the public. A person stands between them and your code.

Accepted only

Agents see briefs a person accepted, for the apps in their repo. Never open reports.

A description, not instructions

The reporter's words are fenced and labelled, so a report can't steer your agent.

"""
The export button does nothing.
"""

People decide

Agents never accept or decline. They claim a brief, fix it and mark it fixed.

npx heresay connect

Adds files you commit. The token stays on your computer.

  • .mcp.jsonthe Heresay MCP server
  • .claude/skills/heresay/a short skill
  • AGENTS.mda Heresay section
  • ~/.heresaythe token, outside the repo
whats_new, before any Heresay task
Heresay can now show people a one-time note that the Report button exists. Want me to add it?
Yes, add it.
No feature is added without a yes. A no is remembered.
6

Where your data lives

In your own Firebase project. Not on anyone else's servers.

No accounts for reporters

A random device id lets people see their own reports. Your app can pass a name or id if it knows one.

No screenshots, no cookies

What they typed, the type, and the context above. Nothing else.

Yours to remove

npx create-heresay remove deletes a Heresay you set up.

Every report gets a hearing.