excalidraw
Generate an Excalidraw whiteboard in Sean's hand-drawn video style (Excalifont, roughness 1,…
Research report on companies, competitors, markets or products: research a company, compare competitors, market landscape, funding, pricing, launches.
$ npx -y skills add ShenSeanChen/waku-agent --skill research-report --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/research-reportContext preview
The summary Claude sees to decide when to auto-load this skill.
Research report on companies, competitors, markets or products: research a company, compare competitors, market landscape, funding, pricing, launches.
name: research-report description: Research report on companies, competitors, markets or products: research a company, compare competitors, market landscape, funding, pricing, launches. Also to save a brief, summary or snapshot built from search results.
Write a report when the person asks you to research companies, competitors, markets, products or people, or asks you to save a brief, summary, snapshot or report built from what your tools found (an audience brief from Reddit comments, an AI visibility snapshot). Each of these is one report in this format, never a set of separate memories. Anything else gets a normal answer.
With Waku Memory connected, Waku searches it first and lists the hits, each with its date, under "What the company brain already knows". Start there: name an earlier report and its date, list it in Sources (`"via": "waku-memory"`), and research only what is missing or older than 30 days. Each earlier report is listed as its summary; call `waku_memory_memory_get` for a whole one only when the person asks to compare details.
Two or three plain sentences on what you found, then the report from its marker line (once per reply). The chat keeps only your sentences, so they must stand alone. Waku saves the report to Waku Memory itself, once: never save it with `memory_remember`. Never write about the save in the reply. Do not say the report will be saved, was saved, or that you have not seen a confirmation: the chat shows "Report saved" under your sentences. The reply ends with the report's last section.
Line 1 is `<!-- waku-report v1 -->`, line 2 is `# <title>`. Then, in this order and each optional except Summary and Sources: `## Summary` (three bullets at most), `## Findings` (a Markdown table), `## Comparison`, `## Numbers`, `## Timeline`, `## Gaps`, `## Sources`. Visual parts are fenced blocks, only these five; the fence's language names the component and the body is JSON in exactly this shape (no comments or trailing commas):
Three companies sell hosted memory to agent builders. Birchline has raised the most, $41M, and Kestrel is the only one with a free tier; none publishes accuracy numbers.
<!-- waku-report v1 -->
# Agent memory vendors, 2026-10-03
## Summary
- Three vendors sell hosted memory for AI agents: Birchline, Kestrel and Tamsin.
- Birchline has raised the most, $41M in two rounds (2025-03 and 2026-09).
- None of the three publishes recall accuracy or retention numbers.
## Findings
| Company | Product | Price (2026-10) | Source |
|---|---|---|---|
| Birchline | Birchline Cloud | $49 a month | Birchline pricing |
| Kestrel | Kestrel Memory | free to 10,000 memories, then $19 a month | Kestrel pricing |
| Tamsin | Tamsin API | not published | none |
## Comparison
```waku-compare
{"columns": ["Free tier", "MCP server", "Self-host"], "rows": [{"name": "Birchline", "cells": [false, true, null]}, {"name": "Kestrel", "cells": [true, true, false]}, {"name": "Tamsin", "cells": [false, null, true]}]}[{"label": "Vendors", "value": "3"}, {"label": "Most raised", "value": "$41M", "note": "Birchline, 2026-09"}, {"label": "Cheapest paid plan", "value": "$19 a month", "note": "Kestrel"}]{"type": "bar", "title": "Total funding raised", "unit": "USD M", "series": [{"label": "Birchline", "value": 41}, {"label": "Kestrel", "value": 12}, {"label": "Tamsin", "value": 3.5}]}[{"date": "2026-09-12", "event": "Series A, $35M", "subject": "Birchline"}, {"date": "2026-06", "event": "Launched an MCP server", "subject": "Kestrel"}, {"date": "2025-11-03", "event": "Public beta", "subject": "Tamsin"}][{"title": "Birchline pricing", "url": "https://birchline.example/pricing", "via": "treg:treg.web.search", "cost_usd": 0.002}, {"title": "Kestrel pricing", "url": "https://kestrel.example/pricing", "via": "treg:treg.web.fetch"}, {"title": "Funding rounds, Birchline, Kestrel and Tamsin", "url": "htYour own AI assistant. On your laptop. In code you can read in an afternoon. Meet Waku — a local-first personal assistant that shows the four pillars behind every serious agent: Harness · Loop · Memory · Eval/LLM-Ops. No frameworks hiding the good parts.
Generate an Excalidraw whiteboard in Sean's hand-drawn video style (Excalifont, roughness 1,…
Add a new tool to Waku the right way — schema, safe execution, deterministic eval, honest…
Create and tear down the throwaway git worktrees used to test community PRs for waku-agent,…
Walk Sean through an incoming waku-agent PR or issue and present it his way — four fixed…
Commit and push the current work properly — lint, run the release gate, write a detailed…
Look up any Pokemon's types, base stats, and abilities from the public PokeAPI. Use whenever…