{"apiVersion":"v1","available":true,"lastUpdated":"2026-08-15T18:00:00.000Z","timelineLastUpdated":"2026-11-13T12:30:37.906Z","thesis":"Vendors are not copying MCP or Plan Mode as brand names. They are copying machinery that already proved it can change a behavior that matters for agent products: trust enough to delegate, lower the cost of letting the agent cook, make work pick-up-able, and extend the product without rewriting the core.","behaviors":[{"id":"delegate-with-trust","name":"Delegate with trust","thesis":"People hand an agent more important work when they can inspect, constrain, and undo it."},{"id":"reduce-commit-anxiety","name":"Reduce commit anxiety","thesis":"Unfinished or agent-proposed work is cheap to share and cheap to revert, so people actually let the agent run."},{"id":"make-work-multiplayer","name":"Make work multiplayer","thesis":"Work becomes visible, reviewable, and pick-up-able by a human or another agent without a meeting."},{"id":"extend-without-rewriting","name":"Extend without rewriting","thesis":"Third parties add capability so the product compounds instead of waiting on the vendor's roadmap."},{"id":"keep-context-alive","name":"Keep context alive","thesis":"The next session does not start from zero — the project, the web, and the user's intent survive."},{"id":"meet-user-in-habitat","name":"Meet the user in habitat","thesis":"The agent shows up where work already happens: the editor, git, CI, and the login people already pay for."}],"mechanics":[{"id":"propose-then-approve","name":"Propose, then approve","behaviorIds":["delegate-with-trust","reduce-commit-anxiety"],"featureIds":["planning-mode","todo-tasklist"],"whyItTravels":"The interesting part is not a Plan button. Someone proposes a piece of work, the work becomes visible before it becomes a change, feedback attaches to the proposal, and approval is what moves state. That is the pull-request mechanic wearing an agent costume. It lowers the cost of letting an agent cook because the human is reviewing a plan, not an already-mutated repo. Every tool that copied planning mode was copying that sequence, not a menu label.","features":[{"featureId":"planning-mode","name":"Planning Mode","category":"Agentic","description":"A dedicated mode that plans/proposes before editing or executing.","leader":"windsurf","shippedByCount":11,"spreadDays":497,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-06-10T04:00:00.000Z","version":"1.10.1","releaseId":"windsurf-1.10.1","rank":1,"lagDaysFromLeader":0},{"tool":"cursor","toolDisplayName":"Cursor","date":"2025-09-29T05:08:58.822Z","version":"1.7","releaseId":"cursor-1.7","rank":2,"lagDaysFromLeader":111},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2025-10-24T00:00:00.000Z","version":"2025.10.24","releaseId":"replit-agent-2025-10-24","rank":3,"lagDaysFromLeader":136},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2025-12-18T05:00:00.000Z","version":"1.23.0","releaseId":"kiro-1.23.0","rank":4,"lagDaysFromLeader":191},{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2026-01-15T23:59:29.275Z","version":"2.1.9","releaseId":"claude-code-2.1.9","rank":5,"lagDaysFromLeader":220},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-01-20T01:27:40.000Z","version":"v0.0.387","releaseId":"github-copilot-v0.0.387","rank":6,"lagDaysFromLeader":224},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-01-25T16:37:37.000Z","version":"rust-v0.90.0","releaseId":"openai-codex-rust-v0.90.0","rank":7,"lagDaysFromLeader":230},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-03-14T01:23:34.000Z","version":"0.2.76","releaseId":"claude-agent-sdk-typescript-0.2.76","rank":8,"lagDaysFromLeader":277},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-05-28T17:04:02.000Z","version":"1.14.6","releaseId":"crewai-1.14.6","rank":9,"lagDaysFromLeader":353},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-07-08T03:25:54.000Z","version":"1.1.0","releaseId":"antigravity-cli-1.1.0","rank":10,"lagDaysFromLeader":393},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-10-20T00:00:00.000Z","version":"1.0.65","releaseId":"grok-build-1.0.65","rank":11,"lagDaysFromLeader":497}]},{"featureId":"todo-tasklist","name":"Todo / Task List","category":"UX","description":"A visible, tracked task/todo list the agent maintains.","leader":"claude-code","shippedByCount":8,"spreadDays":386,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-04-30T18:14:42.819Z","version":"0.2.93","releaseId":"claude-code-0.2.93","rank":1,"lagDaysFromLeader":0},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2025-10-24T00:00:00.000Z","version":"2025.10.24","releaseId":"replit-agent-2025-10-24","rank":2,"lagDaysFromLeader":176},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-01-23T21:56:25.000Z","version":"0.2.19","releaseId":"claude-agent-sdk-typescript-0.2.19","rank":3,"lagDaysFromLeader":268},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-02-05T19:08:11.000Z","version":"v0.0.404","releaseId":"github-copilot-v0.0.404","rank":4,"lagDaysFromLeader":281},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-02-20T09:07:26.000Z","version":"1.5.0","releaseId":"mastra-1.5.0","rank":5,"lagDaysFromLeader":296},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2026-05-15T03:47:00.000Z","version":"0.2.82","releaseId":"claude-agent-sdk-python-0.2.82","rank":6,"lagDaysFromLeader":379},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-05-21T16:48:03.000Z","version":"rust-v0.133.0","releaseId":"openai-codex-rust-v0.133.0","rank":7,"lagDaysFromLeader":386},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-05-22T00:00:00.000Z","version":"0.1.217","releaseId":"grok-build-0.1.217","rank":8,"lagDaysFromLeader":386}]}]},{"id":"undo-as-verb","name":"Undo as a first-class verb","behaviorIds":["reduce-commit-anxiety","delegate-with-trust"],"featureIds":["checkpoints"],"whyItTravels":"Stories did not win because photos disappeared. They won because they lowered the pressure to create. Checkpoints do the same job for agents. If you can rewind the session, you do not have to be sure before you delegate. The mechanic is a cheap undo that makes ambitious runs feel reversible. Tools that shipped rewind were not adding a setting — they were buying the user permission to take a bigger risk.","features":[{"featureId":"checkpoints","name":"Checkpoints / Rewind","category":"Safety","description":"Snapshotting session state to roll back to an earlier point.","leader":"amp","shippedByCount":15,"spreadDays":248,"shipments":[{"tool":"amp","toolDisplayName":"Amp","date":"2025-10-21T00:00:00.000Z","version":"2025.10.21","releaseId":"amp-cli-tab-navigation","rank":1,"lagDaysFromLeader":0},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2025-10-24T00:00:00.000Z","version":"2025.10.24","releaseId":"replit-agent-2025-10-24","rank":2,"lagDaysFromLeader":3},{"tool":"langgraph-python","toolDisplayName":"LangGraph (Python)","date":"2025-10-29T18:38:49.000Z","version":"1.0.2","releaseId":"langgraph-python-1.0.2","rank":3,"lagDaysFromLeader":9},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2025-12-11T18:53:57.000Z","version":"0.1.15","releaseId":"claude-agent-sdk-python-0.1.15","rank":4,"lagDaysFromLeader":52},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2025-12-15T22:38:50.000Z","version":"rust-v0.73.0","releaseId":"openai-codex-rust-v0.73.0","rank":5,"lagDaysFromLeader":56},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-01-23T15:32:27.000Z","version":"v0.0.393","releaseId":"github-copilot-v0.0.393","rank":6,"lagDaysFromLeader":95},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-03-14T01:23:34.000Z","version":"0.2.76","releaseId":"claude-agent-sdk-typescript-0.2.76","rank":7,"lagDaysFromLeader":144},{"tool":"cloudflare-agents-sdk","toolDisplayName":"Cloudflare Agents SDK","date":"2026-04-07T12:36:46.000Z","version":"0.10.0","releaseId":"cloudflare-agents-sdk-0.10.0","rank":8,"lagDaysFromLeader":169},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-04-07T17:47:49.000Z","version":"1.14.0","releaseId":"crewai-1.14.0","rank":9,"lagDaysFromLeader":169},{"tool":"openai-agents-python","toolDisplayName":"OpenAI Agents SDK (Python)","date":"2026-04-15T17:11:33.000Z","version":"0.14.0","releaseId":"openai-agents-python-0.14.0","rank":10,"lagDaysFromLeader":177},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2026-05-05T12:31:27.000Z","version":"0.9.0","releaseId":"openai-agents-js-0.9.0","rank":11,"lagDaysFromLeader":197},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-05-28T00:00:00.000Z","version":"0.2.8","releaseId":"grok-build-0.2.8","rank":12,"lagDaysFromLeader":219},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-06-12T20:00:00.000Z","version":"2.7.0","releaseId":"kiro-2.7.0","rank":13,"lagDaysFromLeader":235},{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2026-06-24T18:54:40.112Z","version":"2.1.191","releaseId":"claude-code-2.1.191","rank":14,"lagDaysFromLeader":247},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-06-25T12:09:29.000Z","version":"1.17.11","releaseId":"opencode-1.17.11","rank":15,"lagDaysFromLeader":248}]}]},{"id":"permission-envelopes","name":"Permission envelopes","behaviorIds":["delegate-with-trust"],"featureIds":["sandbox-permissions"],"whyItTravels":"Delegation dies when the only options are 'trust everything' or 'approve every call'. An envelope — sandbox, allow-list, read-only, ask-once — lets people hand over more work without raising the blast radius. The mechanic is a fence you can see, not a terms-of-service paragraph. Once one vendor proved users would grant broader autonomy inside a fence, the rest of the category had to ship a fence too.","features":[{"featureId":"sandbox-permissions","name":"Sandboxing / Permission Modes","category":"Safety","description":"Sandboxed execution or granular permission/approval modes.","leader":"claude-code","shippedByCount":27,"spreadDays":576,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-04-09T22:17:47.830Z","version":"0.2.67","releaseId":"claude-code-0.2.67","rank":1,"lagDaysFromLeader":0},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2025-08-07T17:29:06.000Z","version":"rust-v0.15.0","releaseId":"openai-codex-rust-v0.15.0","rank":2,"lagDaysFromLeader":120},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2025-12-03T19:42:21.000Z","version":"0.1.11","releaseId":"claude-agent-sdk-python-0.1.11","rank":3,"lagDaysFromLeader":238},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-01-13T18:58:23.000Z","version":"v0.0.381","releaseId":"github-copilot-v0.0.381","rank":4,"lagDaysFromLeader":279},{"tool":"openai-agents-python","toolDisplayName":"OpenAI Agents SDK (Python)","date":"2026-02-05T02:51:18.000Z","version":"0.8.0","releaseId":"openai-agents-python-0.8.0","rank":5,"lagDaysFromLeader":301},{"tool":"cursor","toolDisplayName":"Cursor","date":"2026-02-17T00:00:00.000Z","version":"2.5","releaseId":"cursor-2.5","rank":6,"lagDaysFromLeader":313},{"tool":"zed","toolDisplayName":"Zed","date":"2026-02-18T17:51:00.000Z","version":"0.224.4","releaseId":"zed-0.224.4","rank":7,"lagDaysFromLeader":315},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-02-20T09:07:26.000Z","version":"1.5.0","releaseId":"mastra-1.5.0","rank":8,"lagDaysFromLeader":316},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-04-02T23:45:21.000Z","version":"0.2.91","releaseId":"claude-agent-sdk-typescript-0.2.91","rank":9,"lagDaysFromLeader":358},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-04-15T00:00:00.000Z","version":"2026.04.15","releaseId":"openai-platform-2026-04-15","rank":10,"lagDaysFromLeader":370},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-04-24T16:13:51.000Z","version":"1.14.3","releaseId":"crewai-1.14.3","rank":11,"lagDaysFromLeader":380},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2026-05-05T12:31:27.000Z","version":"0.9.0","releaseId":"openai-agents-js-0.9.0","rank":12,"lagDaysFromLeader":391},{"tool":"anthropic-api","toolDisplayName":"Claude API","date":"2026-05-11T00:00:00.000Z","version":"2026.05.11","releaseId":"anthropic-api-2026-05-11","rank":13,"lagDaysFromLeader":396},{"tool":"v0","toolDisplayName":"v0","date":"2026-05-12T00:00:00.000Z","version":"2026.05.12","releaseId":"v0-2026-05-12","rank":14,"lagDaysFromLeader":397},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2026-05-19T00:00:00.000Z","version":"2026.05.19","releaseId":"gemini-api-2026-05-19","rank":15,"lagDaysFromLeader":404},{"tool":"mistral-api","toolDisplayName":"Mistral AI Platform","date":"2026-05-28T00:00:00.000Z","version":"2026.05.28","releaseId":"mistral-api-2026-05-28","rank":16,"lagDaysFromLeader":413},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-06-03T21:37:06.000Z","version":"1.0.5","releaseId":"antigravity-cli-1.0.5","rank":17,"lagDaysFromLeader":420},{"tool":"cloudflare-agents-sdk","toolDisplayName":"Cloudflare Agents SDK","date":"2026-06-12T16:46:18.000Z","version":"0.16.0","releaseId":"cloudflare-agents-sdk-0.16.0","rank":18,"lagDaysFromLeader":429},{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2026-06-16T00:00:00.000Z","version":"3.2.16","releaseId":"windsurf-3.2.16","rank":19,"lagDaysFromLeader":432},{"tool":"amp","toolDisplayName":"Amp","date":"2026-06-30T00:00:00.000Z","version":"2026.06.30","releaseId":"amp-agents-in-orbs","rank":20,"lagDaysFromLeader":446},{"tool":"gemini-agent-platform","toolDisplayName":"Gemini Enterprise Agent Platform","date":"2026-08-04T00:00:00.000Z","version":"2026.08.04","releaseId":"gemini-agent-platform-2026-08-04","rank":21,"lagDaysFromLeader":481},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-08-11T21:00:00.000Z","version":"2.17.0","releaseId":"kiro-2.17.0","rank":22,"lagDaysFromLeader":489},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-08-26T00:00:00.000Z","version":"1.0.11","releaseId":"grok-build-1.0.11","rank":23,"lagDaysFromLeader":503},{"tool":"copilot-vscode","toolDisplayName":"GitHub Copilot in VS Code","date":"2026-09-16T17:00:00.000Z","version":"1.138","releaseId":"copilot-vscode-1.138","rank":24,"lagDaysFromLeader":525},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2026-10-09T00:00:00.000Z","version":"2026.10.09","releaseId":"replit-agent-2026-10-09","rank":25,"lagDaysFromLeader":547},{"tool":"cline","toolDisplayName":"Cline","date":"2026-10-16T06:39:24.000Z","version":"4.1.25","releaseId":"cline-4.1.25","rank":26,"lagDaysFromLeader":554},{"tool":"lovable","toolDisplayName":"Lovable","date":"2026-11-07T00:00:00.000Z","version":"2026.11.07","releaseId":"lovable-2026-11-07","rank":27,"lagDaysFromLeader":576}]}]},{"id":"show-the-thinking","name":"Show the thinking","behaviorIds":["delegate-with-trust"],"featureIds":["extended-thinking"],"whyItTravels":"Verification gets more likely when the reasoning is inspectable. Visible thinking is not a party trick — it is a way to check the agent's work without standing up a second reviewer. People trust a long, consequential run more when they can watch the argument form. That is why extended-thinking toggles traveled: they turn a black box into something you can audit while it is still running.","features":[{"featureId":"extended-thinking","name":"Extended Thinking","category":"Reasoning","description":"A visible/toggleable extended-reasoning (\"thinking\") mode.","leader":"windsurf","shippedByCount":23,"spreadDays":625,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-02-25T05:00:00.000Z","version":"1.3.9","releaseId":"windsurf-1.3.9","rank":1,"lagDaysFromLeader":0},{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-03-15T01:04:24.513Z","version":"0.2.44","releaseId":"claude-code-0.2.44","rank":2,"lagDaysFromLeader":18},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2025-07-09T07:06:51.000Z","version":"rust-v0.4.0","releaseId":"openai-codex-rust-v0.4.0","rank":3,"lagDaysFromLeader":134},{"tool":"ollama","toolDisplayName":"Ollama","date":"2025-10-29T02:07:54.000Z","version":"0.12.7","releaseId":"ollama-0.12.7","rank":4,"lagDaysFromLeader":246},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2025-10-31T05:41:04.000Z","version":"0.1.6","releaseId":"claude-agent-sdk-python-0.1.6","rank":5,"lagDaysFromLeader":248},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2025-11-15T00:38:56.000Z","version":"0.3.2","releaseId":"openai-agents-js-0.3.2","rank":6,"lagDaysFromLeader":263},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-01-07T16:11:21.000Z","version":"v0.0.375","releaseId":"github-copilot-v0.0.375","rank":7,"lagDaysFromLeader":316},{"tool":"zed","toolDisplayName":"Zed","date":"2026-02-18T17:51:00.000Z","version":"0.224.4","releaseId":"zed-0.224.4","rank":8,"lagDaysFromLeader":359},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-02-19T23:28:39.000Z","version":"0.2.49","releaseId":"claude-agent-sdk-typescript-0.2.49","rank":9,"lagDaysFromLeader":360},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-06-05T04:00:00.000Z","version":"2.6.0","releaseId":"kiro-2.6.0","rank":10,"lagDaysFromLeader":465},{"tool":"cline","toolDisplayName":"Cline","date":"2026-06-29T04:14:30.000Z","version":"4.0.2","releaseId":"cline-4.0.2","rank":11,"lagDaysFromLeader":489},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-07-01T00:00:00.000Z","version":"0.2.81","releaseId":"grok-build-0.2.81","rank":12,"lagDaysFromLeader":491},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-07-01T08:45:21.000Z","version":"1.47.0","releaseId":"mastra-1.47.0","rank":13,"lagDaysFromLeader":491},{"tool":"xai-api","toolDisplayName":"xAI API","date":"2026-07-08T00:00:00.000Z","version":"2026.07.08","releaseId":"xai-api-2026-07-08","rank":14,"lagDaysFromLeader":498},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-07-09T00:00:00.000Z","version":"2026.07.09","releaseId":"openai-platform-2026-07-09","rank":15,"lagDaysFromLeader":499},{"tool":"amp","toolDisplayName":"Amp","date":"2026-07-09T00:00:00.000Z","version":"2026.07.09","releaseId":"amp-the-dial","rank":16,"lagDaysFromLeader":499},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-07-21T02:33:39.000Z","version":"1.1.5","releaseId":"antigravity-cli-1.1.5","rank":17,"lagDaysFromLeader":511},{"tool":"anthropic-api","toolDisplayName":"Claude API","date":"2026-07-24T00:00:00.000Z","version":"2026.07.24","releaseId":"anthropic-api-2026-07-24","rank":18,"lagDaysFromLeader":514},{"tool":"deepseek-api","toolDisplayName":"DeepSeek API","date":"2026-08-13T00:00:00.000Z","version":"2026.08.13","releaseId":"deepseek-api-2026-08-13","rank":19,"lagDaysFromLeader":534},{"tool":"amazon-bedrock","toolDisplayName":"Amazon Bedrock","date":"2026-09-01T19:00:00.000Z","version":"2026.09.01","releaseId":"amazon-bedrock-2026-09-01","rank":20,"lagDaysFromLeader":554},{"tool":"devin","toolDisplayName":"Devin","date":"2026-09-21T00:00:00.000Z","version":"2026.09.21","releaseId":"devin-2026-09-21","rank":21,"lagDaysFromLeader":573},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2026-11-12T00:00:00.000Z","version":"2026.11.12","releaseId":"gemini-api-2026-11-12","rank":22,"lagDaysFromLeader":625},{"tool":"gemini-agent-platform","toolDisplayName":"Gemini Enterprise Agent Platform","date":"2026-11-12T00:00:00.000Z","version":"2026.11.12","releaseId":"gemini-agent-platform-2026-11-12","rank":23,"lagDaysFromLeader":625}]}]},{"id":"spawn-a-worker","name":"Spawn a worker","behaviorIds":["make-work-multiplayer"],"featureIds":["subagents","background-tasks"],"whyItTravels":"A pull request makes work visible to other people. Subagents and background tasks make work visible to other workers. The human stays on one thread; the extra labor happens off to the side, with its own state, and reports back. The mechanic is fan-out without forcing the user to become a process manager. Once Cursor and Claude Code showed that parallel agents felt like more throughput rather than more chaos, every rival had to answer it.","features":[{"featureId":"subagents","name":"Subagents / Parallel Agents","category":"Agentic","description":"Spawning independent sub-agents or running multiple agents in parallel.","leader":"claude-code","shippedByCount":27,"spreadDays":538,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-04-18T22:33:26.843Z","version":"0.2.74","releaseId":"claude-code-0.2.74","rank":1,"lagDaysFromLeader":0},{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-10-16T04:00:00.000Z","version":"1.12.20","releaseId":"windsurf-1.12.20","rank":2,"lagDaysFromLeader":180},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2025-12-11T00:00:00.000Z","version":"2025.12.11","releaseId":"gemini-api-2025-12-11","rank":3,"lagDaysFromLeader":236},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2025-12-18T05:00:00.000Z","version":"1.23.0","releaseId":"kiro-1.23.0","rank":4,"lagDaysFromLeader":243},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-01-02T20:06:50.000Z","version":"v0.0.374","releaseId":"github-copilot-v0.0.374","rank":5,"lagDaysFromLeader":259},{"tool":"cursor","toolDisplayName":"Cursor","date":"2026-01-22T00:00:00.000Z","version":"2.4","releaseId":"cursor-2.4","rank":6,"lagDaysFromLeader":278},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-01-25T16:37:37.000Z","version":"rust-v0.90.0","releaseId":"openai-codex-rust-v0.90.0","rank":7,"lagDaysFromLeader":282},{"tool":"ollama","toolDisplayName":"Ollama","date":"2026-02-03T01:21:21.000Z","version":"0.15.5","releaseId":"ollama-0.15.5","rank":8,"lagDaysFromLeader":290},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2026-02-04T00:54:53.000Z","version":"0.1.29","releaseId":"claude-agent-sdk-python-0.1.29","rank":9,"lagDaysFromLeader":291},{"tool":"cline","toolDisplayName":"Cline","date":"2026-02-12T01:13:44.000Z","version":"3.58.0","releaseId":"cline-3.58.0","rank":10,"lagDaysFromLeader":299},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-02-17T18:53:43.000Z","version":"0.2.45","releaseId":"claude-agent-sdk-typescript-0.2.45","rank":11,"lagDaysFromLeader":305},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-02-20T09:07:26.000Z","version":"1.5.0","releaseId":"mastra-1.5.0","rank":12,"lagDaysFromLeader":307},{"tool":"xai-api","toolDisplayName":"xAI API","date":"2026-03-10T00:00:00.000Z","version":"2026.03.10","releaseId":"xai-api-2026-03-10","rank":13,"lagDaysFromLeader":325},{"tool":"zed","toolDisplayName":"Zed","date":"2026-03-11T15:41:38.000Z","version":"0.227.1","releaseId":"zed-0.227.1","rank":14,"lagDaysFromLeader":327},{"tool":"gemini-cli","toolDisplayName":"Gemini CLI","date":"2026-04-01T20:29:23.000Z","version":"v0.36.0","releaseId":"gemini-cli-v0.36.0","rank":15,"lagDaysFromLeader":348},{"tool":"cloudflare-agents-sdk","toolDisplayName":"Cloudflare Agents SDK","date":"2026-04-18T18:20:32.000Z","version":"0.11.3","releaseId":"cloudflare-agents-sdk-0.11.3","rank":16,"lagDaysFromLeader":365},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2026-04-24T00:00:00.000Z","version":"2026.04.24","releaseId":"replit-agent-2026-04-24","rank":17,"lagDaysFromLeader":370},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-05-09T16:54:45.000Z","version":"1.14.42","releaseId":"opencode-1.14.42","rank":18,"lagDaysFromLeader":386},{"tool":"langgraph-python","toolDisplayName":"LangGraph (Python)","date":"2026-06-01T18:56:09.000Z","version":"1.2.3","releaseId":"langgraph-python-1.2.3","rank":19,"lagDaysFromLeader":409},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-06-18T00:00:00.000Z","version":"0.2.56","releaseId":"grok-build-0.2.56","rank":20,"lagDaysFromLeader":425},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-07-09T00:00:00.000Z","version":"2026.07.09","releaseId":"openai-platform-2026-07-09","rank":21,"lagDaysFromLeader":446},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2026-07-10T23:55:32.000Z","version":"0.13.2","releaseId":"openai-agents-js-0.13.2","rank":22,"lagDaysFromLeader":448},{"tool":"openai-agents-python","toolDisplayName":"OpenAI Agents SDK (Python)","date":"2026-07-11T01:07:46.000Z","version":"0.18.2","releaseId":"openai-agents-python-0.18.2","rank":23,"lagDaysFromLeader":448},{"tool":"amp","toolDisplayName":"Amp","date":"2026-07-17T00:00:00.000Z","version":"2026.07.17","releaseId":"amp-from-agent-to-agent","rank":24,"lagDaysFromLeader":454},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-07-24T03:02:18.000Z","version":"1.1.6","releaseId":"antigravity-cli-1.1.6","rank":25,"lagDaysFromLeader":461},{"tool":"copilot-vscode","toolDisplayName":"GitHub Copilot in VS Code","date":"2026-09-02T17:00:00.000Z","version":"1.136","releaseId":"copilot-vscode-1.136","rank":26,"lagDaysFromLeader":502},{"tool":"anthropic-api","toolDisplayName":"Claude API","date":"2026-10-09T00:00:00.000Z","version":"2026.10.09","releaseId":"anthropic-api-2026-10-09","rank":27,"lagDaysFromLeader":538}]},{"featureId":"background-tasks","name":"Background Tasks","category":"Automation","description":"Long-running work executed in the background/async.","leader":"claude-code","shippedByCount":26,"spreadDays":454,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-08-07T21:33:10.140Z","version":"1.0.71","releaseId":"claude-code-1.0.71","rank":1,"lagDaysFromLeader":0},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2025-10-28T17:07:14.000Z","version":"v0.0.353","releaseId":"github-copilot-v0.0.353","rank":2,"lagDaysFromLeader":82},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2025-12-09T00:42:42.000Z","version":"1.7.0","releaseId":"crewai-1.7.0","rank":3,"lagDaysFromLeader":123},{"tool":"cline","toolDisplayName":"Cline","date":"2026-01-06T21:09:53.000Z","version":"3.47.0","releaseId":"cline-3.47.0","rank":4,"lagDaysFromLeader":152},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2026-01-09T00:00:00.000Z","version":"2026.01.09","releaseId":"replit-agent-2026-01-09","rank":5,"lagDaysFromLeader":154},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-02-24T01:40:54.000Z","version":"0.2.51","releaseId":"claude-agent-sdk-typescript-0.2.51","rank":6,"lagDaysFromLeader":200},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-02-25T09:16:42.000Z","version":"1.7.0","releaseId":"mastra-1.7.0","rank":7,"lagDaysFromLeader":201},{"tool":"cloudflare-agents-sdk","toolDisplayName":"Cloudflare Agents SDK","date":"2026-04-07T12:36:46.000Z","version":"0.10.0","releaseId":"cloudflare-agents-sdk-0.10.0","rank":8,"lagDaysFromLeader":243},{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2026-04-15T00:00:00.000Z","version":"2.0.44","releaseId":"windsurf-2.0.44","rank":9,"lagDaysFromLeader":250},{"tool":"cursor","toolDisplayName":"Cursor","date":"2026-04-24T00:00:00.000Z","version":"3.2","releaseId":"cursor-3.2","rank":10,"lagDaysFromLeader":259},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2026-05-05T12:31:27.000Z","version":"0.9.0","releaseId":"openai-agents-js-0.9.0","rank":11,"lagDaysFromLeader":271},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-05-15T00:39:56.000Z","version":"1.14.51","releaseId":"opencode-1.14.51","rank":12,"lagDaysFromLeader":280},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2026-05-19T00:00:00.000Z","version":"2026.05.19","releaseId":"gemini-api-2026-05-19","rank":13,"lagDaysFromLeader":284},{"tool":"mistral-api","toolDisplayName":"Mistral AI Platform","date":"2026-05-28T00:00:00.000Z","version":"2026.05.28","releaseId":"mistral-api-2026-05-28","rank":14,"lagDaysFromLeader":293},{"tool":"amp","toolDisplayName":"Amp","date":"2026-06-30T00:00:00.000Z","version":"2026.06.30","releaseId":"amp-agents-in-orbs","rank":15,"lagDaysFromLeader":326},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-07-01T22:59:00.000Z","version":"1.0.15","releaseId":"antigravity-cli-1.0.15","rank":16,"lagDaysFromLeader":328},{"tool":"xai-api","toolDisplayName":"xAI API","date":"2026-08-11T00:00:00.000Z","version":"2026.08.11","releaseId":"xai-api-2026-08-11","rank":17,"lagDaysFromLeader":368},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-08-11T21:00:00.000Z","version":"2.17.0","releaseId":"kiro-2.17.0","rank":18,"lagDaysFromLeader":369},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-09-04T00:00:00.000Z","version":"1.0.19","releaseId":"grok-build-1.0.19","rank":19,"lagDaysFromLeader":392},{"tool":"copilot-vscode","toolDisplayName":"GitHub Copilot in VS Code","date":"2026-09-09T17:00:00.000Z","version":"1.137","releaseId":"copilot-vscode-1.137","rank":20,"lagDaysFromLeader":398},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-09-09T22:35:38.000Z","version":"rust-v0.154.0","releaseId":"openai-codex-rust-v0.154.0","rank":21,"lagDaysFromLeader":398},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-09-10T00:00:00.000Z","version":"2026.09.10","releaseId":"openai-platform-2026-09-10","rank":22,"lagDaysFromLeader":398},{"tool":"anthropic-api","toolDisplayName":"Claude API","date":"2026-09-14T00:00:00.000Z","version":"2026.09.14","releaseId":"anthropic-api-2026-09-14","rank":23,"lagDaysFromLeader":402},{"tool":"ollama","toolDisplayName":"Ollama","date":"2026-10-08T16:53:47.000Z","version":"0.40.2","releaseId":"ollama-0.40.2","rank":24,"lagDaysFromLeader":427},{"tool":"lovable","toolDisplayName":"Lovable","date":"2026-11-04T00:00:00.000Z","version":"2026.11.04","releaseId":"lovable-2026-11-04","rank":25,"lagDaysFromLeader":453},{"tool":"factory-droid","toolDisplayName":"Factory Droid","date":"2026-11-05T00:00:00.000Z","version":"1.4.0","releaseId":"factory-droid-1.4.0","rank":26,"lagDaysFromLeader":454}]}]},{"id":"protocol-not-plugin","name":"Protocol, not plugin","behaviorIds":["extend-without-rewriting"],"featureIds":["mcp-support"],"whyItTravels":"A plugin marketplace is a vendor's garden. A protocol is a pipe anyone can attach to. MCP traveled because it let tools inherit the rest of the internet's connectors instead of rebuilding each one. The mechanic is interoperability as the product: once users could plug the same server into two agents, staying on a tool that could not speak the protocol started to feel like a tax. That is network-density machinery, which is why it copied faster than most features on this list.","features":[{"featureId":"mcp-support","name":"MCP Support","category":"Extensibility","description":"Model Context Protocol client/server support to connect external tools & data.","leader":"windsurf","shippedByCount":21,"spreadDays":593,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-02-13T05:00:00.000Z","version":"1.3.3","releaseId":"windsurf-1.3.3","rank":1,"lagDaysFromLeader":0},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2025-07-23T01:00:57.000Z","version":"rust-v0.9.0","releaseId":"openai-codex-rust-v0.9.0","rank":2,"lagDaysFromLeader":160},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2025-10-27T17:31:44.000Z","version":"1.2.1","releaseId":"crewai-1.2.1","rank":3,"lagDaysFromLeader":257},{"tool":"xai-api","toolDisplayName":"xAI API","date":"2025-11-07T00:00:00.000Z","version":"2025.11.07","releaseId":"xai-api-2025-11-07","rank":4,"lagDaysFromLeader":267},{"tool":"v0","toolDisplayName":"v0","date":"2025-11-17T00:00:00.000Z","version":"2025.11.17.2","releaseId":"v0-2025-11-17-mcp-presets","rank":5,"lagDaysFromLeader":277},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2025-12-12T00:00:00.000Z","version":"2025.12.12","releaseId":"replit-agent-2025-12-12","rank":6,"lagDaysFromLeader":302},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2025-12-18T05:00:00.000Z","version":"1.23.0","releaseId":"kiro-1.23.0","rank":7,"lagDaysFromLeader":308},{"tool":"gemini-cli","toolDisplayName":"Gemini CLI","date":"2026-01-07T02:07:44.000Z","version":"v0.23.0","releaseId":"gemini-cli-v0.23.0","rank":8,"lagDaysFromLeader":328},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2026-01-27T01:47:12.000Z","version":"0.1.23","releaseId":"claude-agent-sdk-python-0.1.23","rank":9,"lagDaysFromLeader":348},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-01-28T02:25:24.000Z","version":"0.2.21","releaseId":"claude-agent-sdk-typescript-0.2.21","rank":10,"lagDaysFromLeader":349},{"tool":"cursor","toolDisplayName":"Cursor","date":"2026-03-03T00:00:00.000Z","version":"2.6","releaseId":"cursor-2.6","rank":11,"lagDaysFromLeader":383},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-03-03T18:12:57.000Z","version":"v0.0.421","releaseId":"github-copilot-v0.0.421","rank":12,"lagDaysFromLeader":384},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-03-09T12:11:39.000Z","version":"1.10.0","releaseId":"mastra-1.10.0","rank":13,"lagDaysFromLeader":389},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2026-03-23T02:52:24.000Z","version":"0.8.0","releaseId":"openai-agents-js-0.8.0","rank":14,"lagDaysFromLeader":403},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2026-04-21T00:00:00.000Z","version":"2026.04.21","releaseId":"gemini-api-2026-04-21","rank":15,"lagDaysFromLeader":432},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-04-24T00:00:00.000Z","version":"2026.04.24","releaseId":"openai-platform-2026-04-24","rank":16,"lagDaysFromLeader":435},{"tool":"anthropic-api","toolDisplayName":"Claude API","date":"2026-05-19T00:00:00.000Z","version":"2026.05.19","releaseId":"anthropic-api-2026-05-19","rank":17,"lagDaysFromLeader":460},{"tool":"cloudflare-agents-sdk","toolDisplayName":"Cloudflare Agents SDK","date":"2026-06-08T20:47:18.000Z","version":"0.15.0","releaseId":"cloudflare-agents-sdk-0.15.0","rank":18,"lagDaysFromLeader":481},{"tool":"amp","toolDisplayName":"Amp","date":"2026-08-19T00:00:00.000Z","version":"2026.08.19","releaseId":"amp-mcp-in-orbs","rank":19,"lagDaysFromLeader":552},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-08-20T04:14:18.000Z","version":"1.1.16","releaseId":"antigravity-cli-1.1.16","rank":20,"lagDaysFromLeader":553},{"tool":"lovable","toolDisplayName":"Lovable","date":"2026-09-29T00:00:00.000Z","version":"2026.09.29","releaseId":"lovable-2026-09-29","rank":21,"lagDaysFromLeader":593}]}]},{"id":"packaged-recipes","name":"Packaged recipes","behaviorIds":["extend-without-rewriting"],"featureIds":["skills-plugins","slash-commands","hooks"],"whyItTravels":"Custom slash commands, skills, and lifecycle hooks are not power-user chrome. They let a behavior get written once and reused without opening the agent's internals. Contribution happens as a byproduct of solving your own problem, then sharing the recipe. The mechanic increases contribution without a giant reward — the same reason Stories and sticker packs spread. Tools that shipped a skill, command, or hook format were copying a way to let the crowd extend the product.","features":[{"featureId":"skills-plugins","name":"Skills / Plugins","category":"Extensibility","description":"Packaged, reusable skills or a plugin system.","leader":"claude-code","shippedByCount":29,"spreadDays":396,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-10-09T15:43:28.593Z","version":"2.0.12","releaseId":"claude-code-2.0.12","rank":1,"lagDaysFromLeader":0},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2025-10-24T23:04:50.000Z","version":"0.1.5","releaseId":"claude-agent-sdk-python-0.1.5","rank":2,"lagDaysFromLeader":15},{"tool":"amp","toolDisplayName":"Amp","date":"2025-12-10T00:00:00.000Z","version":"2025.12.10","releaseId":"amp-agent-skills","rank":3,"lagDaysFromLeader":61},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2025-12-10T22:28:39.000Z","version":"rust-v0.69.0","releaseId":"openai-codex-rust-v0.69.0","rank":4,"lagDaysFromLeader":62},{"tool":"cline","toolDisplayName":"Cline","date":"2026-01-09T19:36:39.000Z","version":"3.48.0","releaseId":"cline-3.48.0","rank":5,"lagDaysFromLeader":92},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-01-10T17:09:29.000Z","version":"1.0.0-beta.20","releaseId":"mastra-1.0.0-beta.20","rank":6,"lagDaysFromLeader":93},{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2026-01-12T05:00:00.000Z","version":"1.13.6","releaseId":"windsurf-1.13.6","rank":7,"lagDaysFromLeader":95},{"tool":"gemini-cli","toolDisplayName":"Gemini CLI","date":"2026-01-21T05:15:12.000Z","version":"v0.25.0","releaseId":"gemini-cli-v0.25.0","rank":8,"lagDaysFromLeader":104},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-01-22T02:31:11.000Z","version":"v0.0.389","releaseId":"github-copilot-v0.0.389","rank":9,"lagDaysFromLeader":104},{"tool":"zed","toolDisplayName":"Zed","date":"2026-01-28T16:55:37.000Z","version":"0.221.4","releaseId":"zed-0.221.4","rank":10,"lagDaysFromLeader":111},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-01-31T13:48:37.000Z","version":"1.1.48","releaseId":"opencode-1.1.48","rank":11,"lagDaysFromLeader":114},{"tool":"openai-agents-python","toolDisplayName":"OpenAI Agents SDK (Python)","date":"2026-02-11T19:14:01.000Z","version":"0.8.4","releaseId":"openai-agents-python-0.8.4","rank":12,"lagDaysFromLeader":125},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2026-02-11T20:24:39.000Z","version":"0.4.7","releaseId":"openai-agents-js-0.4.7","rank":13,"lagDaysFromLeader":125},{"tool":"cursor","toolDisplayName":"Cursor","date":"2026-02-17T00:00:00.000Z","version":"2.5","releaseId":"cursor-2.5","rank":14,"lagDaysFromLeader":130},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-03-12T00:34:17.000Z","version":"0.2.74","releaseId":"claude-agent-sdk-typescript-0.2.74","rank":15,"lagDaysFromLeader":153},{"tool":"v0","toolDisplayName":"v0","date":"2026-03-16T00:00:00.000Z","version":"2026.03.16","releaseId":"v0-2026-03-16","rank":16,"lagDaysFromLeader":157},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-03-26T01:07:41.000Z","version":"1.12.0","releaseId":"crewai-1.12.0","rank":17,"lagDaysFromLeader":167},{"tool":"ollama","toolDisplayName":"Ollama","date":"2026-04-16T22:00:17.000Z","version":"0.21.0","releaseId":"ollama-0.21.0","rank":18,"lagDaysFromLeader":189},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-04-24T00:00:00.000Z","version":"2026.04.24","releaseId":"openai-platform-2026-04-24","rank":19,"lagDaysFromLeader":196},{"tool":"anthropic-api","toolDisplayName":"Claude API","date":"2026-05-11T00:00:00.000Z","version":"2026.05.11","releaseId":"anthropic-api-2026-05-11","rank":20,"lagDaysFromLeader":213},{"tool":"mistral-api","toolDisplayName":"Mistral AI Platform","date":"2026-05-28T00:00:00.000Z","version":"2026.05.28","releaseId":"mistral-api-2026-05-28","rank":21,"lagDaysFromLeader":230},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-06-11T00:00:00.000Z","version":"0.2.49","releaseId":"grok-build-0.2.49","rank":22,"lagDaysFromLeader":244},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2026-06-12T00:00:00.000Z","version":"2026.06.12","releaseId":"replit-agent-2026-06-12","rank":23,"lagDaysFromLeader":245},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-06-17T02:48:46.000Z","version":"1.0.9","releaseId":"antigravity-cli-1.0.9","rank":24,"lagDaysFromLeader":250},{"tool":"bolt","toolDisplayName":"Bolt","date":"2026-07-20T00:00:00.000Z","version":"2026.07.20","releaseId":"bolt-2026-07-20","rank":25,"lagDaysFromLeader":283},{"tool":"factory-droid","toolDisplayName":"Factory Droid","date":"2026-09-18T00:00:00.000Z","version":"0.222.0","releaseId":"factory-droid-0.222.0","rank":26,"lagDaysFromLeader":343},{"tool":"devin","toolDisplayName":"Devin","date":"2026-09-18T00:00:00.000Z","version":"2026.09.18","releaseId":"devin-2026-09-18","rank":27,"lagDaysFromLeader":343},{"tool":"cloudflare-agents-sdk","toolDisplayName":"Cloudflare Agents SDK","date":"2026-10-20T15:20:02.000Z","version":"0.29.0","releaseId":"cloudflare-agents-sdk-0.29.0","rank":28,"lagDaysFromLeader":376},{"tool":"lovable","toolDisplayName":"Lovable","date":"2026-11-10T00:00:00.000Z","version":"2026.11.10","releaseId":"lovable-2026-11-10","rank":29,"lagDaysFromLeader":396}]},{"featureId":"slash-commands","name":"Custom Slash Commands","category":"UX","description":"User-definable \"/command\" shortcuts / reusable prompts.","leader":"claude-code","shippedByCount":14,"spreadDays":588,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-03-05T17:48:20.869Z","version":"0.2.31","releaseId":"claude-code-0.2.31","rank":1,"lagDaysFromLeader":0},{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-05-06T04:00:00.000Z","version":"1.8.2","releaseId":"windsurf-1.8.2","rank":2,"lagDaysFromLeader":61},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2025-08-20T05:48:52.000Z","version":"rust-v0.23.0","releaseId":"openai-codex-rust-v0.23.0","rank":3,"lagDaysFromLeader":168},{"tool":"cursor","toolDisplayName":"Cursor","date":"2025-09-12T01:25:00.000Z","version":"1.6","releaseId":"cursor-1.6","rank":4,"lagDaysFromLeader":190},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2025-09-29T18:59:51.000Z","version":"v0.0.329","releaseId":"github-copilot-v0.0.329","rank":5,"lagDaysFromLeader":208},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2025-10-31T05:41:04.000Z","version":"0.1.6","releaseId":"claude-agent-sdk-python-0.1.6","rank":6,"lagDaysFromLeader":239},{"tool":"cline","toolDisplayName":"Cline","date":"2025-12-12T23:34:22.000Z","version":"3.42.0","releaseId":"cline-3.42.0","rank":7,"lagDaysFromLeader":282},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-01-31T13:48:37.000Z","version":"1.1.48","releaseId":"opencode-1.1.48","rank":8,"lagDaysFromLeader":332},{"tool":"gemini-cli","toolDisplayName":"Gemini CLI","date":"2026-02-10T21:59:54.000Z","version":"v0.28.0","releaseId":"gemini-cli-v0.28.0","rank":9,"lagDaysFromLeader":342},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-06-12T20:00:00.000Z","version":"2.7.0","releaseId":"kiro-2.7.0","rank":10,"lagDaysFromLeader":464},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-07-09T00:00:00.000Z","version":"0.2.94","releaseId":"grok-build-0.2.94","rank":11,"lagDaysFromLeader":490},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-07-16T01:01:57.000Z","version":"1.1.3","releaseId":"antigravity-cli-1.1.3","rank":12,"lagDaysFromLeader":497},{"tool":"v0","toolDisplayName":"v0","date":"2026-07-21T00:00:00.000Z","version":"2026.07.21","releaseId":"v0-2026-07-21","rank":13,"lagDaysFromLeader":502},{"tool":"factory-droid","toolDisplayName":"Factory Droid","date":"2026-10-15T00:00:00.000Z","version":"0.242.0","releaseId":"factory-droid-0.242.0","rank":14,"lagDaysFromLeader":588}]},{"featureId":"hooks","name":"Hooks","category":"Extensibility","description":"User-defined scripts that run on lifecycle events (pre/post tool, etc.).","leader":"claude-code","shippedByCount":23,"spreadDays":486,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-06-30T20:29:03.323Z","version":"1.0.38","releaseId":"claude-code-1.0.38","rank":1,"lagDaysFromLeader":0},{"tool":"cursor","toolDisplayName":"Cursor","date":"2025-09-29T05:08:58.822Z","version":"1.7","releaseId":"cursor-1.7","rank":2,"lagDaysFromLeader":90},{"tool":"cline","toolDisplayName":"Cline","date":"2025-10-23T02:51:20.000Z","version":"3.34.0","releaseId":"cline-3.34.0","rank":3,"lagDaysFromLeader":114},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2025-11-07T04:23:41.000Z","version":"1.4.0","releaseId":"crewai-1.4.0","rank":4,"lagDaysFromLeader":129},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2025-11-21T20:51:17.000Z","version":"0.1.9","releaseId":"claude-agent-sdk-python-0.1.9","rank":5,"lagDaysFromLeader":144},{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-12-10T05:00:00.000Z","version":"1.12.41","releaseId":"windsurf-1.12.41","rank":6,"lagDaysFromLeader":162},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-01-10T17:05:13.000Z","version":"1.0.0-beta.13","releaseId":"mastra-1.0.0-beta.13","rank":7,"lagDaysFromLeader":194},{"tool":"gemini-cli","toolDisplayName":"Gemini CLI","date":"2026-01-14T13:27:15.000Z","version":"v0.24.0","releaseId":"gemini-cli-v0.24.0","rank":8,"lagDaysFromLeader":198},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-01-21T22:01:09.000Z","version":"0.2.15","releaseId":"claude-agent-sdk-typescript-0.2.15","rank":9,"lagDaysFromLeader":205},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2026-02-03T08:47:48.000Z","version":"0.4.5","releaseId":"openai-agents-js-0.4.5","rank":10,"lagDaysFromLeader":218},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-02-03T21:35:14.000Z","version":"v0.0.402","releaseId":"github-copilot-v0.0.402","rank":11,"lagDaysFromLeader":218},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-02-04T01:35:29.000Z","version":"1.1.50","releaseId":"opencode-1.1.50","rank":12,"lagDaysFromLeader":218},{"tool":"cloudflare-agents-sdk","toolDisplayName":"Cloudflare Agents SDK","date":"2026-04-11T06:11:18.000Z","version":"0.10.1","releaseId":"cloudflare-agents-sdk-0.10.1","rank":13,"lagDaysFromLeader":284},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-05-08T23:09:55.000Z","version":"rust-v0.130.0","releaseId":"openai-codex-rust-v0.130.0","rank":14,"lagDaysFromLeader":312},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-06-18T00:00:00.000Z","version":"0.2.57","releaseId":"grok-build-0.2.57","rank":15,"lagDaysFromLeader":352},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-07-17T00:00:00.000Z","version":"2.13.0","releaseId":"kiro-2.13.0","rank":16,"lagDaysFromLeader":381},{"tool":"amp","toolDisplayName":"Amp","date":"2026-07-23T00:00:00.000Z","version":"2026.07.23","releaseId":"amp-event-driven-orbs","rank":17,"lagDaysFromLeader":387},{"tool":"copilot-vscode","toolDisplayName":"GitHub Copilot in VS Code","date":"2026-09-02T17:00:00.000Z","version":"1.136","releaseId":"copilot-vscode-1.136","rank":18,"lagDaysFromLeader":429},{"tool":"factory-droid","toolDisplayName":"Factory Droid","date":"2026-09-19T00:00:00.000Z","version":"0.223.0","releaseId":"factory-droid-0.223.0","rank":19,"lagDaysFromLeader":445},{"tool":"langgraph-js","toolDisplayName":"LangGraph.js","date":"2026-09-21T21:38:59.000Z","version":"1.4.17","releaseId":"langgraph-js-1.4.17","rank":20,"lagDaysFromLeader":448},{"tool":"vercel-ai-sdk","toolDisplayName":"Vercel AI SDK","date":"2026-10-26T18:57:14.000Z","version":"7.0.154","releaseId":"vercel-ai-sdk-7.0.154","rank":21,"lagDaysFromLeader":483},{"tool":"lovable","toolDisplayName":"Lovable","date":"2026-10-27T00:00:00.000Z","version":"2026.10.27","releaseId":"lovable-2026-10-27","rank":22,"lagDaysFromLeader":483},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-10-30T05:39:38.000Z","version":"1.4.11","releaseId":"antigravity-cli-1.4.11","rank":23,"lagDaysFromLeader":486}]}]},{"id":"persistent-instructions","name":"Persistent instructions","behaviorIds":["keep-context-alive"],"featureIds":["memory-files"],"whyItTravels":"AGENTS.md and CLAUDE.md are not documentation features. They are a way for work to leave enough context behind that the next session — or the next person — can pick it up without another meeting. The mechanic is memory that lives in the repo, not in a chat transcript that dies when you close the tab. Once one tool taught users to keep a file the agent always reads, every other tool had to honor the same file or lose the project's accumulated taste.","features":[{"featureId":"memory-files","name":"Project Memory Files","category":"Context","description":"Persistent instruction/memory files (AGENTS.md, CLAUDE.md, rules).","leader":"windsurf","shippedByCount":13,"spreadDays":688,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2024-12-11T05:00:00.000Z","version":"1.1.0","releaseId":"windsurf-1.1.0","rank":1,"lagDaysFromLeader":0},{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-03-25T20:44:47.993Z","version":"0.2.54","releaseId":"claude-code-0.2.54","rank":2,"lagDaysFromLeader":105},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-01-19T18:54:45.000Z","version":"v0.0.385","releaseId":"github-copilot-v0.0.385","rank":3,"lagDaysFromLeader":405},{"tool":"claude-agent-sdk-typescript","toolDisplayName":"Claude Agent SDK (TypeScript)","date":"2026-01-27T01:35:33.000Z","version":"0.2.20","releaseId":"claude-agent-sdk-typescript-0.2.20","rank":4,"lagDaysFromLeader":412},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-02-12T18:29:57.000Z","version":"rust-v0.100.0","releaseId":"openai-codex-rust-v0.100.0","rank":5,"lagDaysFromLeader":429},{"tool":"zed","toolDisplayName":"Zed","date":"2026-05-27T19:07:40.000Z","version":"1.4.2","releaseId":"zed-1.4.2","rank":6,"lagDaysFromLeader":533},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2026-06-12T00:00:00.000Z","version":"2026.06.12","releaseId":"replit-agent-2026-06-12","rank":7,"lagDaysFromLeader":548},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-07-24T03:02:18.000Z","version":"1.1.6","releaseId":"antigravity-cli-1.1.6","rank":8,"lagDaysFromLeader":590},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-08-05T06:29:59.000Z","version":"1.15.11","releaseId":"crewai-1.15.11","rank":9,"lagDaysFromLeader":602},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-08-12T21:00:00.000Z","version":"2.18.0","releaseId":"kiro-2.18.0","rank":10,"lagDaysFromLeader":610},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-09-16T00:00:00.000Z","version":"1.0.34","releaseId":"grok-build-1.0.34","rank":11,"lagDaysFromLeader":644},{"tool":"devin","toolDisplayName":"Devin","date":"2026-10-09T00:00:00.000Z","version":"2026.10.09","releaseId":"devin-2026-10-09","rank":12,"lagDaysFromLeader":667},{"tool":"lovable","toolDisplayName":"Lovable","date":"2026-10-30T00:00:00.000Z","version":"2026.10.30","releaseId":"lovable-2026-10-30","rank":13,"lagDaysFromLeader":688}]}]},{"id":"live-world-input","name":"Live world input","behaviorIds":["keep-context-alive"],"featureIds":["web-search","image-input","voice-input"],"whyItTravels":"An agent trapped in the repo is guessing. Web fetch, screenshots, and voice are the same mechanic in different costumes: let the model see the world the user is already looking at. That collapses the 'paste more context' ritual and makes the next turn cheaper. Vision and search copied quickly because users felt the absence immediately — a coding agent that cannot look at the error screenshot or the live docs is doing half a job.","features":[{"featureId":"web-search","name":"Web Search / Fetch","category":"Context","description":"Built-in web search or fetching a URL for live context.","leader":"windsurf","shippedByCount":18,"spreadDays":599,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-01-17T05:00:00.000Z","version":"1.2.1","releaseId":"windsurf-1.2.1","rank":1,"lagDaysFromLeader":0},{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-03-21T18:04:02.580Z","version":"0.2.53","releaseId":"claude-code-0.2.53","rank":2,"lagDaysFromLeader":64},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2025-12-11T00:00:00.000Z","version":"2025.12.11","releaseId":"gemini-api-2025-12-11","rank":3,"lagDaysFromLeader":328},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-01-02T20:06:50.000Z","version":"v0.0.374","releaseId":"github-copilot-v0.0.374","rank":4,"lagDaysFromLeader":351},{"tool":"cline","toolDisplayName":"Cline","date":"2026-01-09T19:36:39.000Z","version":"3.48.0","releaseId":"cline-3.48.0","rank":5,"lagDaysFromLeader":358},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2026-01-23T00:00:00.000Z","version":"2026.01.23","releaseId":"replit-agent-2026-01-23","rank":6,"lagDaysFromLeader":371},{"tool":"ollama","toolDisplayName":"Ollama","date":"2026-02-14T08:43:11.000Z","version":"0.16.2","releaseId":"ollama-0.16.2","rank":7,"lagDaysFromLeader":393},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2026-03-09T04:03:09.000Z","version":"0.6.0","releaseId":"openai-agents-js-0.6.0","rank":8,"lagDaysFromLeader":416},{"tool":"openai-agents-python","toolDisplayName":"OpenAI Agents SDK (Python)","date":"2026-03-09T04:10:12.000Z","version":"0.11.0","releaseId":"openai-agents-python-0.11.0","rank":9,"lagDaysFromLeader":416},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-03-19T10:48:28.000Z","version":"1.14.0","releaseId":"mastra-1.14.0","rank":10,"lagDaysFromLeader":426},{"tool":"zed","toolDisplayName":"Zed","date":"2026-04-01T16:02:07.000Z","version":"0.230.0","releaseId":"zed-0.230.0","rank":11,"lagDaysFromLeader":439},{"tool":"cloudflare-agents-sdk","toolDisplayName":"Cloudflare Agents SDK","date":"2026-04-14T09:59:28.000Z","version":"0.11.0","releaseId":"cloudflare-agents-sdk-0.11.0","rank":12,"lagDaysFromLeader":452},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-04-24T00:00:00.000Z","version":"2026.04.24","releaseId":"openai-platform-2026-04-24","rank":13,"lagDaysFromLeader":462},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-04-30T19:11:45.000Z","version":"1.14.4","releaseId":"crewai-1.14.4","rank":14,"lagDaysFromLeader":469},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-05-21T00:00:00.000Z","version":"0.1.214","releaseId":"grok-build-0.1.214","rank":15,"lagDaysFromLeader":489},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-06-09T20:13:29.000Z","version":"rust-v0.139.0","releaseId":"openai-codex-rust-v0.139.0","rank":16,"lagDaysFromLeader":509},{"tool":"anthropic-api","toolDisplayName":"Claude API","date":"2026-06-11T00:00:00.000Z","version":"2026.06.11","releaseId":"anthropic-api-2026-06-11","rank":17,"lagDaysFromLeader":510},{"tool":"factory-droid","toolDisplayName":"Factory Droid","date":"2026-09-08T00:00:00.000Z","version":"0.215.0","releaseId":"factory-droid-0.215.0","rank":18,"lagDaysFromLeader":599}]},{"featureId":"image-input","name":"Image / Vision Input","category":"Multimodal","description":"Pasting or attaching images as input.","leader":"windsurf","shippedByCount":22,"spreadDays":715,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2024-11-27T05:00:00.000Z","version":"1.0.5","releaseId":"windsurf-1.0.5","rank":1,"lagDaysFromLeader":0},{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-04-02T00:24:59.952Z","version":"0.2.59","releaseId":"claude-code-0.2.59","rank":2,"lagDaysFromLeader":126},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2025-10-02T21:51:01.000Z","version":"v0.0.333","releaseId":"github-copilot-v0.0.333","rank":3,"lagDaysFromLeader":310},{"tool":"claude-agent-sdk-python","toolDisplayName":"Claude Agent SDK (Python)","date":"2025-10-23T23:10:33.000Z","version":"0.1.4","releaseId":"claude-agent-sdk-python-0.1.4","rank":4,"lagDaysFromLeader":331},{"tool":"openai-agents-js","toolDisplayName":"OpenAI Agents SDK (JS/TS)","date":"2025-10-24T23:07:45.000Z","version":"0.2.0","releaseId":"openai-agents-js-0.2.0","rank":5,"lagDaysFromLeader":332},{"tool":"ollama","toolDisplayName":"Ollama","date":"2025-10-29T02:07:54.000Z","version":"0.12.7","releaseId":"ollama-0.12.7","rank":6,"lagDaysFromLeader":336},{"tool":"v0","toolDisplayName":"v0","date":"2025-10-30T00:00:00.000Z","version":"2025.10.30.2","releaseId":"v0-2025-10-30-image-editing-nano-banana","rank":7,"lagDaysFromLeader":337},{"tool":"mastra","toolDisplayName":"Mastra","date":"2025-11-14T13:18:03.000Z","version":"0.24.1","releaseId":"mastra-0.24.1","rank":8,"lagDaysFromLeader":352},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2025-12-02T22:15:06.000Z","version":"rust-v0.64.0","releaseId":"openai-codex-rust-v0.64.0","rank":9,"lagDaysFromLeader":371},{"tool":"amp","toolDisplayName":"Amp","date":"2025-12-11T00:00:00.000Z","version":"2025.12.11","releaseId":"amp-look-at","rank":10,"lagDaysFromLeader":379},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2025-12-17T00:00:00.000Z","version":"2025.12.17","releaseId":"gemini-api-2025-12-17","rank":11,"lagDaysFromLeader":385},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-01-27T00:39:12.000Z","version":"1.9.0","releaseId":"crewai-1.9.0","rank":12,"lagDaysFromLeader":426},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-04-24T00:00:00.000Z","version":"2026.04.24","releaseId":"openai-platform-2026-04-24","rank":13,"lagDaysFromLeader":513},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-05-20T00:00:00.000Z","version":"0.1.212","releaseId":"grok-build-0.1.212","rank":14,"lagDaysFromLeader":539},{"tool":"zed","toolDisplayName":"Zed","date":"2026-05-20T16:11:53.000Z","version":"1.3.5","releaseId":"zed-1.3.5","rank":15,"lagDaysFromLeader":539},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-06-30T02:28:33.000Z","version":"1.0.14","releaseId":"antigravity-cli-1.0.14","rank":16,"lagDaysFromLeader":580},{"tool":"xai-api","toolDisplayName":"xAI API","date":"2026-08-12T00:00:00.000Z","version":"2026.08.12","releaseId":"xai-api-2026-08-12","rank":17,"lagDaysFromLeader":623},{"tool":"deepseek-api","toolDisplayName":"DeepSeek API","date":"2026-08-21T00:00:00.000Z","version":"2026.08.21","releaseId":"deepseek-api-2026-08-21","rank":18,"lagDaysFromLeader":632},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-10-27T09:04:44.000Z","version":"2.2.0","releaseId":"opencode-2.2.0","rank":19,"lagDaysFromLeader":699},{"tool":"copilot-vscode","toolDisplayName":"GitHub Copilot in VS Code","date":"2026-10-28T17:00:00.000Z","version":"1.144","releaseId":"copilot-vscode-1.144","rank":20,"lagDaysFromLeader":701},{"tool":"huggingface-transformers","toolDisplayName":"Hugging Face Transformers","date":"2026-10-29T14:15:39.000Z","version":"5.22.0","releaseId":"huggingface-transformers-5.22.0","rank":21,"lagDaysFromLeader":701},{"tool":"gemini-agent-platform","toolDisplayName":"Gemini Enterprise Agent Platform","date":"2026-11-12T00:00:00.000Z","version":"2026.11.12","releaseId":"gemini-agent-platform-2026-11-12","rank":22,"lagDaysFromLeader":715}]},{"featureId":"voice-input","name":"Voice Input","category":"Multimodal","description":"Speaking to the tool (speech-to-text input).","leader":"windsurf","shippedByCount":19,"spreadDays":475,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-07-17T04:00:00.000Z","version":"1.11.0","releaseId":"windsurf-1.11.0","rank":1,"lagDaysFromLeader":0},{"tool":"xai-api","toolDisplayName":"xAI API","date":"2025-12-16T00:00:00.000Z","version":"2025.12.16","releaseId":"xai-api-2025-12-16","rank":2,"lagDaysFromLeader":152},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-02-25T17:21:45.000Z","version":"rust-v0.105.0","releaseId":"openai-codex-rust-v0.105.0","rank":3,"lagDaysFromLeader":224},{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2026-03-06T22:47:03.532Z","version":"2.1.71","releaseId":"claude-code-2.1.71","rank":4,"lagDaysFromLeader":233},{"tool":"cursor","toolDisplayName":"Cursor","date":"2026-04-13T00:00:00.000Z","version":"3.1","releaseId":"cursor-3.1","rank":5,"lagDaysFromLeader":270},{"tool":"mastra","toolDisplayName":"Mastra","date":"2026-05-15T23:38:16.000Z","version":"1.34.0","releaseId":"mastra-1.34.0","rank":6,"lagDaysFromLeader":303},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-07-01T00:00:00.000Z","version":"0.2.80","releaseId":"grok-build-0.2.80","rank":7,"lagDaysFromLeader":349},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2026-07-24T00:00:00.000Z","version":"2026.07.24","releaseId":"replit-agent-2026-07-24","rank":8,"lagDaysFromLeader":372},{"tool":"bolt","toolDisplayName":"Bolt","date":"2026-08-10T00:00:00.000Z","version":"2026.08.10","releaseId":"bolt-2026-08-10","rank":9,"lagDaysFromLeader":389},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-08-12T21:00:00.000Z","version":"2.18.0","releaseId":"kiro-2.18.0","rank":10,"lagDaysFromLeader":392},{"tool":"amp","toolDisplayName":"Amp","date":"2026-08-18T00:00:00.000Z","version":"2026.08.18.2","releaseId":"amp-talk-to-puck","rank":11,"lagDaysFromLeader":397},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-08-26T02:21:06.000Z","version":"1.1.21","releaseId":"antigravity-cli-1.1.21","rank":12,"lagDaysFromLeader":405},{"tool":"devin","toolDisplayName":"Devin","date":"2026-09-16T00:00:00.000Z","version":"2026.09.16","releaseId":"devin-2026-09-16","rank":13,"lagDaysFromLeader":426},{"tool":"factory-droid","toolDisplayName":"Factory Droid","date":"2026-09-29T00:00:00.000Z","version":"0.229.0","releaseId":"factory-droid-0.229.0","rank":14,"lagDaysFromLeader":439},{"tool":"lovable","toolDisplayName":"Lovable","date":"2026-10-19T00:00:00.000Z","version":"2026.10.19","releaseId":"lovable-2026-10-19","rank":15,"lagDaysFromLeader":459},{"tool":"mistral-api","toolDisplayName":"Mistral AI Platform","date":"2026-10-20T00:00:00.000Z","version":"2026.10.20","releaseId":"mistral-api-2026-10-20","rank":16,"lagDaysFromLeader":460},{"tool":"ollama","toolDisplayName":"Ollama","date":"2026-10-22T01:33:10.000Z","version":"0.40.9","releaseId":"ollama-0.40.9","rank":17,"lagDaysFromLeader":462},{"tool":"vercel-ai-sdk","toolDisplayName":"Vercel AI SDK","date":"2026-10-22T21:20:30.000Z","version":"7.0.150","releaseId":"vercel-ai-sdk-7.0.150","rank":18,"lagDaysFromLeader":463},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2026-11-04T00:00:00.000Z","version":"2026.11.04","releaseId":"gemini-api-2026-11-04","rank":19,"lagDaysFromLeader":475}]}]},{"id":"native-habitat","name":"Native habitat","behaviorIds":["meet-user-in-habitat"],"featureIds":["vscode-extension","jetbrains","git-pr-integration","headless-mode","subscription-plan-auth"],"whyItTravels":"The mechanic is not 'we built an IDE plugin'. It is showing up in the habitat where the work already lives so using the agent does not feel like switching products. Editor extensions, git/PR actions, CI headless mode, and 'log in with the plan you already pay for' are all the same move: remove a context switch. Consumer apps learned this with sharing sheets and camera rolls. Agent tools learned it by embedding in VS Code, JetBrains, GitHub, and the subscription people already have.","features":[{"featureId":"vscode-extension","name":"VS Code Extension","category":"IDE","description":"A first-party Visual Studio Code integration.","leader":"claude-code","shippedByCount":4,"spreadDays":240,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-09-29T14:41:14.895Z","version":"2.0.0","releaseId":"claude-code-2.0.0","rank":1,"lagDaysFromLeader":0},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-02-12T22:09:48.000Z","version":"v0.0.409","releaseId":"github-copilot-v0.0.409","rank":2,"lagDaysFromLeader":136},{"tool":"ollama","toolDisplayName":"Ollama","date":"2026-03-25T03:00:57.000Z","version":"0.18.3","releaseId":"ollama-0.18.3","rank":3,"lagDaysFromLeader":177},{"tool":"mistral-api","toolDisplayName":"Mistral AI Platform","date":"2026-05-28T00:00:00.000Z","version":"2026.05.28","releaseId":"mistral-api-2026-05-28","rank":4,"lagDaysFromLeader":240}]},{"featureId":"jetbrains","name":"JetBrains Support","category":"IDE","description":"IntelliJ/PyCharm/WebStorm (JetBrains) integration.","leader":"windsurf","shippedByCount":3,"spreadDays":674,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2024-11-13T05:00:00.000Z","version":"1.0.2","releaseId":"windsurf-1.0.2","rank":1,"lagDaysFromLeader":0},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-05-26T00:00:00.000Z","version":"0.2.3","releaseId":"grok-build-0.2.3","rank":2,"lagDaysFromLeader":559},{"tool":"factory-droid","toolDisplayName":"Factory Droid","date":"2026-09-18T00:00:00.000Z","version":"0.222.0","releaseId":"factory-droid-0.222.0","rank":3,"lagDaysFromLeader":674}]},{"featureId":"git-pr-integration","name":"Git / PR Integration","category":"VCS","description":"First-class git operations or opening/reviewing pull requests.","leader":"windsurf","shippedByCount":12,"spreadDays":576,"shipments":[{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2025-04-02T04:00:00.000Z","version":"1.6.1","releaseId":"windsurf-1.6.1","rank":1,"lagDaysFromLeader":0},{"tool":"amp","toolDisplayName":"Amp","date":"2025-12-18T00:00:00.000Z","version":"2025.12.18","releaseId":"amp-agentic-code-review","rank":2,"lagDaysFromLeader":260},{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2026-01-27T00:39:43.153Z","version":"2.1.20","releaseId":"claude-code-2.1.20","rank":3,"lagDaysFromLeader":300},{"tool":"v0","toolDisplayName":"v0","date":"2026-01-28T00:00:00.000Z","version":"2026.01.28.2","releaseId":"v0-2026-01-28-github-import","rank":4,"lagDaysFromLeader":301},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-02-27T18:47:56.000Z","version":"v0.0.420","releaseId":"github-copilot-v0.0.420","rank":5,"lagDaysFromLeader":332},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-03-22T23:32:25.000Z","version":"1.3.0","releaseId":"opencode-1.3.0","rank":6,"lagDaysFromLeader":355},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2026-05-07T17:02:13.000Z","version":"rust-v0.129.0","releaseId":"openai-codex-rust-v0.129.0","rank":7,"lagDaysFromLeader":401},{"tool":"ollama","toolDisplayName":"Ollama","date":"2026-05-14T02:24:24.000Z","version":"0.24.0","releaseId":"ollama-0.24.0","rank":8,"lagDaysFromLeader":407},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-06-27T06:50:46.000Z","version":"1.15.1","releaseId":"crewai-1.15.1","rank":9,"lagDaysFromLeader":451},{"tool":"cursor","toolDisplayName":"Cursor","date":"2026-07-29T00:00:00.000Z","version":"2026.07.29","releaseId":"cursor-ipad","rank":10,"lagDaysFromLeader":483},{"tool":"factory-droid","toolDisplayName":"Factory Droid","date":"2026-10-27T00:00:00.000Z","version":"0.250.0","releaseId":"factory-droid-0.250.0","rank":11,"lagDaysFromLeader":573},{"tool":"replit-agent","toolDisplayName":"Replit Agent","date":"2026-10-30T00:00:00.000Z","version":"2026.10.30","releaseId":"replit-agent-2026-10-30","rank":12,"lagDaysFromLeader":576}]},{"featureId":"headless-mode","name":"Headless / Non-interactive Mode","category":"Automation","description":"Running non-interactively for scripting/CI (print mode, -p, exec).","leader":"claude-code","shippedByCount":15,"spreadDays":566,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-04-09T00:04:46.906Z","version":"0.2.66","releaseId":"claude-code-0.2.66","rank":1,"lagDaysFromLeader":0},{"tool":"openai-codex","toolDisplayName":"OpenAI Codex CLI","date":"2025-07-19T00:35:28.000Z","version":"rust-v0.8.0","releaseId":"openai-codex-rust-v0.8.0","rank":2,"lagDaysFromLeader":101},{"tool":"amp","toolDisplayName":"Amp","date":"2025-12-10T00:00:00.000Z","version":"2025.12.10.2","releaseId":"amp-python-sdk","rank":3,"lagDaysFromLeader":245},{"tool":"cline","toolDisplayName":"Cline","date":"2026-01-30T03:52:34.000Z","version":"3.56.0","releaseId":"cline-3.56.0","rank":4,"lagDaysFromLeader":296},{"tool":"langgraph-js","toolDisplayName":"LangGraph.js","date":"2026-04-04T05:17:21.000Z","version":"1.2.7","releaseId":"langgraph-js-1.2.7","rank":5,"lagDaysFromLeader":360},{"tool":"github-copilot","toolDisplayName":"GitHub Copilot CLI","date":"2026-04-20T17:05:34.000Z","version":"v1.0.33","releaseId":"github-copilot-v1.0.33","rank":6,"lagDaysFromLeader":377},{"tool":"windsurf","toolDisplayName":"Devin Desktop","date":"2026-04-28T00:00:00.000Z","version":"2.1.29","releaseId":"windsurf-2.1.29","rank":7,"lagDaysFromLeader":384},{"tool":"opencode","toolDisplayName":"OpenCode","date":"2026-05-09T16:54:45.000Z","version":"1.14.42","releaseId":"opencode-1.14.42","rank":8,"lagDaysFromLeader":396},{"tool":"xai-api","toolDisplayName":"xAI API","date":"2026-05-14T00:00:00.000Z","version":"2026.05.14","releaseId":"xai-api-2026-05-14","rank":9,"lagDaysFromLeader":400},{"tool":"crewai","toolDisplayName":"CrewAI","date":"2026-07-16T19:43:04.000Z","version":"1.15.3","releaseId":"crewai-1.15.3","rank":10,"lagDaysFromLeader":464},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-07-28T00:59:10.000Z","version":"1.1.8","releaseId":"antigravity-cli-1.1.8","rank":11,"lagDaysFromLeader":475},{"tool":"grok-build","toolDisplayName":"Grok Build","date":"2026-08-26T00:00:00.000Z","version":"1.0.11","releaseId":"grok-build-1.0.11","rank":12,"lagDaysFromLeader":504},{"tool":"kiro","toolDisplayName":"Kiro CLI","date":"2026-10-15T00:00:00.000Z","version":"2.32.0","releaseId":"kiro-2.32.0","rank":13,"lagDaysFromLeader":554},{"tool":"cursor","toolDisplayName":"Cursor","date":"2026-10-20T00:00:00.000Z","version":"2026.10.20","releaseId":"cursor-agent-sdk","rank":14,"lagDaysFromLeader":559},{"tool":"gemini-api","toolDisplayName":"Gemini API","date":"2026-10-27T00:00:00.000Z","version":"2026.10.27","releaseId":"gemini-api-2026-10-27","rank":15,"lagDaysFromLeader":566}]},{"featureId":"subscription-plan-auth","name":"Subscription Login (Pro/Max)","category":"Access","description":"Signing in with a consumer subscription instead of an API key.","leader":"claude-code","shippedByCount":8,"spreadDays":552,"shipments":[{"tool":"claude-code","toolDisplayName":"Claude Code","date":"2025-05-01T16:23:49.548Z","version":"0.2.96","releaseId":"claude-code-0.2.96","rank":1,"lagDaysFromLeader":0},{"tool":"zed","toolDisplayName":"Zed","date":"2026-05-15T00:48:51.000Z","version":"1.2.4","releaseId":"zed-1.2.4","rank":2,"lagDaysFromLeader":378},{"tool":"cline","toolDisplayName":"Cline","date":"2026-06-26T20:15:07.000Z","version":"4.0.0","releaseId":"cline-4.0.0","rank":3,"lagDaysFromLeader":421},{"tool":"amp","toolDisplayName":"Amp","date":"2026-07-18T00:00:00.000Z","version":"2026.07.18","releaseId":"amp-subscriptions","rank":4,"lagDaysFromLeader":442},{"tool":"ollama","toolDisplayName":"Ollama","date":"2026-09-15T21:21:07.000Z","version":"0.34.2","releaseId":"ollama-0.34.2","rank":5,"lagDaysFromLeader":502},{"tool":"v0","toolDisplayName":"v0","date":"2026-09-29T00:00:00.000Z","version":"2026.09.29","releaseId":"v0-2026-09-29-chatgpt-subscription","rank":6,"lagDaysFromLeader":515},{"tool":"openai-platform","toolDisplayName":"OpenAI API Platform","date":"2026-10-28T00:00:00.000Z","version":"2026.10.28","releaseId":"openai-platform-2026-10-28","rank":7,"lagDaysFromLeader":544},{"tool":"antigravity-cli","toolDisplayName":"Antigravity CLI","date":"2026-11-04T05:23:35.000Z","version":"1.5.0","releaseId":"antigravity-cli-1.5.0","rank":8,"lagDaysFromLeader":552}]}]}]}