Skip to main content

Overview

VibeLearn works with Cursor via hook scripts. When a Cursor agent session ends, the same 5-step analysis pipeline runs: stack detection → static analysis → concept extraction → quiz generation → sync.

Quick Install

# Clone and build
git clone https://github.com/anergcorp/vibelearn.git
cd vibelearn && bun install && bun run build

# Install hooks for all projects (recommended)
bun run cursor:install -- user

# Start the worker
bun run worker:start
Then restart Cursor to load the hooks.

Configure an AI Provider

~/.vibelearn/settings.json
{
  "VIBELEARN_GEMINI_API_KEY": "AIza..."
}
See Gemini Setup or OpenRouter Setup for full guides.

What Gets Captured

Cursor HookVibeLearn Action
beforeSubmitPromptInitialize session
afterFileEditCapture file edits
afterMCPExecutionCapture MCP tool usage
afterShellExecutionCapture shell commands
stopTrigger analysis pipeline

After a Session

vl status     # Check what was analyzed
vl quiz       # Quiz yourself
vl gaps       # See weak areas

How It Differs from Claude Code

FeatureClaude CodeCursor
HooksNative plugin hooksBash scripts in .cursor/hooks/
Transcript accessAvailableNot available
Analysis pipelineFull (with transcript context)Full (file edits only)
Worker port3777837778
Installation/plugin install vibelearnbun run cursor:install -- user
The main limitation: Cursor doesn’t provide transcript access, so concept extraction uses file edit observations only. This is still effective for most sessions.

Troubleshooting

Hooks not running:
chmod +x ~/.cursor/hooks/*.sh
# Check Cursor Settings → Hooks tab
Worker not responding:
curl http://127.0.0.1:37778/api/readiness
tail -f ~/.vibelearn/logs/vibelearn-$(date +%Y-%m-%d).log
No quiz questions: Verify AI provider key is set in ~/.vibelearn/settings.json and check worker logs for LLM errors.