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 skills add Abhigyan-Shekhar/Waggle-mcp --skill waggle-memorygit clone --depth 1 https://github.com/Abhigyan-Shekhar/Waggle-mcpWrote 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/skills/abhigyan-shekhar/waggle-mcp/waggle-memory)<a href="https://agentmods.dev/skills/abhigyan-shekhar/waggle-mcp/waggle-memory"><img src="https://agentmods.dev/badge/skills/abhigyan-shekhar/waggle-mcp/waggle-memory/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/skills/abhigyan-shekhar/waggle-mcp/waggle-memory"><img src="https://agentmods.dev/badge/skills/abhigyan-shekhar/waggle-mcp/waggle-memory.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.00031 | $0.00805 |
| Opus 5 | $0.00015 | $0.00402 |
| Sonnet 5 | $0.00006 | $0.00161 |
| Haiku 4.5 | $0.00003 | $0.00081 |
Grade A, and why
waggle-memory 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 12d 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.
This is a copy
100% identical to waggle-memory — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 56 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Waggle project memory
Treat Waggle as memory owned by the project, not as a transcript archive or generic personal chat memory.
Establish a stable scope
Before the first Waggle call in a task, choose one stable project value:
- Prefer the repository's canonical remote identity without credentials or a trailing
.git, such asgithub.com/acme/api. - If there is no remote, use the canonical absolute Git root path.
- Outside Git, use the canonical absolute workspace path.
Reuse that value across sessions. Do not use only a directory basename because unrelated repositories can share it. Pass agent_id: "codex" and the current task/session identifier when one is available. Never mix remembered context from a different project into the answer.
Retrieve selectively
- At the beginning of a new task that involves meaningful project work, call
prime_contextonce with the narrowest known scope. - Skip priming for greetings, trivial formatting, or questions fully answerable from the current prompt with no project-history dependency.
- Before answering anything that may depend on earlier decisions, preferences, constraints, failed attempts, bugs, experiments, unresolved questions, or project state, call
query_graphwith the stable project scope. Start withmax_nodes: 10,max_depth: 1, andretrieval_mode: "hybrid". - Use
get_relatedwhen a returned node ID needs graph context, andgraph_diffwhen the user asks what changed. - Treat retrieved memories as historical evidence, not current repository truth. Verify changeable facts against the working tree. If retrieval is empty or conflicts with current evidence, say so and do not invent history.
Store durable knowledge only
Use this threshold for every write:
Store information when forgetting it would likely cause duplicated work, a wrong future decision, or violation of an established constraint. Do not store something merely because it happened.
After a completed turn, call observe_conversation only when the turn crosses that threshold and contains durable project knowledge, such as:
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.
- 12d ago First seen · 56 lines · 31 tokens per session scan A 2e074f96f9a0
waggle-memory is a skill published in the GitHub repository Abhigyan-Shekhar/Waggle-mcp (40 stars, last pushed today), licensed Apache-2.0. It adds 31 tokens to every session and 805 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to waggle-memory, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
graph-ask
Ask any natural language question about the memory graph. You generate Cypher directly and execute it. Use when the user has a complex or ad-hoc question that the standard graph tools don't cover.
ingest-audio
Transcribe a local audio or video file using Whisper and ingest it into the memory graph. Use when the user has a local MP3, WAV, M4A, MP4, or similar audio/video file they want to add to their knowledge graph.
ingest
Ingest a file or URL into the memory graph. Handles local files (text, PDF, DOCX, XLSX, images, etc.) and URLs (web pages, YouTube, Wikipedia, RSS). Use when the user wants to add any document or web content to their knowledge graph.
graph-backup
Export the memory graph to a timestamped JSONL backup file. Use before risky operations or on demand.
graph-briefing
Generate a session briefing from the memory graph — recent changes, unresolved contradictions, relevant context for the current project. Use at the start of a session to catch up, or when switching projects.
graph-dream
Manually run the graph memory dream process to extract entities from recent conversations and ingested documents. Use when the user wants to update the graph now rather than waiting for the scheduled run.