Report widget

Embed a one-line snippet in your own app and reports land as issues.

The report widget is a tiny toolbar you embed in your own app. Anyone you authorize can file a report from the live page — it lands in your Alkahest project as an issue, with the reporting URL and user agent attached.

Embed

<script
  src="https://unpkg.com/@cr8rcho/alkahest-toolbar/dist/toolbar.global.js"
  data-alkahest-project="your-project-slug"
  defer
></script>

That's the whole integration. The script renders nothing for ordinary visitors — the toolbar only appears for people who have activated it (below), so it's safe to ship to production.

Authorize reporters

Reporting uses scoped tokens — a widget token can file reports and nothing else (it can't read your maps, publish, or touch other projects).

  1. A teammate opens your app with ?alkahest=on appended to the URL.
  2. The toolbar appears and walks them through a one-time consent on alkahest.app (they need an Alkahest account with access to the project).
  3. From then on the toolbar is available for them on that browser.

Turning it off

  • A reporter turning it off for themselves — open the panel and hit Turn off toolbar at the bottom. It hides the toolbar on that browser and signs it out; ?alkahest=off in the URL does the same thing without opening the panel. Re-enable with ?alkahest=on.
  • Revoking someone's access — turning it off is per-browser, so to cut off reporting entirely, revoke their widget token on your account's Tokens page (it's the widget: <origin> row). They'd have to consent again to get a new one.
  • Removing it from your app — drop the <script> tag. Keeping the tag but removing data-alkahest-project also disables it (auto-init needs the attribute).

Where reports go

Each report becomes an issue with:

  • the title/description they typed,
  • the page URL it was reported from,
  • the browser user agent.

Triage them like any issue — on the issue map, the project's Issues page, or let your agent pull them over MCP and investigate. Reports show up in the activity journal with a widget actor chip.

Configuration

AttributeMeaning
data-alkahest-projectProject slug (required — its presence triggers auto-init).
data-issue-mapIssue-map slug to file into (omit to use the project's sole map).

Prefer manual init? The script exposes window.Alkahest.init(config) — drop the data-alkahest-project attribute so auto-init stays out of the way.