A personal Kanban board that connects Granola, your tasks, and Claude Code. Capture commitments from meetings, triage once, then dispatch each card with full context.
# granola → runnrr → claude code
granola → captures your meeting
scan → runnrr extracts commitments + decisions
triage → accept or dismiss in one click
dispatch → send to claude code with full context
done → claude pushes status back to the board
# no manual status updates. no stale boards.
No built-in AI. No chat. No team features. Just a context layer between Granola, your board, and Claude Code.
Granola captures your meetings. runnrr scans the transcripts and surfaces the commitments you made and decisions that matter — as cards on your board.
// Granola MCP scan extracts your tasks
POST /api/scan/granola
→ [{ title: "Ship auth flow", confidence: 95 }]
Each card carries the full context — what was discussed, what was decided, and why. One click sends it to Claude Code with everything it needs.
// Dispatch card to Claude Code
GET /api/tasks/:id/context
→ { claudeCode: "claude \"Task: Ship auth flow..."" }
Push tasks back from any Claude Code session. Attach Markdown with deeper context. The board stays in sync — no manual updates.
// Push from Claude Code
"Add this to runnrr"
→ create_task({ title: "...", context: "# Design..." })
Claude Code
Native skill — just say what you want
Cowork
MCP plugin for drag-and-drop context
Granola
OAuth + MCP for meeting transcripts
Sets env vars, installs the skill, done.
curl -sL runnrr.io/skill.md -o ~/.claude/skills/runnrr/SKILL.md