Notifications

Get pinged in Slack or Discord the moment an agent needs you.

What fires a notification

Alkahest posts to your project's webhook when an agent (or CLI) write creates something waiting on a human:

  • an agent posts a decision question on an issue (ask_issue over MCP),
  • an issue is assigned — at creation, or by a later update.

The message carries the project, the issue, the question's first line, and a deep link:

❓ Decision needed in alkahest · Widget token policy "Rotate widget tokens on every deploy, or keep them long-lived?" — asked by claude alkahest.app/home/p/alkahest/issues

Set it up

  1. Create a webhook in Slack or Discord. Discord — channel settings ⚙ → IntegrationsWebhooksNew Webhook → copy the URL. Slack — create an app at api.slack.com/apps → enable Incoming WebhooksAdd New Webhook to Workspace → pick a channel → copy the URL.
  2. Paste it into your project. Go to Projects → hover the project → ⋯ → Notifications… → paste the URL → Save. Only a workspace owner/admin sees this menu.
  3. That's it. Alkahest detects Slack vs Discord from the URL. To turn it off, save an empty field.

Webhook URLs are secrets — anyone holding one can post to your channel. Alkahest stores one per project, readable only by workspace owners/admins.

The terminal, too

Even without a webhook, alkahest publish tells you what's waiting:

$ alkahest publish
[alkahest] published alkahest (map: main)
  → https://alkahest.app/p/alkahest/main
  ⏳ waiting on you: 1 decision → alkahest.app/home/p/alkahest/issues

Agent-driven sessions get the same information in the MCP publish result, so your agent will tell you directly.

Good to know

  • Questions written on the web don't fire — you're already in the app.
  • Delivery is best-effort: one attempt, short timeout, and a failed webhook never breaks the write it rode on.
  • Your home page always shows the same "needs you" list, webhook or not.