Incident memory for on-call teams

No team should re-solve
the same fire twice.

helena indexes every past fix from your team’s incident channels, dashboards and error trackers. When a new alert fires, it surfaces the resolution your team already worked out. Powered by BTL Runtime with per-role model routing.

Try the live demo
No install. Lands in a workspace with 71 real incidents indexed.
Or install on your team’s chat
Multi-tenant·Slack + Discord OAuth·4 models routed·Vision consensus
/dashboard/copilot
In your channel

One slash command.
Cited answers in seconds.

Type /askoncall in Slack or Discord and helena finds the past fixes, ranks them, and drops a runbook style card back into the thread with every incident id it cited.

  • Reranked candidates, not the first FTS hit
  • Every claim tied to a real INC id
  • No hallucinated commands, only ones your team ran before
Discord /askoncall reply with citations
Copilot chat with streaming trace and citations
In the dashboard

See the reasoning,
not just the answer.

Every Copilot turn streams a live trace: which model classified, which tool got called, which incidents matched, and the citation validation step before the answer ships. Nothing is hidden.

  • SSE events for classified, tool_call, tool_result, delta, final
  • Clickable INC and RB pills open the source in a new tab
  • Attach a screenshot, two vision models must agree
One feed

Every source lands in the
same incident memory.

Grafana alerts, Sentry errors, GitHub deploys, and generic webhooks feed the same table. Severity colored, source tagged, dedup hashed. Click any row to see the full body and every Copilot answer that has ever cited it.

  • Dedup on source + external_id so retries do not spam the feed
  • Postgres tsvector search under 50 ms as the corpus grows
  • Deployment rows show commit title, author, diff stats
Incidents feed with Grafana, Sentry, and GitHub sources
Usage and cost analytics with per-role token spend
Transparent cost

Every token, every role,
on one page.

Classifier, reasoner, rerank, synth, and vision each track input and output tokens per turn. Costs sum against BTL Runtime prices so you always know what a Copilot answer or a runbook draft actually cost. No surprise bills at month end.

  • Per role breakdown so cheap models stay on cheap jobs
  • Rolling 30 day view with per turn detail on hover
  • Fallback model calls flagged separately when routing kicks in
How it works

Three steps. Under two minutes.

01
Install
One-click Slack or Discord OAuth. helena creates your workspace and shows a channel picker.
02
Connect
Wire Grafana, Sentry and GitHub in the integrations tab. helena auto-creates alert routes and webhooks.
03
Ask
Type /askoncall in your channel, or open the Copilot. Every answer cites the specific past incidents it drew from.
See it in the flow

Ask once. helena reasons across every source.

Pick a question. Watch which sources helena decides to query and how the answer comes together.

Slack
Sentry
Sentry
GitHub
GitHub
Grafana
Grafana
helena
You ask
Integrations

Reads from where your team already works.

Slack
Slash command + channel indexing
Discord
Discord
Slash command + channel indexing
Grafana
Grafana
Auto-created Contact Point
Sentry
Sentry
Auto-created alert rules
GitHub
GitHub
PR + deployment correlation
Under the hood

Multi-model routing on one gateway.

Per-role model choice
Classifier on btl-2 for cheap routing. Deep reasoning on btl-2 with tool-use loop. Vision on gpt-4o-mini and gemini-2.5-flash-image in parallel for consensus.
Dual-VLM screenshot consensus
Drop any dashboard screenshot. Two vision models describe it independently. We only trust what both agree on. Falls back gracefully if one errors.
Citations, verified
Every answer must cite [INC-xxx] or [RB-xxx] from your workspace. Answers with invalid citations get one automatic regeneration pass before shipping.
Hybrid retrieval
Postgres full-text search over a workspace-scoped incident index with weighted fields (title, body, screenshot captions). GIN-indexed tsvector so lookups stay under 50ms even as the corpus grows.
Nightly runbook drafts
Resolved incident threads roll up into reviewable runbook drafts overnight. Approve to add to permanent memory, or reject and forget.
One line to add a source
POST any JSON with title, severity, and body to the generic webhook. Datadog, cron, custom scripts, whatever. Same memory.
Try it now
See helena on real incidents.
Explore the seeded demo workspace. Send a Copilot query. Watch the trace stream cite specific incidents.
Open live demo