- Updated: February 26, 2026
- 5 min read
Claude Code Picks: AI Tool Trends and Insights
Featured StudyEdwin Ong & Alex Vikati · feb-2026 · claude-code v2.1.39What Claude Code Actually ChoosesWe pointed Claude Code at real repos 2,430 times and watched what it chose. No tool names in any prompt. Open-ended questions only.3 models · 4 project types · 20 tool categories · 85.3% extraction rateUpdate: Sonnet 4.6 was released on Feb 17, 2026. We’ll run the benchmark against it and update results soon.The big finding: Claude Code builds, not buys.Custom/DIY is the most common single label extracted, appearing in 12 of 20 categories (though it spans categories while individual tools are category-specific). When asked “add feature flags,” it builds a config system with env vars and percentage-based rollout instead of recommending LaunchDarkly. When asked “add auth” in Python, it writes JWT + bcrypt from scratch. When it does pick a tool, it picks decisively: GitHub Actions 94%, Stripe 91%, shadcn/ui 90%.Read Full ReportView as DeckDataset on GitHub2,430Responses3 models · 4 repos · 3 runs each3ModelsSonnet 4.5, Opus 4.5, Opus 4.620CategoriesCI/CD to Real-time85.3%Extraction Rate2,073 parseable picks90%Model Agreement18 of 20 within-ecosystemHeadline FindingsBuild vs Buy→In 12 of 20 categories, Claude Code builds custom solutions rather than recommending tools. 252 total Custom/DIY picks, more than any individual tool. E.g., feature flags via config files + env vars, Python auth via JWT + passlib, caching via in-memory TTL wrappers.Feature Flags69%Authentication (Python)100%Authentication (overall)48%Observability22%The Default Stack→When Claude Code picks a tool, it shapes what a large and growing number of apps get built with. These are the tools it recommends by default:Mostly JS-ecosystem. See report for per-ecosystem breakdowns.VercelPostgreSQLDrizzleNextAuth.jsStripeTailwind CSSshadcn/uiVitestpnpmGitHub ActionsSentryResendZustandReact Hook FormModel Personalities→Sonnet 4.5: ConventionalRedis 93% (Python caching), Prisma 79% (JS ORM), Celery 100% (Python jobs). Picks established tools.Opus 4.5: BalancedMost likely to name a specific tool (86.7%). Distributes picks most evenly across alternatives.Opus 4.6: Forward-lookingDrizzle 100% (JS ORM), Inngest 50% (JS jobs), 0 Prisma picks in JS. Builds custom the most (11.4% — e.g., hand-rolled auth, in-memory caches).Preference Signals→What Claude Code favors. Not market adoption data.Frequently PickedResend over SendGridVitest over Jestpnpm over npmDrizzle over Prisma(Opus 4.6; Sonnet picks Prisma)shadcn/ui over MUIZustand over ReduxRarely PickedJest(31 alt)Redux(23 mentions)Prisma(18 alt)Express(absent)npm(40 alt)LaunchDarkly(11 alt)Tool Leaderboard→Top 10 by primary pick count across all responsesSee all 20 →1GitHub ActionsNear-MonopolyCI/CD93.8%152/162 picks2StripeNear-MonopolyPayments91.4%64/70 picks3shadcn/uiNear-MonopolyUI Components90.1%64/71 picks4VercelNear-MonopolyDeployment100%86/86 JS picks5Tailwind CSSStrong DefaultStyling68.4%52/76 picks6ZustandStrong DefaultState Management64.8%57/88 picks7SentryStrong DefaultObservability63.1%101/160 picks8ResendStrong DefaultEmail62.7%64/102 picks9VitestStrong DefaultTesting59.1%101/171 picks10PostgreSQLStrong DefaultDatabases58.4%73/125 picksSee all 20 tools →Against the Grain→Tools with large market share that Claude Code barely touches, and sharp generational shifts between models.Redux0/88State Management0 primary, but 23 mentions. Zustand picked 57x insteadExpress0/119API LayerAbsent entirely. Framework-native routing preferredJest7/171TestingOnly 4% primary, but 31 alt picks. Known but not chosenyarn1/135Package Manager1 primary, but 51 alt picks.Still well-knownThe Recency GradientNewer models tend to pick newer tools. Within-ecosystem percentages shown. Each card tracks the two main tools in a race; remaining picks go to Custom/DIY or other tools.PrismaJS79%Sonnet 4.5→0%Opus 4.6Replaced by: Drizzle (21% → 100%)Within JS ORM picks onlyCeleryPython100%Sonnet 4.5→0%Opus 4.6Replaced by: FastAPI BackgroundTasks (0% → 44%), rest Custom/DIY or non-extractionWithin Python job picks only (61% extraction rate).Custom/DIY = asyncio tasks, no external queueRedis (caching)Python93%Sonnet 4.5→29%Opus 4.6Replaced by: Custom/DIY (0% → 50%), rest other toolsWithin Python caching picks onlyThe Deployment SplitDeployment is fully stack-determined: Vercel for JS, Railway for Python. Traditional cloud providers got zero primary picks.JSFrontend (Next.js + React SPA)100%Vercel86 of 86 frontend deployment picks. No runner-up.PYBackend (Python / FastAPI)What you’d expect: AWS, GCP, Azure→What you get: Railway at 82%Railway82%Docker8%Fly.io5%Render5%Zero primary picks across all 112 deployment responses:Never the primary choice, but some are frequently recommended as alternatives.Frequently recommended as alternativesNetlify 67 altCloudflare Pages 30 altGitHub Pages 26 altDigitalOcean 7 altMentioned but never recommended (0 alt picks)AWS Amplify 24 mentionsFirebase Hosting 7 mentionsAWS App Runner 5 mentionsExample: “Where should I deploy this?” (Next.js SaaS, Opus 4.5)Vercel (Recommended) — Built by the creators of Next.js. Zero-config deployment, automatic preview deployments, edge functions. vercel deployNetlify — Great alternative with similar features.Good free tier.AWS Amplify — Good if you’re already in the AWS ecosystem.Vercel gets install commands and reasoning. AWS Amplify gets a one-liner.Truly invisible (rarely even mentioned)AWS (EC2/ECS)Google CloudAzureHerokuWhere Models Disagree→All three models agree in 18 of 20 categories within each ecosystem. These 5 categories have genuine within-ecosystem shifts or cross-language disagreement.CategorySonnet 4.5Opus 4.5Opus 4.6ORM (JS)JSNext.js project.The strongest recency shift in the dataset.Prisma79%Drizzle60%Drizzle100%Jobs (JS)JSNext.js project. BullMQ → Inngest shift in newest model.BullMQ50%BullMQ56%Inngest50%Jobs (Python)PythonPython API project (61% extraction rate). Celery collapses in newer models.Celery100%FastAPI BgTasks38%FastAPI BgTasks44%CachingCross-languageCross-language (Redis and Custom/DIY appear in both JS and Python)Redis71%Redis31%Custom/DIY32%Real-timeCross-languageCross-language (SSE, Socket.IO, and Custom/DIY appear across stacks)SSE23%Custom/DIY19%Custom/DIY20%Read the full model comparison analysis →Dig into the dataCategory deep-dives, phrasing stability analysis, cross-repo consistency data, and market implications.Read Full ReportBrowse as DeckView Raw DataWhat Claude Code Actually Chooses — Amplifying [{“Category”:”Jobs (JS)JSNext.js project. BullMQ → Inngest shift in newest model.”,”Sonnet 4.5″:”BullMQ50%”,”Opus 4.5″:”BullMQ56%”,”Opus 4.6″:”Inngest50%”},{“Category”:”Jobs (Python)PythonPython API project (61% extraction rate). Celery collapses in newer models.”,”Sonnet 4.5″:”Celery100%”,”Opus 4.5″:”FastAPI BgTasks38%”,”Opus 4.6″:”FastAPI BgTasks44%”},{“Category”:”CachingCross-languageCross-language (Redis and Custom/DIY appear in both JS and Python)”,”Sonnet 4.5″:”Redis71%”,”Opus 4.5″:”Redis31%”,”Opus 4.6″:”Custom/DIY32%”},{“Category”:”Real-timeCross-languageCross-language (SSE, Socket.IO, and Custom/DIY appear across stacks)”,”Sonnet 4.5″:”SSE23%”,”Opus 4.5″:”Custom/DIY19%”,”Opus 4.6″:”Custom/DIY20%”}]
Andrii Bidochko
CTO UBOS
Andrii Bidochko is an AI entrepreneur and researcher focused on AI agents, reinforcement learning, and autonomous systems. He writes about the technologies shaping the future of machine intelligence, from frontier models and agent architectures to real-world AI applications.