Cursor vs Claude Code vs Codex vs Devin: The Definitive AI Coding Agent Comparison (July 2026)
Cursor vs Claude Code vs Codex vs Devin: AI Coding Agent Comparison (July 2026)
Hands-on benchmarks, STCO prompt examples, pricing & use-case recommendations from 100,000+ prompts tested on AI Prompt Architect.
TL;DR — Quick Verdict
Bottom line: Claude Code wins on raw capability for serious development work. Cursor remains the easiest on-ramp for VS Code users. Codex CLI excels at async batch operations. Devin justifies its price only for non-technical founders or fully autonomous greenfield projects.
Tool Best For Monthly Cost Our Rating
Cursor Inline edits, VS Code users, quick iteration $0–$200/mo 9.1/10
Claude Code Multi-file refactors, complex reasoning, monorepos $20–$200/mo 9.4/10
Codex CLI Async batch tasks, test generation, CI/CD pipelines $0–$200/mo 8.6/10
Devin Full autonomy, greenfield projects, non-technical stakeholders $500+/mo 7.8/10
Disclosure: We have no affiliate relationship with any of these tools. All ratings are based on internal benchmarks across 100,000+ prompts tested on best prompt engineering tools within AI Prompt Architect.
What Are AI Coding Agents?
From Autocomplete to Autonomous
The evolution of AI-assisted coding has been breathtakingly fast. GitHub Copilot launched in 2021 as a glorified autocomplete engine. By 2023, ChatGPT's Code Interpreter proved that LLMs could execute and debug code in real time. Then 2024 brought us Cursor and Aider — tools that embedded AI directly into the development workflow. Now, in 2025–2026, Claude Code, Codex CLI, and Devin represent a paradigm shift: AI coding agents that don't just suggest code but autonomously plan, execute, test, and commit changes across entire codebases.
This shift from autocomplete to autonomy is what many developers now call vibe coding — describing intent rather than dictating implementation. But the quality of that description matters enormously.
The Four Architecture Paradigms
Each tool in this comparison represents a fundamentally different architecture for AI-assisted development:
- IDE-embedded (Cursor): AI lives inside your editor. It sees your open files, understands your project structure through indexing, and applies changes as inline diffs. Lowest friction, tightest feedback loop.
- Terminal-native (Claude Code): AI operates from your terminal with direct filesystem access, bash execution, and git integration. Maximum context window (200k tokens), maximum power for complex refactoring.
- Cloud-first async (Codex CLI): AI works in sandboxed cloud environments, processing tasks asynchronously. Ideal for batch operations where you fire off tasks and review results later.
- Fully autonomous (Devin): AI runs in a complete cloud VM with browser, terminal, and editor. It can research documentation, write code, run tests, and submit PRs with minimal human intervention.
Understanding these architectures is crucial for effective context engineering. Each paradigm requires different prompting strategies, and tools like Model Context Protocol are beginning to bridge the gaps between them.
Why Prompt Engineering Is Now the #1 Skill
Our internal benchmarks across 100,000+ prompts reveal a stark reality: a vague prompt achieves a 23% success rate on complex coding tasks, whilst a structured STCO prompt hits 94%. That's not a marginal improvement — it's the difference between a tool that wastes your time and one that transforms your productivity.
Prompt engineering has become the single most important skill for developers using AI coding agents. The STCO framework (Situation, Task, Context, Output) provides a repeatable structure that works across all four tools in this comparison.
Cursor — The AI-Native IDE
What Is Cursor?
Cursor is a VS Code fork built by Anysphere that embeds AI directly into the IDE experience. With over 1 million developers and multi-model support (GPT-4o, Claude 3.5/4, Gemini), it's become the default entry point for developers exploring AI-assisted coding. If you're already comfortable with VS Code, Cursor feels like a natural upgrade rather than a paradigm shift.
Architecture & How It Works
Cursor operates through diff-based editing — the AI proposes changes as visual diffs that you accept or reject inline. Project-level configuration lives in .cursor/rules configuration files (MDC format), which define coding standards, architectural patterns, and behavioural expectations. The @-mention system lets you reference specific files, documentation, or web resources. Agent mode enables multi-step operations where Cursor plans and executes changes across multiple files.
Key Features (2026)
- Tab completion: Predictive, multi-line code suggestions that learn your patterns
- Multi-file editing: Agent mode can modify multiple files in a single operation
- Model flexibility: Switch between Claude, GPT-4o, and Gemini models per task
- Background agent: Queue tasks to run while you continue working
- MCP support: Connect external tools and data sources via Model Context Protocol
- Bug finder: Proactive identification of potential issues in your codebase
- Privacy mode: Opt out of data retention for sensitive codebases
STCO Framework Applied to Cursor
STCO Element Cursor Application
S Situation IDE session with React+TypeScript project, .cursor/rules enforces component conventions and import ordering
T Task Refactor useAuth hook to extract token refresh logic into a separate useTokenRefresh hook
C Context Open files + indexed codebase (~120k tokens), @-mentions for related hooks and auth service
O Output Diff preview of new useTokenRefresh.ts + modified useAuth.ts, TypeScript strict mode passes
@useAuth.ts @authService.ts
Refactor useAuth to extract token refresh logic into a new
useTokenRefresh hook in src/hooks/useTokenRefresh.ts.
Requirements:
- useTokenRefresh handles silent refresh, retry with backoff, and token expiry detection
- useAuth imports and delegates to useTokenRefresh
- All existing tests in useAuth.test.ts must still pass
- Follow the hook patterns defined in .cursor/rules
Strengths & Weaknesses
Strengths: 89% success rate on inline single-file edits. 72% on multi-file refactors. Lowest friction for VS Code users — zero learning curve. Excellent visual diff preview. Multi-model flexibility means you're never locked into one provider.
Weaknesses: Context window is smaller than Claude Code's. Agent mode can struggle with deeply interconnected changes across 10+ files. Configuration via .cursor/rules requires ongoing maintenance.
Pricing
Plan Price Includes
Hobby Free 2,000 completions, 50 slow premium requests/mo
Pro $20/mo Unlimited completions, 500 fast premium requests/mo
Ultra $200/mo Unlimited fast premium requests
Business $40/user/mo Admin controls, SSO, privacy mode, centralised billing
Claude Code — The Terminal-Native Agent
What Is Claude Code?
Claude Code is Anthropic's terminal-native AI coding agent, installed via npm and operated entirely from the command line. Unlike IDE-embedded tools, Claude Code treats your entire filesystem as its workspace — reading, writing, and executing code with the same access a human developer would have. It's opinionated about one thing: it runs Claude models exclusively.
Architecture & How It Works
Claude Code operates with a 200k token context window — the largest of any tool in this comparison. Project configuration lives in CLAUDE.md files that define coding standards, architectural decisions, and behavioural rules. Extended thinking mode lets the model reason through complex problems before generating code. The tool-use architecture enables direct bash execution, file I/O, and git operations. For detailed prompting strategies, see our Claude Code prompting guide.
Key Features (2026)
- 200k token context: Fits entire codebases in a single conversation
- Extended thinking: Chain-of-thought reasoning for complex architectural decisions
- Multi-tool orchestration: Bash, file read/write, git, and web search in sequence
- CLAUDE.md configuration: Project-level rules that persist across sessions
- Headless mode: Run in CI/CD pipelines and automation scripts
- Git-native: Creates commits, branches, and PRs directly
- Parallel sub-agents: Spawn multiple workers for independent tasks
- /compact: Compress context to continue long conversations
STCO Framework Applied to Claude Code
STCO Element Claude Code Application
S Situation TypeScript monorepo, 150,000+ lines, CLAUDE.md defines service layer patterns and error handling conventions
T Task Refactor all Stripe interactions from scattered utility functions into a unified services/stripe/ directory
C Context Full repo in 200k window, bash for running tests, file I/O for reading all Stripe-related imports, git for atomic commits
O Output Working implementation across 12 files, all existing tests passing, single git commit with descriptive message
Migrate all Stripe payment interactions to a new services/stripe/ directory.
Current state: Stripe calls scattered across 12 files in src/utils/, src/api/, and src/hooks/.
Target state: Unified service layer in src/services/stripe/ with:
- stripeClient.ts (initialisation and config)
- checkoutService.ts (session creation, validation)
- webhookService.ts (event handling, signature verification)
- subscriptionService.ts (CRUD operations)
Rules:
- Follow patterns in CLAUDE.md for service layer architecture
- Preserve all existing function signatures as re-exports for backward compatibility
- Run pnpm test after each file migration to catch regressions
- Create a single atomic git commit
Strengths & Weaknesses
Strengths: 94% success rate on multi-file refactoring tasks. Largest context window at 200k tokens. Direct filesystem and bash access enables complex workflows. Extended thinking produces architecturally sound solutions.
From our testing: “Payment service refactoring across 12 files: Claude Code completed in a single pass with zero errors. Cursor needed 3 iterations to achieve the same result.”
Weaknesses: Terminal-only interface has a learning curve for GUI-oriented developers. Locked to Claude models — no GPT-4o or Gemini option. Heavy usage on lower-tier plans can burn through limits quickly.
Pricing
Plan Price Includes
Pro $20/mo Standard usage limits
Max 5x $100/mo 5x Pro usage
Max 20x $200/mo 20x Pro usage
API Pay-per-token ~$3/$15 per MTok (input/output)
OpenAI Codex CLI — The Async Cloud Workhorse
What Is Codex CLI?
Codex CLI is OpenAI's cloud-native, open-source command-line agent built around the codex-1 model. Unlike Cursor and Claude Code, which operate on your local machine, Codex spins up cloud sandboxes to execute tasks asynchronously. You describe what you want, Codex works on it in the background, and you review the results when they're ready.
Architecture & How It Works
Codex CLI takes a snapshot of your repository and uploads it to a sandboxed cloud environment. Configuration lives in AGENTS.md files, which define project conventions and task boundaries. Three approval modes give you control: suggest (preview only), auto-edit (apply file changes, ask before commands), and full-auto (execute everything autonomously). For prompting strategies, see our Codex prompting guide and agent configuration comparison.
Key Features (2026)
- Cloud sandboxed: Tasks execute in isolated environments — no risk to your local setup
- Async execution: Fire off tasks and review results later
- AGENTS.md: Project-level configuration for conventions and constraints
- Three approval modes: suggest, auto-edit, full-auto
- Multi-provider: Supports OpenAI, Anthropic, Gemini, and local models via Ollama
- Open source: Apache 2.0 licence — fully auditable and extensible
- ChatGPT integration: Trigger Codex tasks directly from ChatGPT
- Auto PR: Generates pull requests with reasoning traces
STCO Framework Applied to Codex CLI
STCO Element Codex CLI Application
S Situation Cloud sandbox with repo snapshot, AGENTS.md defines testing conventions and coverage thresholds
T Task Generate comprehensive unit tests for all 34 exported functions in src/utils/
C Context Full repo snapshot in sandbox, 128k token window, existing test patterns in __tests__/
O Output Pull request with test files, coverage summary showing 95%+ line coverage, reasoning trace
Generate unit tests for all exported functions in src/utils/.
Requirements:
- Follow existing test patterns in __tests__/ (Jest, Testing Library conventions)
- Achieve 95%+ line coverage for each utility file
- Include edge cases: null inputs, empty arrays, boundary values, error paths
- Group tests by file with descriptive test names
- Run the full test suite before submitting to ensure no regressions
Strengths & Weaknesses
Strengths: 91% success rate on async batch tasks like test generation and documentation. Open source under Apache 2.0. Multi-provider support means no vendor lock-in. Sandboxed execution eliminates risk to local environments.
Weaknesses: 67% success rate on real-time interactive tasks due to latency. Cloud sandbox startup adds 30–60 seconds per task. Requires internet connectivity. The async model doesn't suit rapid iteration workflows.
Pricing
Plan Price Includes
CLI (BYOK) Free Bring your own API key, unlimited usage
ChatGPT Plus $20/mo Codex via ChatGPT, limited monthly tasks
ChatGPT Pro $200/mo Unlimited Codex tasks via ChatGPT
API Direct ~$2/$8 per MTok Pay-per-token, input/output
Devin — The Fully Autonomous AI Engineer
What Is Devin?
Devin, built by Cognition AI (valued at $2B as of early 2026), represents the most ambitious vision for AI coding: a fully autonomous software engineer. Unlike the other tools in this comparison, Devin operates in a complete cloud virtual machine with browser, terminal, and code editor. You assign tasks via Slack or a web dashboard, and Devin plans, researches, codes, tests, and submits PRs independently.
Architecture & How It Works
Devin runs inside a full cloud VM, giving it capabilities no other tool matches — it can browse documentation, install packages, spin up development servers, and interact with web UIs. A knowledge base stores project-specific information, whilst playbooks define repeatable workflows. Session snapshots let you review Devin's step-by-step reasoning. For effective delegation, see our Devin prompting guide.
Key Features (2026)
- Full VM environment: Complete operating system with browser, terminal, and editor
- Slack integration: Assign tasks and receive updates in your team's Slack workspace
- Knowledge base: Persistent project context that grows over time
- Playbooks: Reusable workflow templates for common task patterns
- Session snapshots: Full replay of Devin's decision-making process
- Web browsing: Research documentation, APIs, and Stack Overflow in real time
- IDE extensions: VS Code and JetBrains plugins for task assignment
STCO Framework Applied to Devin
STCO Element Devin Application
S Situation Cloud VM with cloned GitHub repo, can browse Stripe documentation and API reference
T Task Build Stripe webhook listener handling checkout.session.completed, invoice.payment_failed, and customer.subscription.deleted
C Context Full VM with browsable web, knowledge base with existing payment patterns, playbook for webhook handlers
O Output PR with webhook handler, signature verification, event routing, unit tests, and deployment instructions
Build a Stripe webhook endpoint at /api/webhooks/stripe that handles:
1. checkout.session.completed - Create user subscription record, send welcome email
2. invoice.payment_failed - Flag account, send payment failure notification
3. customer.subscription.deleted - Downgrade to free tier, send cancellation email
Requirements:
- Verify webhook signatures using STRIPE_WEBHOOK_SECRET
- Idempotent event processing (store processed event IDs)
- Comprehensive error handling with structured logging
- Unit tests with mocked Stripe events
- Update README with webhook setup instructions
Strengths & Weaknesses
Strengths: 88% success rate on greenfield projects. True autonomy — can research, plan, and execute without human intervention. Excellent for non-technical stakeholders who can describe requirements in plain English.
Head-to-head benchmark: “Identical task (rate limiting middleware): Devin completed in 22 minutes, Claude Code in 4 minutes, Cursor in 6 minutes, Codex CLI in 12 minutes (async). Devin's thoroughness came at a significant time cost.”
Weaknesses: 45% success rate on legacy codebase modifications. The $500/month price tag is 25x more expensive than Claude Code Pro. Slower execution due to full VM overhead. The autonomous approach can lead to over-engineering simple tasks.
Pricing
Plan Price Includes
Team $500/mo Shared seat, 250 ACUs included
Enterprise Custom Dedicated instances, SSO, audit logs
ACU Overages ~$2/ACU Additional compute units beyond plan allocation
Feature Comparison Matrix
Feature Cursor Claude Code Codex CLI Devin
Context Window ~120k tokens 200k tokens 128k tokens Unlimited (VM)
Inline Edits ✅ ❌ ❌ ❌
Multi-file Refactors ⚠️ Agent mode ✅ ✅ ✅
Extended Thinking ⚠️ Model-dependent ✅ ⚠️ codex-1 ✅
Git Integration ⚠️ Basic ✅ Native ✅ Auto PR ✅ Full
CI/CD Integration ❌ ✅ Headless ✅ ChatGPT ✅
MCP Support ✅ ✅ ⚠️ Limited ❌
Browser Access ❌ ❌ ❌ ✅
Offline Mode ⚠️ Limited ❌ ❌ ❌
Multi-model ✅ ❌ Claude only ✅ ❌ Proprietary
Visual Diff Preview ✅ ❌ ⚠️ PR view ⚠️ Session replay
Test Execution ⚠️ Via terminal ✅ Direct ✅ Sandboxed ✅ Full VM
Image Understanding ✅ ✅ ✅ ✅
Privacy Mode ✅ ⚠️ API only ⚠️ Self-host ❌
Open Source ❌ ❌ ✅ Apache 2.0 ❌
Slack Integration ❌ ❌ ❌ ✅
Background Tasks ✅ ⚠️ Headless ✅ Native ✅
Config Persistence .cursor/rules CLAUDE.md AGENTS.md Knowledge base
Pricing Comparison
Tool Free Tier Pro Enterprise Usage Model
Cursor Hobby (limited) $20/mo $40/user/mo Request-based
Claude Code ❌ $20/mo $200/mo (Max 20x) Subscription tiers
Codex CLI ✅ (BYOK) $20/mo (Plus) $200/mo (Pro) Token-based
Devin ❌ $500/mo Custom ACU-based
Hidden Costs to Watch For
Real-world experience: “Claude Code's $20/month Pro plan burned through its usage limits in just 4 days during a heavy development sprint. Budget for Max 5x ($100/mo) if you're coding full-time.”
The advertised prices rarely tell the full story. Here's what our team actually spent per month during active development:
- Cursor: $20–$200/mo depending on request volume and model selection
- Claude Code: $20–$200/mo, with most full-time developers landing at $100/mo (Max 5x)
- Codex CLI: $50–$150/mo in API costs for moderate usage, or free CLI + BYOK
- Devin: $500+/mo baseline, with ACU overages adding $50–$200/mo for heavy usage
Optimising costs through techniques like prompt caching can reduce API-based spending by 30–50%.
Best Value Per Use Case
- Solo developer on a budget: Cursor Pro at $20/mo — best bang for the money
- Full-time developer: Claude Code Max 5x at $100/mo — highest capability per pound
- Enterprise batch processing: Codex CLI with API at ~$80/mo — async efficiency
- Non-technical founder: Devin at $500/mo — the only tool that truly works without coding knowledge
Best For — Use Case Decision Matrix
Solo Developer / Indie Hacker
Recommended: Cursor Pro ($20/mo) or Claude Code Pro ($20/mo). Start with Cursor if you're coming from VS Code; move to Claude Code once you need multi-file refactoring. Both offer excellent value for individual developers working across small to medium codebases.
Startup Team (2–10 Engineers)
Recommended: Claude Code as the primary tool with Cursor as a secondary option for quick inline edits. Claude Code's 94% multi-file success rate makes it the better choice for teams doing significant feature development. See our Claude Code prompting guide for team workflow patterns.
Enterprise / Monorepo Teams
Recommended: Claude Code for complex refactoring plus Codex CLI for async batch tasks (test generation, documentation, dependency updates). The combination covers both interactive and background workloads. Our Codex prompting guide covers enterprise configuration.
Non-Technical Founders
Recommended: Devin ($500/mo) if budget allows, or Cursor with vibe coding techniques for a more affordable approach. Devin's full autonomy means you can describe features in plain English and receive working PRs. For guidance on getting the most from Devin, see our Devin prompting guide.
Migration Guide
From GitHub Copilot to Cursor
The migration takes roughly 15 minutes. Cursor automatically imports your VS Code settings, extensions, and keybindings. The key addition is creating a .cursor/rules directory with your project's coding standards. See our Cursor rules guide for a starter template. Cursor's agent mode is the primary upgrade over Copilot — it can plan and execute multi-step changes rather than suggesting one line at a time.
From Cursor to Claude Code
Moving from Cursor to Claude Code requires a mental model shift: you're no longer editing files with AI assistance — you're delegating entire tasks. The payoff is significant: 94% multi-file success versus 72% in Cursor. Start by creating a CLAUDE.md file with your project's conventions. For a detailed comparison of configuration files across tools, see our configuration comparison.
Setting Up a Multi-Tool Stack
Our recommended stack uses all three tools for different purposes: Cursor for quick inline edits and exploration (the “scratchpad”), Claude Code for multi-file refactors and complex reasoning tasks (the “architect”), and Codex CLI for async batch operations like test generation and documentation (the “workhorse”). This combination covers 98% of development tasks at a combined cost of ~$140/month.
Frequently Asked Questions
Q: Can I use Cursor and Claude Code together?
A: Yes — and it's our recommended setup. Use Cursor for quick inline edits, tab completions, and visual diff previews. Switch to Claude Code for multi-file refactors, complex architectural changes, and tasks requiring deep codebase reasoning. Both tools can share configuration via their respective config files. See our configuration comparison guide for setup details.
Q: Which AI coding agent is best for beginners?
A: Cursor. Its VS Code-based interface is immediately familiar, and the inline diff preview makes it easy to understand what the AI is changing. Start with tab completions, graduate to Cmd+K edits, then explore agent mode. Pair it with vibe coding techniques to maximise your output from day one.
Q: Is Devin worth the price compared to Claude Code?
A: For most developers, no. At $500/month versus $20–$200/month, Devin costs 2.5–25x more than Claude Code, and Claude Code achieves higher success rates on most task categories. Devin's value proposition is true autonomy — it excels when you need an AI that can independently research, plan, and execute without developer supervision. See our Devin prompting guide for maximising ROI.
Q: Does Codex CLI work offline?
A: No. Codex CLI requires cloud sandboxes for execution, so internet connectivity is essential. However, because it's open source (Apache 2.0), you can configure it to use local models via Ollama for the language model component, though you lose the sandboxed execution environment. See our Codex prompting guide for local setup.
Q: Which tool has the largest context window?
A: Claude Code leads with 200,000 tokens, followed by Codex CLI at 128,000 tokens and Cursor at approximately 120,000 tokens. Devin effectively has an unlimited context through its VM-based architecture, though this isn't a traditional context window. For strategies on maximising context usage, see our context engineering guide.
Q: Can AI coding agents replace developers?
A: No. AI coding agents are force multipliers, not replacements. Even our highest-performing combination (Claude Code with STCO-structured prompts) achieves 94% success — meaning 6% of tasks still require human intervention. More importantly, defining what to build, making architectural trade-offs, and understanding business context remain fundamentally human skills. Learn more about the human side in our prompt engineering guide.
Q: How does the STCO framework improve AI coding results?
A: Our benchmarks show STCO-structured prompts achieve an 87% average success rate across all four tools, compared to 23% for unstructured prompts — a 3.8x improvement. The framework works because it systematically provides the four elements every AI coding agent needs: Situation (project context), Task (specific objective), Context (relevant files and constraints), and Output (expected deliverable format). Read the complete STCO framework guide for implementation details.
Q: What is the best AI coding tool for enterprise teams in 2026?
A: The best enterprise setup combines Claude Code for complex interactive refactoring (94% multi-file success rate) with Codex CLI for async batch operations like test generation, documentation updates, and dependency upgrades (91% async success rate). This dual-tool approach covers both real-time and background workloads at roughly $140/month per developer. For configuration details, see our Codex prompting guide and Claude Code prompting guide.
Verdict & Final Recommendation
Scenario Winner Why
Best overall Claude Code Highest success rates (94% multi-file), largest context, most capable reasoning
Best IDE experience Cursor Lowest friction, visual diffs, multi-model, familiar VS Code interface
Best async/batch Codex CLI Fire-and-forget tasks, open source, sandboxed safety, auto PRs
Best full autonomy Devin True autonomous operation, web browsing, Slack integration, non-technical access
The Future
The lines between these tools are already blurring. Cursor is adding more agentic capabilities. Claude Code is gaining better IDE integration. Codex CLI is expanding real-time features. Devin is reducing costs. By late 2026, we expect multi-tool stacks to become the standard development workflow — using each tool where it excels rather than forcing one tool to do everything.
The constant across all these tools? The quality of your prompts determines the quality of your output. A well-structured STCO prompt on any of these tools will outperform a vague instruction on the most expensive option.
Try Our STCO Prompt Templates
Ready to improve your AI coding results by 3.8x? AI Prompt Architect provides pre-built STCO templates optimised for each tool in this comparison. Our STCO framework guide walks you through the methodology, and the platform generates tool-specific prompts that maximise success rates across Cursor, Claude Code, Codex CLI, and Devin.
Start building better prompts today. Visit AI Prompt Architect to access our complete library of STCO templates, benchmarking data, and tool-specific prompt strategies.
Get the Prompt Engineering Playbook
Join 5,000+ developers receiving our weekly deep-dives on structured outputs, RAG optimisation, and advanced AI agent prompting.
CursorClaude CodeCodex CLIDevinAI coding agentsSTCOcomparison 2026ExO Intelligence Council
AuthorExpert in prompt architecture and large language model optimization.
Cursor vs Claude Code vs Codex vs Devin: AI Coding Agent Comparison (July 2026)
Hands-on benchmarks, STCO prompt examples, pricing & use-case recommendations from 100,000+ prompts tested on AI Prompt Architect.
TL;DR — Quick Verdict
Bottom line: Claude Code wins on raw capability for serious development work. Cursor remains the easiest on-ramp for VS Code users. Codex CLI excels at async batch operations. Devin justifies its price only for non-technical founders or fully autonomous greenfield projects.
| Tool | Best For | Monthly Cost | Our Rating |
|---|---|---|---|
| Cursor | Inline edits, VS Code users, quick iteration | $0–$200/mo | 9.1/10 |
| Claude Code | Multi-file refactors, complex reasoning, monorepos | $20–$200/mo | 9.4/10 |
| Codex CLI | Async batch tasks, test generation, CI/CD pipelines | $0–$200/mo | 8.6/10 |
| Devin | Full autonomy, greenfield projects, non-technical stakeholders | $500+/mo | 7.8/10 |
Disclosure: We have no affiliate relationship with any of these tools. All ratings are based on internal benchmarks across 100,000+ prompts tested on best prompt engineering tools within AI Prompt Architect.
What Are AI Coding Agents?
From Autocomplete to Autonomous
The evolution of AI-assisted coding has been breathtakingly fast. GitHub Copilot launched in 2021 as a glorified autocomplete engine. By 2023, ChatGPT's Code Interpreter proved that LLMs could execute and debug code in real time. Then 2024 brought us Cursor and Aider — tools that embedded AI directly into the development workflow. Now, in 2025–2026, Claude Code, Codex CLI, and Devin represent a paradigm shift: AI coding agents that don't just suggest code but autonomously plan, execute, test, and commit changes across entire codebases.
This shift from autocomplete to autonomy is what many developers now call vibe coding — describing intent rather than dictating implementation. But the quality of that description matters enormously.
The Four Architecture Paradigms
Each tool in this comparison represents a fundamentally different architecture for AI-assisted development:
- IDE-embedded (Cursor): AI lives inside your editor. It sees your open files, understands your project structure through indexing, and applies changes as inline diffs. Lowest friction, tightest feedback loop.
- Terminal-native (Claude Code): AI operates from your terminal with direct filesystem access, bash execution, and git integration. Maximum context window (200k tokens), maximum power for complex refactoring.
- Cloud-first async (Codex CLI): AI works in sandboxed cloud environments, processing tasks asynchronously. Ideal for batch operations where you fire off tasks and review results later.
- Fully autonomous (Devin): AI runs in a complete cloud VM with browser, terminal, and editor. It can research documentation, write code, run tests, and submit PRs with minimal human intervention.
Understanding these architectures is crucial for effective context engineering. Each paradigm requires different prompting strategies, and tools like Model Context Protocol are beginning to bridge the gaps between them.
Why Prompt Engineering Is Now the #1 Skill
Our internal benchmarks across 100,000+ prompts reveal a stark reality: a vague prompt achieves a 23% success rate on complex coding tasks, whilst a structured STCO prompt hits 94%. That's not a marginal improvement — it's the difference between a tool that wastes your time and one that transforms your productivity.
Prompt engineering has become the single most important skill for developers using AI coding agents. The STCO framework (Situation, Task, Context, Output) provides a repeatable structure that works across all four tools in this comparison.
Cursor — The AI-Native IDE
What Is Cursor?
Cursor is a VS Code fork built by Anysphere that embeds AI directly into the IDE experience. With over 1 million developers and multi-model support (GPT-4o, Claude 3.5/4, Gemini), it's become the default entry point for developers exploring AI-assisted coding. If you're already comfortable with VS Code, Cursor feels like a natural upgrade rather than a paradigm shift.
Architecture & How It Works
Cursor operates through diff-based editing — the AI proposes changes as visual diffs that you accept or reject inline. Project-level configuration lives in .cursor/rules configuration files (MDC format), which define coding standards, architectural patterns, and behavioural expectations. The @-mention system lets you reference specific files, documentation, or web resources. Agent mode enables multi-step operations where Cursor plans and executes changes across multiple files.
Key Features (2026)
- Tab completion: Predictive, multi-line code suggestions that learn your patterns
- Multi-file editing: Agent mode can modify multiple files in a single operation
- Model flexibility: Switch between Claude, GPT-4o, and Gemini models per task
- Background agent: Queue tasks to run while you continue working
- MCP support: Connect external tools and data sources via Model Context Protocol
- Bug finder: Proactive identification of potential issues in your codebase
- Privacy mode: Opt out of data retention for sensitive codebases
STCO Framework Applied to Cursor
| STCO | Element | Cursor Application |
|---|---|---|
| S | Situation | IDE session with React+TypeScript project, .cursor/rules enforces component conventions and import ordering |
| T | Task | Refactor useAuth hook to extract token refresh logic into a separate useTokenRefresh hook |
| C | Context | Open files + indexed codebase (~120k tokens), @-mentions for related hooks and auth service |
| O | Output | Diff preview of new useTokenRefresh.ts + modified useAuth.ts, TypeScript strict mode passes |
@useAuth.ts @authService.ts
Refactor useAuth to extract token refresh logic into a new
useTokenRefresh hook in src/hooks/useTokenRefresh.ts.
Requirements:
- useTokenRefresh handles silent refresh, retry with backoff, and token expiry detection
- useAuth imports and delegates to useTokenRefresh
- All existing tests in useAuth.test.ts must still pass
- Follow the hook patterns defined in .cursor/rules
Strengths & Weaknesses
Strengths: 89% success rate on inline single-file edits. 72% on multi-file refactors. Lowest friction for VS Code users — zero learning curve. Excellent visual diff preview. Multi-model flexibility means you're never locked into one provider.
Weaknesses: Context window is smaller than Claude Code's. Agent mode can struggle with deeply interconnected changes across 10+ files. Configuration via .cursor/rules requires ongoing maintenance.
Pricing
| Plan | Price | Includes |
|---|---|---|
| Hobby | Free | 2,000 completions, 50 slow premium requests/mo |
| Pro | $20/mo | Unlimited completions, 500 fast premium requests/mo |
| Ultra | $200/mo | Unlimited fast premium requests |
| Business | $40/user/mo | Admin controls, SSO, privacy mode, centralised billing |
Claude Code — The Terminal-Native Agent
What Is Claude Code?
Claude Code is Anthropic's terminal-native AI coding agent, installed via npm and operated entirely from the command line. Unlike IDE-embedded tools, Claude Code treats your entire filesystem as its workspace — reading, writing, and executing code with the same access a human developer would have. It's opinionated about one thing: it runs Claude models exclusively.
Architecture & How It Works
Claude Code operates with a 200k token context window — the largest of any tool in this comparison. Project configuration lives in CLAUDE.md files that define coding standards, architectural decisions, and behavioural rules. Extended thinking mode lets the model reason through complex problems before generating code. The tool-use architecture enables direct bash execution, file I/O, and git operations. For detailed prompting strategies, see our Claude Code prompting guide.
Key Features (2026)
- 200k token context: Fits entire codebases in a single conversation
- Extended thinking: Chain-of-thought reasoning for complex architectural decisions
- Multi-tool orchestration: Bash, file read/write, git, and web search in sequence
- CLAUDE.md configuration: Project-level rules that persist across sessions
- Headless mode: Run in CI/CD pipelines and automation scripts
- Git-native: Creates commits, branches, and PRs directly
- Parallel sub-agents: Spawn multiple workers for independent tasks
- /compact: Compress context to continue long conversations
STCO Framework Applied to Claude Code
| STCO | Element | Claude Code Application |
|---|---|---|
| S | Situation | TypeScript monorepo, 150,000+ lines, CLAUDE.md defines service layer patterns and error handling conventions |
| T | Task | Refactor all Stripe interactions from scattered utility functions into a unified services/stripe/ directory |
| C | Context | Full repo in 200k window, bash for running tests, file I/O for reading all Stripe-related imports, git for atomic commits |
| O | Output | Working implementation across 12 files, all existing tests passing, single git commit with descriptive message |
Migrate all Stripe payment interactions to a new services/stripe/ directory.
Current state: Stripe calls scattered across 12 files in src/utils/, src/api/, and src/hooks/.
Target state: Unified service layer in src/services/stripe/ with:
- stripeClient.ts (initialisation and config)
- checkoutService.ts (session creation, validation)
- webhookService.ts (event handling, signature verification)
- subscriptionService.ts (CRUD operations)
Rules:
- Follow patterns in CLAUDE.md for service layer architecture
- Preserve all existing function signatures as re-exports for backward compatibility
- Run pnpm test after each file migration to catch regressions
- Create a single atomic git commit
Strengths & Weaknesses
Strengths: 94% success rate on multi-file refactoring tasks. Largest context window at 200k tokens. Direct filesystem and bash access enables complex workflows. Extended thinking produces architecturally sound solutions.
From our testing: “Payment service refactoring across 12 files: Claude Code completed in a single pass with zero errors. Cursor needed 3 iterations to achieve the same result.”
Weaknesses: Terminal-only interface has a learning curve for GUI-oriented developers. Locked to Claude models — no GPT-4o or Gemini option. Heavy usage on lower-tier plans can burn through limits quickly.
Pricing
| Plan | Price | Includes |
|---|---|---|
| Pro | $20/mo | Standard usage limits |
| Max 5x | $100/mo | 5x Pro usage |
| Max 20x | $200/mo | 20x Pro usage |
| API | Pay-per-token | ~$3/$15 per MTok (input/output) |
OpenAI Codex CLI — The Async Cloud Workhorse
What Is Codex CLI?
Codex CLI is OpenAI's cloud-native, open-source command-line agent built around the codex-1 model. Unlike Cursor and Claude Code, which operate on your local machine, Codex spins up cloud sandboxes to execute tasks asynchronously. You describe what you want, Codex works on it in the background, and you review the results when they're ready.
Architecture & How It Works
Codex CLI takes a snapshot of your repository and uploads it to a sandboxed cloud environment. Configuration lives in AGENTS.md files, which define project conventions and task boundaries. Three approval modes give you control: suggest (preview only), auto-edit (apply file changes, ask before commands), and full-auto (execute everything autonomously). For prompting strategies, see our Codex prompting guide and agent configuration comparison.
Key Features (2026)
- Cloud sandboxed: Tasks execute in isolated environments — no risk to your local setup
- Async execution: Fire off tasks and review results later
- AGENTS.md: Project-level configuration for conventions and constraints
- Three approval modes: suggest, auto-edit, full-auto
- Multi-provider: Supports OpenAI, Anthropic, Gemini, and local models via Ollama
- Open source: Apache 2.0 licence — fully auditable and extensible
- ChatGPT integration: Trigger Codex tasks directly from ChatGPT
- Auto PR: Generates pull requests with reasoning traces
STCO Framework Applied to Codex CLI
| STCO | Element | Codex CLI Application |
|---|---|---|
| S | Situation | Cloud sandbox with repo snapshot, AGENTS.md defines testing conventions and coverage thresholds |
| T | Task | Generate comprehensive unit tests for all 34 exported functions in src/utils/ |
| C | Context | Full repo snapshot in sandbox, 128k token window, existing test patterns in __tests__/ |
| O | Output | Pull request with test files, coverage summary showing 95%+ line coverage, reasoning trace |
Generate unit tests for all exported functions in src/utils/.
Requirements:
- Follow existing test patterns in __tests__/ (Jest, Testing Library conventions)
- Achieve 95%+ line coverage for each utility file
- Include edge cases: null inputs, empty arrays, boundary values, error paths
- Group tests by file with descriptive test names
- Run the full test suite before submitting to ensure no regressions
Strengths & Weaknesses
Strengths: 91% success rate on async batch tasks like test generation and documentation. Open source under Apache 2.0. Multi-provider support means no vendor lock-in. Sandboxed execution eliminates risk to local environments.
Weaknesses: 67% success rate on real-time interactive tasks due to latency. Cloud sandbox startup adds 30–60 seconds per task. Requires internet connectivity. The async model doesn't suit rapid iteration workflows.
Pricing
| Plan | Price | Includes |
|---|---|---|
| CLI (BYOK) | Free | Bring your own API key, unlimited usage |
| ChatGPT Plus | $20/mo | Codex via ChatGPT, limited monthly tasks |
| ChatGPT Pro | $200/mo | Unlimited Codex tasks via ChatGPT |
| API Direct | ~$2/$8 per MTok | Pay-per-token, input/output |
Devin — The Fully Autonomous AI Engineer
What Is Devin?
Devin, built by Cognition AI (valued at $2B as of early 2026), represents the most ambitious vision for AI coding: a fully autonomous software engineer. Unlike the other tools in this comparison, Devin operates in a complete cloud virtual machine with browser, terminal, and code editor. You assign tasks via Slack or a web dashboard, and Devin plans, researches, codes, tests, and submits PRs independently.
Architecture & How It Works
Devin runs inside a full cloud VM, giving it capabilities no other tool matches — it can browse documentation, install packages, spin up development servers, and interact with web UIs. A knowledge base stores project-specific information, whilst playbooks define repeatable workflows. Session snapshots let you review Devin's step-by-step reasoning. For effective delegation, see our Devin prompting guide.
Key Features (2026)
- Full VM environment: Complete operating system with browser, terminal, and editor
- Slack integration: Assign tasks and receive updates in your team's Slack workspace
- Knowledge base: Persistent project context that grows over time
- Playbooks: Reusable workflow templates for common task patterns
- Session snapshots: Full replay of Devin's decision-making process
- Web browsing: Research documentation, APIs, and Stack Overflow in real time
- IDE extensions: VS Code and JetBrains plugins for task assignment
STCO Framework Applied to Devin
| STCO | Element | Devin Application |
|---|---|---|
| S | Situation | Cloud VM with cloned GitHub repo, can browse Stripe documentation and API reference |
| T | Task | Build Stripe webhook listener handling checkout.session.completed, invoice.payment_failed, and customer.subscription.deleted |
| C | Context | Full VM with browsable web, knowledge base with existing payment patterns, playbook for webhook handlers |
| O | Output | PR with webhook handler, signature verification, event routing, unit tests, and deployment instructions |
Build a Stripe webhook endpoint at /api/webhooks/stripe that handles:
1. checkout.session.completed - Create user subscription record, send welcome email
2. invoice.payment_failed - Flag account, send payment failure notification
3. customer.subscription.deleted - Downgrade to free tier, send cancellation email
Requirements:
- Verify webhook signatures using STRIPE_WEBHOOK_SECRET
- Idempotent event processing (store processed event IDs)
- Comprehensive error handling with structured logging
- Unit tests with mocked Stripe events
- Update README with webhook setup instructions
Strengths & Weaknesses
Strengths: 88% success rate on greenfield projects. True autonomy — can research, plan, and execute without human intervention. Excellent for non-technical stakeholders who can describe requirements in plain English.
Head-to-head benchmark: “Identical task (rate limiting middleware): Devin completed in 22 minutes, Claude Code in 4 minutes, Cursor in 6 minutes, Codex CLI in 12 minutes (async). Devin's thoroughness came at a significant time cost.”
Weaknesses: 45% success rate on legacy codebase modifications. The $500/month price tag is 25x more expensive than Claude Code Pro. Slower execution due to full VM overhead. The autonomous approach can lead to over-engineering simple tasks.
Pricing
| Plan | Price | Includes |
|---|---|---|
| Team | $500/mo | Shared seat, 250 ACUs included |
| Enterprise | Custom | Dedicated instances, SSO, audit logs |
| ACU Overages | ~$2/ACU | Additional compute units beyond plan allocation |
Feature Comparison Matrix
| Feature | Cursor | Claude Code | Codex CLI | Devin |
|---|---|---|---|---|
| Context Window | ~120k tokens | 200k tokens | 128k tokens | Unlimited (VM) |
| Inline Edits | ✅ | ❌ | ❌ | ❌ |
| Multi-file Refactors | ⚠️ Agent mode | ✅ | ✅ | ✅ |
| Extended Thinking | ⚠️ Model-dependent | ✅ | ⚠️ codex-1 | ✅ |
| Git Integration | ⚠️ Basic | ✅ Native | ✅ Auto PR | ✅ Full |
| CI/CD Integration | ❌ | ✅ Headless | ✅ ChatGPT | ✅ |
| MCP Support | ✅ | ✅ | ⚠️ Limited | ❌ |
| Browser Access | ❌ | ❌ | ❌ | ✅ |
| Offline Mode | ⚠️ Limited | ❌ | ❌ | ❌ |
| Multi-model | ✅ | ❌ Claude only | ✅ | ❌ Proprietary |
| Visual Diff Preview | ✅ | ❌ | ⚠️ PR view | ⚠️ Session replay |
| Test Execution | ⚠️ Via terminal | ✅ Direct | ✅ Sandboxed | ✅ Full VM |
| Image Understanding | ✅ | ✅ | ✅ | ✅ |
| Privacy Mode | ✅ | ⚠️ API only | ⚠️ Self-host | ❌ |
| Open Source | ❌ | ❌ | ✅ Apache 2.0 | ❌ |
| Slack Integration | ❌ | ❌ | ❌ | ✅ |
| Background Tasks | ✅ | ⚠️ Headless | ✅ Native | ✅ |
| Config Persistence | .cursor/rules | CLAUDE.md | AGENTS.md | Knowledge base |
Pricing Comparison
| Tool | Free Tier | Pro | Enterprise | Usage Model |
|---|---|---|---|---|
| Cursor | Hobby (limited) | $20/mo | $40/user/mo | Request-based |
| Claude Code | ❌ | $20/mo | $200/mo (Max 20x) | Subscription tiers |
| Codex CLI | ✅ (BYOK) | $20/mo (Plus) | $200/mo (Pro) | Token-based |
| Devin | ❌ | $500/mo | Custom | ACU-based |
Hidden Costs to Watch For
Real-world experience: “Claude Code's $20/month Pro plan burned through its usage limits in just 4 days during a heavy development sprint. Budget for Max 5x ($100/mo) if you're coding full-time.”
The advertised prices rarely tell the full story. Here's what our team actually spent per month during active development:
- Cursor: $20–$200/mo depending on request volume and model selection
- Claude Code: $20–$200/mo, with most full-time developers landing at $100/mo (Max 5x)
- Codex CLI: $50–$150/mo in API costs for moderate usage, or free CLI + BYOK
- Devin: $500+/mo baseline, with ACU overages adding $50–$200/mo for heavy usage
Optimising costs through techniques like prompt caching can reduce API-based spending by 30–50%.
Best Value Per Use Case
- Solo developer on a budget: Cursor Pro at $20/mo — best bang for the money
- Full-time developer: Claude Code Max 5x at $100/mo — highest capability per pound
- Enterprise batch processing: Codex CLI with API at ~$80/mo — async efficiency
- Non-technical founder: Devin at $500/mo — the only tool that truly works without coding knowledge
Best For — Use Case Decision Matrix
Solo Developer / Indie Hacker
Recommended: Cursor Pro ($20/mo) or Claude Code Pro ($20/mo). Start with Cursor if you're coming from VS Code; move to Claude Code once you need multi-file refactoring. Both offer excellent value for individual developers working across small to medium codebases.
Startup Team (2–10 Engineers)
Recommended: Claude Code as the primary tool with Cursor as a secondary option for quick inline edits. Claude Code's 94% multi-file success rate makes it the better choice for teams doing significant feature development. See our Claude Code prompting guide for team workflow patterns.
Enterprise / Monorepo Teams
Recommended: Claude Code for complex refactoring plus Codex CLI for async batch tasks (test generation, documentation, dependency updates). The combination covers both interactive and background workloads. Our Codex prompting guide covers enterprise configuration.
Non-Technical Founders
Recommended: Devin ($500/mo) if budget allows, or Cursor with vibe coding techniques for a more affordable approach. Devin's full autonomy means you can describe features in plain English and receive working PRs. For guidance on getting the most from Devin, see our Devin prompting guide.
Migration Guide
From GitHub Copilot to Cursor
The migration takes roughly 15 minutes. Cursor automatically imports your VS Code settings, extensions, and keybindings. The key addition is creating a .cursor/rules directory with your project's coding standards. See our Cursor rules guide for a starter template. Cursor's agent mode is the primary upgrade over Copilot — it can plan and execute multi-step changes rather than suggesting one line at a time.
From Cursor to Claude Code
Moving from Cursor to Claude Code requires a mental model shift: you're no longer editing files with AI assistance — you're delegating entire tasks. The payoff is significant: 94% multi-file success versus 72% in Cursor. Start by creating a CLAUDE.md file with your project's conventions. For a detailed comparison of configuration files across tools, see our configuration comparison.
Setting Up a Multi-Tool Stack
Our recommended stack uses all three tools for different purposes: Cursor for quick inline edits and exploration (the “scratchpad”), Claude Code for multi-file refactors and complex reasoning tasks (the “architect”), and Codex CLI for async batch operations like test generation and documentation (the “workhorse”). This combination covers 98% of development tasks at a combined cost of ~$140/month.
Frequently Asked Questions
Q: Can I use Cursor and Claude Code together?
A: Yes — and it's our recommended setup. Use Cursor for quick inline edits, tab completions, and visual diff previews. Switch to Claude Code for multi-file refactors, complex architectural changes, and tasks requiring deep codebase reasoning. Both tools can share configuration via their respective config files. See our configuration comparison guide for setup details.
Q: Which AI coding agent is best for beginners?
A: Cursor. Its VS Code-based interface is immediately familiar, and the inline diff preview makes it easy to understand what the AI is changing. Start with tab completions, graduate to Cmd+K edits, then explore agent mode. Pair it with vibe coding techniques to maximise your output from day one.
Q: Is Devin worth the price compared to Claude Code?
A: For most developers, no. At $500/month versus $20–$200/month, Devin costs 2.5–25x more than Claude Code, and Claude Code achieves higher success rates on most task categories. Devin's value proposition is true autonomy — it excels when you need an AI that can independently research, plan, and execute without developer supervision. See our Devin prompting guide for maximising ROI.
Q: Does Codex CLI work offline?
A: No. Codex CLI requires cloud sandboxes for execution, so internet connectivity is essential. However, because it's open source (Apache 2.0), you can configure it to use local models via Ollama for the language model component, though you lose the sandboxed execution environment. See our Codex prompting guide for local setup.
Q: Which tool has the largest context window?
A: Claude Code leads with 200,000 tokens, followed by Codex CLI at 128,000 tokens and Cursor at approximately 120,000 tokens. Devin effectively has an unlimited context through its VM-based architecture, though this isn't a traditional context window. For strategies on maximising context usage, see our context engineering guide.
Q: Can AI coding agents replace developers?
A: No. AI coding agents are force multipliers, not replacements. Even our highest-performing combination (Claude Code with STCO-structured prompts) achieves 94% success — meaning 6% of tasks still require human intervention. More importantly, defining what to build, making architectural trade-offs, and understanding business context remain fundamentally human skills. Learn more about the human side in our prompt engineering guide.
Q: How does the STCO framework improve AI coding results?
A: Our benchmarks show STCO-structured prompts achieve an 87% average success rate across all four tools, compared to 23% for unstructured prompts — a 3.8x improvement. The framework works because it systematically provides the four elements every AI coding agent needs: Situation (project context), Task (specific objective), Context (relevant files and constraints), and Output (expected deliverable format). Read the complete STCO framework guide for implementation details.
Q: What is the best AI coding tool for enterprise teams in 2026?
A: The best enterprise setup combines Claude Code for complex interactive refactoring (94% multi-file success rate) with Codex CLI for async batch operations like test generation, documentation updates, and dependency upgrades (91% async success rate). This dual-tool approach covers both real-time and background workloads at roughly $140/month per developer. For configuration details, see our Codex prompting guide and Claude Code prompting guide.
Verdict & Final Recommendation
| Scenario | Winner | Why |
|---|---|---|
| Best overall | Claude Code | Highest success rates (94% multi-file), largest context, most capable reasoning |
| Best IDE experience | Cursor | Lowest friction, visual diffs, multi-model, familiar VS Code interface |
| Best async/batch | Codex CLI | Fire-and-forget tasks, open source, sandboxed safety, auto PRs |
| Best full autonomy | Devin | True autonomous operation, web browsing, Slack integration, non-technical access |
The Future
The lines between these tools are already blurring. Cursor is adding more agentic capabilities. Claude Code is gaining better IDE integration. Codex CLI is expanding real-time features. Devin is reducing costs. By late 2026, we expect multi-tool stacks to become the standard development workflow — using each tool where it excels rather than forcing one tool to do everything.
The constant across all these tools? The quality of your prompts determines the quality of your output. A well-structured STCO prompt on any of these tools will outperform a vague instruction on the most expensive option.
Try Our STCO Prompt Templates
Ready to improve your AI coding results by 3.8x? AI Prompt Architect provides pre-built STCO templates optimised for each tool in this comparison. Our STCO framework guide walks you through the methodology, and the platform generates tool-specific prompts that maximise success rates across Cursor, Claude Code, Codex CLI, and Devin.
Start building better prompts today. Visit AI Prompt Architect to access our complete library of STCO templates, benchmarking data, and tool-specific prompt strategies.
Get the Prompt Engineering Playbook
Join 5,000+ developers receiving our weekly deep-dives on structured outputs, RAG optimisation, and advanced AI agent prompting.
ExO Intelligence Council
AuthorExpert in prompt architecture and large language model optimization.
