Motif
Reads your Cursor and Claude Code conversations and turns them into a live productivity dashboard, a shareable assessment report, and personalized config files derived from your actual patterns — on the thesis that process is the new credential.
The artifact you measure a developer by used to be a GitHub commit. With AI in the loop, the commit is the easy part — the conversation with the agent is where the actual judgment, taste, and metacognition show up. Motif’s thesis: process is the new credential, and the AI coding transcript is the artifact that should replace the resume. Y Combinator now asks founders for agent transcripts instead of GitHub links; this product is built for that world.
Motif ingests AI coding sessions from four sources — Cursor (parsing the SQLite state.vscdb), Claude Code, Copilot CLI, and Copilot for VS Code — and produces three things. A live TUI/IDE dashboard tracks AIPM (AI tokens per minute), concurrency, and per-agent efficiency in real time, with 1Hz polling and a 10-second rolling window. A self-contained HTML vibe report grades the developer against five educational frameworks: Bloom’s Taxonomy, a Vibe Coding Proficiency rubric, Holistic Critical Thinking, Metacognition Components, and Chris Dede’s Judgment vs. Reckoning — the founder framework that anchors the whole product. Personalized config files (CLAUDE.md, .cursorrules, skill scaffolds) are then generated from the user’s own patterns. Local-first, no server, no API keys. Pre-1.0 OSS Python (Apache-2.0) plus a closed-source VS Code extension; pilot live with Lutz Finger at Cornell Tech.
motif/live/metrics.py · motif-vscode/src/metrics/engine.tsmotif/analysis/prompts.py · motif/report/html.pystate.vscdb, Claude Code’s JSONL session files, Copilot CLI, and Copilot in VS Code. Motif normalizes all four into one message stream so downstream analysis treats “user asked X, agent did Y” identically regardless of source. Implemented as a duck-typed module protocol: each extractor exports the same four-function contract (get_data_path, extract_conversations, group_by_project, get_stats) and the CLI wires them lazily, so adding a fifth tool is a new module, not a refactor. motif/extractors/{cursor,claude_code,copilot_cli,copilot_vscode}.py