Someone in your app says what's wrong. A person on your team decides. A coding agent can fix it. They hear back.
Every report ends with an answer the reporter can read.
One command for your team. One prompt per app.
One command creates it in your team's own Google account: a dashboard, an API and the SDK. About five minutes.
Paste it into your coding agent. It connects the repo, installs Heresay and checks the install by itself.
On the web it's one script tag. On iOS and macOS it's a Swift package.
<script src="…/sdk/v1.js" data-key="pk_…" defer></script>import Heresay
ContentView()
.heresayReportButton()No sign-up. A button, a short form, and the answer.
A real person reads every report, and you will see what happens to yours right here.
Dark mode resets on reload.
The export button does nothing.
Search misses old notes.
Where do I cancel my plan?
One inbox per product, most urgent first.
The export button does nothing.
/export · v1.4.0 · Safari · macOSWebI can't find where to cancel my plan.
Settings · 2.1 (40) · iOS 18iOSSync takes a while on first launch.
Library · 2.1 · macOS 15MacLet me pin a note to the top.
/notes · v1.4.0 · Chrome · WindowsWebThe reporter picks what it is. Nobody picks their own priority.
Reports come from the public. A person stands between them and your code.
Agents see briefs a person accepted, for the apps in their repo. Never open reports.
The reporter's words are fenced and labelled, so a report can't steer your agent.
""" The export button does nothing. """
Agents never accept or decline. They claim a brief, fix it and mark it fixed.
npx heresay connectAdds files you commit. The token stays on your computer.
.mcp.jsonthe Heresay MCP server.claude/skills/heresay/a short skillAGENTS.mda Heresay section~/.heresaythe token, outside the repowhats_new, before any Heresay task
In your own Firebase project. Not on anyone else's servers.
A random device id lets people see their own reports. Your app can pass a name or id if it knows one.
What they typed, the type, and the context above. Nothing else.
npx create-heresay remove deletes a Heresay you set up.