> For the complete documentation index, see [llms.txt](https://docs.zeroauthority.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zeroauthority.xyz/nova-bot/alerts-setup-guides/gm-alerts.md).

# GM Alerts

When someone in your community says "gm" (or any common variant like "good morning", "buongiorno", "おはよう", etc.), Nova replies with a short Bitcoin & Ordinals news brief — your daily ecosystem heartbeat. You can also add **custom sources** so each community gets its own additions appended (project blog, X profile, on-chain wallet, anything).

{% hint style="info" %}
GM is **opt-in per chat**. On Telegram it's enabled per group; on Discord it's enabled per channel (so the bot only replies in the channels you pick, not the whole server). Run `/gm` to configure. Group / server admins only.
{% endhint %}

***

### Limits

| Plan        | Custom sources (per Telegram chat / per Discord channel) |
| ----------- | -------------------------------------------------------- |
| **Free**    | 3                                                        |
| **Premium** | 10                                                       |

The standard Bitcoin/Ordinals brief is free and shared across all subscribers — only the **per-community sources** count toward the cap. On Discord each enabled channel has its own independent source list.

***

### What You'll Get

| Section           | Description                                                                                                                                                                      |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Standard brief    | 4–6 sentences with 1–2 Bitcoin market items, 1 Bitcoin development item, and 1 Ordinals/Runes/BRC-20 item. Each item links to its source. Cached for 6h, deduped across 14 days. |
| Community section | Appended **only when** at least one of your configured sources has new content since the last GM. Items are surfaced as fields (Discord) or tap-to-open buttons (Telegram).      |

{% hint style="success" %}
**Clean rendering, no preview spam.** GM is sent as a single rich card — a Discord embed with one field per community source, or a Telegram message with link previews disabled and an inline keyboard of headline buttons. No more wall of unfurled link previews below the message.
{% endhint %}

**Cooldowns** (unchanged from the original GM behavior):

* The brief itself is **regenerated at most every 6 hours** — all opted-in chats share the same standard brief during that window.
* Each Telegram chat / Discord channel can receive a GM **once per 36 hours**, so even if multiple users say "gm" the bot won't spam.

***

### Source Types

| Type        | What it is                     | Best for                                                              |
| ----------- | ------------------------------ | --------------------------------------------------------------------- |
| 📰 RSS feed | RSS or Atom feed URL           | Blogs, podcasts, Substack, Mirror — anything that publishes a feed    |
| 🔗 URL      | Any webpage URL                | Project announcement page, GitHub releases, docs site, X profile link |
| ⛓️ On-chain | Stacks address (`SP…` / `SM…`) | Project treasury, dev wallet, contract — emits new transactions       |

{% hint style="info" %}
**About URL sources.** Pages with article previews (blogs, GitHub releases, docs) work best — Nova will surface what changed. For JS-heavy pages like X profiles, Nova can only detect "new activity" without describing it. The first fetch records the page state; subsequent changes appear in the next GM.
{% endhint %}

***

### Setup on Telegram

1. **Enable GM in the group:**
   * Run `/gm` in the group (admin only — DMs are not supported, GM is a community feature).
   * Tap **✅ Enable GM** in the menu.
2. **Add custom sources** (optional):
   * Tap **➕ Add a source** in the sources menu.
   * Pick a type: **RSS feed**, **URL**, or **Stacks address**.
   * Send the URL or address as a text message.
   * Optionally send a short label (e.g. "ZADAO Blog"), or send `/skip` to keep it unlabelled.
3. **Manage sources later:**
   * Run `/gm` again — the menu shows current sources with **❌** buttons to remove them, plus an **➕ Add a source** button.
4. **Turn GM off:**
   * Run `/gm` and tap **🟥 Disable GM here**.

{% hint style="warning" %}
Only **group admins** can run `/gm`. Send `/cancel` at any point to abort.
{% endhint %}

***

### Setup on Discord

GM is **per-channel** on Discord — Nova only replies in channels you've explicitly enabled, not server-wide. You can enable as many channels as you want; each one keeps its own custom sources.

1. **Open the GM menu:**
   * Run `/gm` in the server. Admins only — requires **Manage Server** or **Administrator**.
2. **First-time setup:**
   * Pick **✅ Enable GM in a channel** from the menu.
   * Nova asks you to pick a channel — choose the one where you want GM to fire.
   * Nova confirms and offers to add custom sources right away — tap **➕ Add a source** or skip and add them later.
3. **Add a custom source:**
   * Run `/gm` again and pick **🛠 Manage #channel**, then **➕ Add a source**.
   * Choose a type: **RSS feed**, **Webpage URL**, or **Stacks address**.
   * A modal pops up — paste the URL or address, optionally add a friendly label, submit.
   * Nova confirms and offers to add another.
4. **List / remove sources:**
   * Run `/gm`, pick **🛠 Manage #channel**, then **📡 List sources**.
   * Use the **Remove a source** dropdown to delete one, or **✅ Done** to exit.
5. **Enable in another channel:**
   * Run `/gm` and pick **➕ Enable in another channel** — repeat the channel-selection step. Each channel has independent sources and cooldowns.
6. **Turn GM off in a channel:**
   * Run `/gm`, pick **🛠 Manage #channel**, then **🟥 Disable GM here**. Nova confirms before removing the subscription and all custom sources for that channel.

{% hint style="info" %}
The standard GM brief and the appended community section are sent together as a single Discord embed in the channel where GM is enabled.
{% endhint %}

***

### Example

> A user in the **#general** channel says **gm**.
>
> **On Discord** — Nova posts a single orange embed:
>
> > **☀️ GM** GM everyone! Bitcoin holding $98k as ETF flows pick up. Stacks v3 hardfork lands a fee-market improvement. New Runes etching activity hits a 30-day high. Have a great one ⚡
> >
> > **📰 ZADAO Blog** • New post: "Why we built X"
> >
> > **⛓️ SP3F…J7XK** • Called transfer
> >
> > *Nova · daily brief*
>
> News headlines inside the greeting are clickable links rendered inline by the embed — no preview boxes appear below.
>
> **On Telegram** — Nova replies with the same brief, link previews disabled, and an inline keyboard of one-tap buttons:
>
> > ☀️ *GM*
> >
> > GM everyone! Bitcoin holding $98k as ETF flows pick up. Stacks v3 hardfork lands a fee-market improvement. New Runes etching activity hits a 30-day high. Have a great one ⚡
> >
> > — *Community Updates ↓*
> >
> > `[ Bitcoin holds $98k as ETF flows pick up ]` `[ Stacks v3 hardfork: fee-market upgrade ]` `[ Runes etching hits 30-day high ]` `[ 📰 ZADAO Blog: Why we built X ]` `[ ⛓️ SP3F…J7XK: Called transfer ]`

***

{% hint style="info" %}
Migrating from the old behavior? GM used to fire in every group/server. Starting with this release it's **opt-in only** — every community has to run the command above to re-enable it.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.zeroauthority.xyz/nova-bot/alerts-setup-guides/gm-alerts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
