by ShenSeanChen
Waku Waku! Waku agent is your personal AI agent, on your own laptop, in code you can read in an afternoon — harness + loop + memory + eval
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
# Add to your Claude Code skills
git clone https://github.com/ShenSeanChen/waku-agentGuides for using ai agents skills like waku-agent.
Your 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. Built for Sean's AI Stories.

The system-design whiteboard from the series. Every box maps to a file — see the whiteboard maps to the code.
▶ Watch the 20-min code walkthrough — the loop, the memory pillars, the evals, the Telegram gateway and the "Waku Waku" wake word, live.
YouTube · X · LinkedIn · Instagram · TikTok · Discord · 哔哩哔哩 · 小红书 · 抖音
git clone https://github.com/ShenSeanChen/waku-agent && cd waku-agent
uv venv && uv pip install -e . # create the env + install the `waku` command
cp .env.example .env # pick a provider, paste ONE key
uv run waku # talk to your Waku in the terminal
uv run waku dashboard # …or the browser cockpit → localhost:7777
uv run waku … needs no venv activation. Three ways to run it:
| Command | When |
|---|---|
uv run waku dashboard |
quick start, zero activation (recommended) |
source .venv/bin/activate → waku dashboard |
activate once, bare waku all session |
uv tool install . → waku dashboard |
install waku globally, forever |
waku and waku dashboard are two doors into the same Waku. The dashboard is a tiny web
server on your machine — chat in the browser, that process runs the turn. Nothing leaves your
laptop. Set TELEGRAM_BOT_TOKEN and it starts your bot too. (make dashboard works as well.)
Now try it. "Remember that Alex prefers morning meetings." Quit. Restart.
"Book a catch-up with Alex on Friday." → it remembers, and books 9am. Your memory is one
file: .waku/state.db.
Use the model you already pay for. Anthropic (default), OpenAI, Gemini, DeepSeek, MiniMax,
Kimi, GLM, or OpenRouter (one key, hundreds of hosted models) — set WAKU_PROVIDER=, paste the key,
done. One dialect in the loop; a ~60-line adapter handles the rest.
waku dashboard # starts a local server → http://localhost:7777
A small web server you own (127.0.0.1, no cloud). The browser is just the UI — the same
process runs every turn. This is the fastest way to get the system.
A chat dock sits on every tab. Type or speak, and watch it flow through the harness on the Overview diagram: gate lights up → loop calls a tool → reply comes back → memory updates. The frontend is plain static files. No build step.
Each tab is one pillar, linked to the real files:
| Tab | What you see |
|---|---|
| Overview | cost, latency, the gate skip/retrieve split, the clickable architecture map |
| Gateway | one conversation across every channel, each message tagged by source (dashboard / telegram / voice / cli) |
| Loop | every turn with its gate decision, tool calls, tokens, and cost |
| Memory | sub-tabs per pillar — semantic facts, episodes, editable skills + SOUL, consolidation |
| Tools | the agent's available tools (grouped by origin), its results, and MCP connectors |
| Data | a live SQLite browser: per-table tabs, schema, and a read-only SQL console over state.db |
| Ops | eval verdict + history, the gate decisions, slowest turns, and inline JSONL traces |
The sidebar and chat dock are drag-resizable and hideable, and the chat has New chat + history like any chat app.
Type these in the chat dock (or make run) and watch the dashboard light up:
| Try this | What it shows | Where to watch |
|---|---|---|
| "Schedule a tennis game with Raj this Saturday at 8am" | the Loop calls a tool (create_event) |
the LOOP box pulses; Loop tab shows iter 2 |
| "What's on my calendar today?" | reading the calendar (list_events) |
it answers from state.db, no made-up events |
| "When am I swimming with Sergey?" then "what's 12 × 8?" | the retrieval gate — retrieve vs skip | Overview gate bar; Ops shows the per-turn decision |
| "Remember that Raj prefers evening games" | memory self-management (save_note) |
Memory ▸ Semantic gains a fact; MEMORY.md updates |
| "Search for the World Cup games still left to play and add each one to my calendar" | multi-tool loop engineering | Loop tab shows iter 8: search_web × N → create_event × N |
chat from make run and the browser |
one brain, many gateways | the Gateway tab tags each message cli / dashboard |
The money shot is the World Cup one. In one turn, Waku searches the web a few times, reasons
over the results, and books every remaining match — 8 loop iterations, live. Needs a free
TAVILY_API_KEY (paste it in Settings). Watch the LOOP box pulse per cycle. That's loop
engineering, on tape.
Those are products you use. This is a codebase you own — the loop, the memory schema, the gate, the eval harness, all yours to read and change. Understand this repo, and you understand what the products do under the hood.
Versus the big open-source assistants (OpenClaw, Hermes)? Same architecture, 1/100th the code. Products vs. a readable blueprint.
Every whiteboard from the videos lives in docs/whiteboards/ as an
editable .excalidraw source — download one, drop it on excalidraw.com,
and remix it for your own team:
| Chart | What it explains |
|---|---|
k3-architecture.excalidraw |
Kimi K3: the 16-of-896 MoE, KDA + AttnRes attention, why agent loops get cheap |
pi-architecture.excalidraw |
pi (72K-star coding agent): 4-tool core, extensions, one EventStream |
waku-architecture.excalidraw |
Waku itself — harness, loop, memory pillars, LLM Ops (editable rebuild of the whiteboard) |
New charts land here with every video. If they help you, a star keeps them coming — and sponsoring gets new whiteboards early.
This diagram renders straight from the README (it's Mermaid text, not an image — edit it in a PR):
flowchart LR
GW["Gateway<br/>cli · telegram · voice · dashboard"] --> WM["Working memory<br/>SOUL.md + memory + history"]
WM --> LLM
subgraph LOOP["The Loop — loop/agent.py"]
LLM["LLM"] -->|tool call| TOOLS["Tools<br/>create_event · list_events<br/>search_web · save_note · …"]
TOOLS -->|result| LLM
end
LLM -->|reply| REPLY["Reply"] --> GW
GATE{{"Retrieval gate<br/>does this turn need memory?"}} -. only if needed .-> WM
MEM[("Memory — state.db<br/>SQLite + FTS5<br/>semantic · episodic · procedural")] --> GATE
REPLY -. save chat .-> MEM
MEM -->|every N chats| CONS["Consolidate → facts"] --> MEM
REPLY --> OPS["LLM Ops<br/>trace → eval → gate → release"]
OPS -. improved prompt/config .-> WM
WM -.- WATERMARK["waku-agent · Sean's AI Stories · @ShenSeanChen"]:::wm
classDef wm fill:none,stroke:none,color:#9aa0aa,font-size:11px;
Architecture of waku-agent — built on the series (@ShenSeanChen). Code is MIT; this diagram is licensed CC BY-NC-SA 4.0 — reuse it with credit to the channel, not for commercial resale.
Every box is one module (full version with every file path: docs/architecture.md):
| Diagram box | Module |
|---|---|
| Gateway Interface (CLI / voice / Telegram / web) | waku/gateway/ |
| Ephemeral Agent Run → Working Memory | waku/runtime/session.py |
| The Loop (LLM ↔ tools, end-loop guardrails) | waku/loop/agent.py |
| Agentic Tools (schedule / note / message) | waku/tools/ |
| Procedural Memory (SKILL.md, "how to act") | waku/memory/procedural/ + skills/ |
| Semantic Memory (durable facts, profile) | waku/memory/semantic/ |
| Episodic Memory (dated events, past chats) | waku/memory/episodic/ |
| "Should we even retrieve?" gate | waku/memory/retrieval_gate.py |
| Consolidate after N cha |
waku-agent is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ShenSeanChen. Waku Waku! Waku agent is your personal AI agent, on your own laptop, in code you can read in an afternoon — harness + loop + memory + eval. It has 539 GitHub stars.
waku-agent's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/ShenSeanChen/waku-agent" and add it to your Claude Code skills directory (see the Installation section above).
waku-agent is primarily written in Python. It is open-source under ShenSeanChen on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh waku-agent against similar tools.
No comments yet. Be the first to share your thoughts!