wanted to know what claude code actually reaches for by default. not what it says it’d use, what lands in the diff. setup: two plain starter repos (next.js + ts, python + fastapi), no sdks, no config, nothing hinting at a provider. prompts like “add persistence” or “let users upload files”, 3 wordings per category, never naming a tool. headless claude code on sonnet 5.5, stopped once the pick was visible (usually when a dependency got installed). 10 categories (mostly 12 runs each; jobs had 10), 118 total, about $19 in api spend. what came out:
- payments: stripe 12/12
- error monitoring: sentry 12/12
- auth: hand-rolled jwt/sessions 12/12. zero auth providers
- caching: built its own 12/12
- file storage: local disk 10/12, s3 2
- email: raw smtp 10/12, resend 2
- database: sqlite 9/12, self-hosted postgres 3
- deployment: plain docker 7/12, fly 4, heroku 1
- orm: sqlalchemy 6, drizzle 4, kysely 1, raw sql 1
- background jobs: built its own every time it actually did it. 2 runs it stopped and asked instead so the pattern is pretty clear. when there’s one obvious incumbent (stripe, sentry) it goes straight there. everywhere else it mostly writes the thing itself, even auth. vendors outside that short list basically don’t show up unless the prompt names them. caveats: only claude code so far, one model, two stacks. it’s a first instinct test, not “what would you ship to prod”. codex is next. i built a site to track this. full breakdown per category, prompts and every run’s evidence: https://whatagentspick.com/ curious if this matches what you see in your own sessions. especially auth, that one surprised me. submitted by /u/n1kusha13
Originally posted by u/n1kusha13 on r/ClaudeCode
You must log in or # to comment.
