๐ŸŽฏ Live Demo โ€” This is what your workspace looks like
Learn more Create your workspace

Dashboard

demo workspace

O1 Launch MVP and get first 10 paying customers 35%
primary Q2 2026 24d left
โ–ผ KR1 Ship signup flow with Stripe checkout 80% 4 tasks
โœ“ Email/password auth with magic links
โœ“ Stripe checkout integration
โ— Post-signup onboarding flow
โ—‹ Welcome email sequence
โ–ถ KR2 Get 50 signups from Product Hunt launch 0/50 2 tasks
โ–ถ KR3 Convert 20% of signups to paid ($29/mo) 0/10 1 task
โ†’
Next: Post-signup onboarding flow
Work on it
What your AI tools see via MCP
get_context
Claude Code / Cursor / Codex
{ "objective": "Launch MVP and get first 10 paying customers", "cycle": "Q2 2026", "days_left": 24, "progress": 0.35, "key_results": [ { "title": "Ship signup flow with Stripe checkout", "progress": 0.8, "status": "on_track" }, { "title": "Get 50 signups from Product Hunt launch", "current": 0, "target": 50, "status": "not_started" }, { "title": "Convert 20% of signups to paid ($29/mo)", "current": 0, "target": 10, "status": "at_risk" // flagged because blocked on KR1 } ], "next_task": { "title": "Post-signup onboarding flow", "key_result": "Ship signup flow with Stripe checkout" }, "instructions": "Focus on KR1 tasks. KR3 is at risk but blocked until signup ships." }
Same prompt, different outcome
โŒ Without okr.io
> "Help me improve the product" Claude Code: *builds analytics dashboard* (you never asked for this)
โœ“ With okr.io
> "Help me improve the product" Claude Code: *checks MCP context* โ†’ KR1 is 80%, next task is onboarding โ†’ *builds post-signup onboarding flow*
The redirect moment (why BACKLOG.md isn't enough)
1
Claude Code starts session
"User said 'work on the product'. I'll build that analytics dashboard I was thinking about..."
2
MCP get_context returns
objective: "Launch MVP and get 10 paying customers"
KR1: Ship signup flow (80% done, 1 task left)
KR3: Convert to paid (at_risk, blocked on KR1)
next_task: "Post-signup onboarding flow"
instructions: "Focus on KR1. KR3 is blocked until signup ships."
3
Claude Code redirects
"Analytics dashboard isn't in any KR. The objective is getting paying customers. KR1 needs onboarding done before KR3 can unblock. Building onboarding instead."
โœ“
Result
Task completed: Post-signup onboarding flow
KR1: 80% โ†’ 100%
KR3: unblocked, ready to work

A BACKLOG.md can't tell Claude Code that KR3 is blocked on KR1. okr.io can.

MCP Activity Log (real data from production)
โšก Claude Code May 9, 2026 ยท 3:28am session_7b8c...
03:28:12 get_context 200
Received: 3 objectives, 6 key results, 9 tasks. Primary objective: "Validate the wedge with paying customers this quarter"
03:28:15 get_tasks 200
Filtered to KR "Test KR for email notifications" (10% โ†’ target 100%). Task available: "Test KR for email notifications"
03:28:45 complete_task 200
Task completed: Created /home/kit/mcp-feedback-test/receipt.txt as artifact
KR progress: 10% โ†’ updated
โšก Cursor May 5, 2026 ยท 10:19am session_2fd3...
10:14:18 create_task 200
Created: "Build MCP server" under KR "Test KR for email notifications"
10:14:25 pick_task 200
10:15:20 create_task 200
Created: "Test MCP complete flow"
10:19:20 complete_task 200
Summary: Tested MCP complete flow successfully