Dograh is an open-source, self-hostable platform for building voice AI agents that combine speech recognition, language models, and speech synthesis. Teams use its visual workflow builder and telephony integrations to create and operate voice agents while choosing their own providers and infrastructure.
Borrowing it
Nothing to install: this file belongs to dograh-hq/dograh. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/dograh-hq/dograh/main/.claude/commands/event-banner.mdgit clone --depth 1 https://github.com/dograh-hq/dograhWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/dograh-hq/dograh/event-banner)<a href="https://agentmods.dev/commands/dograh-hq/dograh/event-banner"><img src="https://agentmods.dev/badge/commands/dograh-hq/dograh/event-banner/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/dograh-hq/dograh/event-banner"><img src="https://agentmods.dev/badge/commands/dograh-hq/dograh/event-banner.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00013 | $0.01666 |
| Opus 5.5 | $0.00005 | $0.00666 |
| Sonnet 5.5 | $0.00003 | $0.00333 |
| Haiku 4.5 | $0.00001 | $0.00167 |
Grade A, and why
event-banner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 15d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add an event to the app-wide announcement bar. Arguments: $ARGUMENTS
(first the registration URL, then an optional partner name, then an optional
path to that partner's logo file).
Everything the bar shows lives in ui/src/config/event-banner.config.ts. The
component ui/src/components/EventBanner.tsx is generic: it renders the first
entry whose [startsAt, endsAt] window contains "now". Do not edit the
component for an ordinary event.
The bar is Dograh Cloud only — ui/src/app/layout.tsx mounts it behind
NEXT_PUBLIC_EVENT_BANNER === "1", which is blank in ui/.env.example and
never set in ui/Dockerfile, deploy/ or the workflows. Self-hosters do not
see it whatever this config says. Do not add the var to any of those.
1. Pull the event details
WebFetch the URL for title, date, time and timezone. Luma and Partiful render those client-side, so the fetch often returns the title and nothing else — say so plainly rather than inventing a date, and get it from the user.
2. Confirm before writing
Use AskUserQuestion to confirm, in one round, with your best guess pre-filled:
- eyebrow — the small-caps label before the title. Leave it unset for a
live event: the component then shows
Live virtual session(compacted toLivein the 640-767px band). Set it for anything else —New experiment,Workshop,Webinar. A custom eyebrow has no short form and renders as given at every width, so keep it to a couple of words. - pulse — whether the pulsing accent dot precedes the eyebrow. Default
true. Set
falsewhen the thing is not happening live (a blog post, a benchmark, a release), where "happening now" would mislead. - title — the lead sentence, ending in a period. Shown in full at every width, so keep it under ~40 characters.
- titleMobile — optional shorter title for viewports below 768px, where
the title shares a line with the register pill at 11px. Measured at 360px
wide with a 16-character CTA, about 30 characters fit; 33 already run under
the pill. Only needed when
titleruns long; it is a copy change, not a truncation, so it still has to be a complete sentence. - subtitle — optional. Format, hashtag and timing, e.g.
#SF Tech Week · Tue Oct 6, 12:30 PM PT. Dropped below 1024px, so nothing load-bearing goes here; leave it out when there is nothing to add. - startsAt / endsAt — ISO 8601 with offset.
endsAtis when the bar retires itself; set it to the end of the session, not the start. - partner — name and logo, or none.
- cta — defaults to
Register for Free. The arrow is drawn by the component; do not put one in the string.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 15d ago Changed · +17 lines a8b22d690f80
- 1mo ago First seen · 113 lines · 13 tokens per session scan A 2f583c2d18c9
event-banner is a command published in the GitHub repository dograh-hq/dograh (5,981 stars, last pushed today), licensed BSD-2-Clause. It adds 13 tokens to every session and 1,666 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-22.
Other commands, from other repositories
deploy
Run the complete ClawBridge release process. This is the ONLY way to deploy — follow every step.
artel-recall
Search Artel shared memory for what the fleet already knows.
review
Review the current change set and highlight issues.
/opsx-explore
Enter explore mode - think through ideas, investigate problems, clarify requirements.
/opsx-apply
Implement tasks from an OpenSpec change (Experimental).
checklist
Generate a custom checklist for the current feature based on user requirements.