Why We Run VS Code + Claude Code Instead of Cursor for Greenfield Work — The Setup Anthropic Uses Internally
Anthropic's own codebase is 80%+ AI-written using VS Code + Claude Code. We replicated their terminal-native setup and cut context-switching overhead — but kept Cursor for TypeScript-heavy refactors.
Published 2026-06-15
Why We Run VS Code + Claude Code Instead of Cursor for Greenfield Work — The Setup Anthropic Uses Internally
TL;DR: Anthropic writes >80% of merged code with VS Code + Claude Code (not Cursor). We mirrored their terminal-native config — cc --allowedTools for autonomous loops, Routines for reusable workflows — and reduced greenfield feature time 35%. Full setup guide →
The Context
Two-dev team building client projects (Next.js/Supabase/Stripe). Previously: Cursor as daily driver for everything. June 2026: Anthropic revealed Claude Code writes 80%+ of their production code. Key difference: terminal-native autonomy — Claude Code runs in your shell, keeps dev servers alive, executes verification loops (write → test → fix → re-run) without leaving the terminal.
What We Tested
| Configuration | Use Case | Verdict | Why |
|---|---|---|---|
| Cursor (default) | Greenfield API endpoint | ❌ | Composer loses terminal state; no autonomous test-fix loop |
| VS Code + Claude Code | Greenfield feature (payments webhook) | ✅ | cc --allowedTools "Bash,Edit,Write" ran 45-min unattended test-fix loop |
| VS Code + Claude Code | TypeScript-heavy refactor (14 files) | ⚠️ | No LSP integration; Cursor catches type errors mid-edit |
| Cursor + Copilot | Inline completions + refactors | ✅ | Best of both for type-heavy work; $40/mo combined |
The Pivot Point
June 8, 2026: Built new Stripe webhook endpoint (greenfield). Tried in Cursor — Composer generated code but couldn’t run stripe listen tunnel + test loop autonomously. Switched to Claude Code: cc --allowedTools "Bash,Edit,Write,Task" "Build webhook endpoint with idempotency, write tests, run until green". 45 minutes later: 247 tests passing, 3 files patched, $0.12 API cost. Cursor would have required manual test runs each failure.
What We Use Now
VS Code + Claude Code Config (.vscode/settings.json + ~/.claude/settings.json):
// ~/.claude/settings.json
{
"allowedTools": ["Bash", "Edit", "Write", "Read", "Task", "Glob", "Grep"],
"defaultModel": "sonnet",
"routinesPath": ".claude/routines"
}
Team Protocol:
- Greenfield features →
cc(Claude Code) with Routine library (.claude/routines/):fix-tests.yaml,scaffold-api.yaml,migrate-db.yaml - TypeScript refactors → Cursor (LSP catches errors mid-edit)
- Inline completions → Copilot (always on)
Routine Example (.claude/routines/fix-tests.yaml):
name: fix-tests
description: "Run tests → on failure, analyze → patch → re-run until green"
steps:
- run: "pnpm test"
- on_failure: "analyze AND patch AND re-run until passing"
- max_iterations: 5
When You’d Choose Differently
- TypeScript-first codebases: Cursor’s LSP integration catches type errors while you edit — Claude Code only sees errors after running tests.
- Teams needing IDE-integrated chat: Windsurf ($15/mo) keeps Cascade agents inside a VS Code fork.
- Pure terminal/Tmux workflows: Aider (BYOK, git-native) or Codex persistent agent if you prefer chat UI.
Tool Crucible Rating
| Dimension | Rating (1–5) | Notes |
|---|---|---|
| Overall | 4.5 | Best terminal-native autonomy; changes how you think about AI coding |
| Ease of Use | 3 | CLI-first; requires Routine authoring to unlock full value |
| Value | 5 | $100/mo credit pool covers heavy Sonnet usage; 40–60% savings vs API |
| Support | 3 | Discord only; Routines documentation sparse |
This is part of our AI Coding Tool Evaluation series. See full setup guide: VS Code + Claude Code: The Anthropic Internal Setup
Last reviewed 2026-06-15. See our methodology and affiliate policy.