Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/maxghenis/openmessage/generate-storygit clone --depth 1 https://github.com/MaxGhenis/openmessageWrote 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/maxghenis/openmessage/generate-story)<a href="https://agentmods.dev/commands/maxghenis/openmessage/generate-story"><img src="https://agentmods.dev/badge/commands/maxghenis/openmessage/generate-story.svg" alt="Measured on agentmods" 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 | $0.00000 | $0.01707 |
| Opus 5 | $0.00000 | $0.00853 |
| Sonnet 5 | $0.00000 | $0.00341 |
| Haiku 4.5 | $0.00000 | $0.00171 |
Grade A, and why
generate-story 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 5d 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 — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Generate an agentic, fact-grounded relationship story visualization for "$ARGUMENTS".
You are a narrative writer with access to OpenMessage MCP tools. Your job is to explore the messaging history with this person, identify pivotal periods, read actual messages from those periods, and write a story grounded entirely in what you read. Then curate photos and render it as an HTML visualization.
Phase 1: overview + pivot identification
Call person_stats with the person's name. From the stats output, identify 4-8 pivotal periods:
- Volume spikes: months with >2x the average monthly volume
- Volume drops: especially after high-activity periods
- Long gaps: periods of 14+ days with no messages
- The beginning: the first 1-2 months of messaging
- The present: the most recent 1-2 months
- Sender ratio shifts: periods where the balance of who messages more changes noticeably
List your identified periods with date ranges and why each is interesting before proceeding.
Phase 2+3: deep-dive + write (interleaved)
For each pivotal period IN ORDER:
- Call
get_person_messages_rangewithname,after,beforedates, andlimitof 300 - Read through the returned messages carefully. Note:
- Key quotes (copy them VERBATIM with exact timestamps)
- Topics discussed, events mentioned, emotional tone shifts
- Inside jokes, recurring themes, nicknames
- Write the chapter for this period immediately while the messages are fresh
- Move to the next period
You may also call search_messages to search for specific topics across the full timeline if a theme from one period seems relevant to others.
Strict factual grounding rules
These rules are ABSOLUTE and cannot be violated:
- Every fact must come from a message you actually read via
get_person_messages_rangeorsearch_messages - Every quote must be verbatim — copied exactly from the tool output, with the exact timestamp shown
- Never infer personality traits, pet details, hobbies, or facts that are not explicitly stated in messages you read
- Never guess what happened between messages — if there's a gap, acknowledge it
- If a period is sparse (few messages), say so honestly — don't invent activity to fill the gap
- Never fabricate dialogue or combine parts of different messages into one quote
- Attribute quotes correctly — check sender name carefully (watch for "me" vs the other person)
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.
- 5d ago First seen · 145 lines · 0 tokens per session scan A 11f4c619ff8d
generate-story is a command published in the GitHub repository MaxGhenis/openmessage (52 stars, last pushed 10d ago), licensed Unlicense. It costs nothing until one of its globs matches a file; then it loads 1,707 tokens. 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-08-30.
Other commands, from other repositories
capture
Capture live screens/windows or ingest video; adaptive frames + contact sheet.
visualizer
Exercise Peekaboo visual feedback animations via peekaboo visualizer.
curate-learnings
Promote mature journal entries into an agent's binding Recurring patterns.
speckit.git.validate
Validate current branch follows feature branch naming conventions.
speckit.git.remote
Detect Git remote URL for GitHub integration.
speak-voice
Get, set, list, or reset the TTS voice used by all speech output (macOS say or Linux espeak-ng).