ServicesAboutNotesContact Get in touch →
EN FR
Note

Cursor for dbt Development

How Cursor works as the IDE layer for dbt projects — strengths with dbt Power User, limitations for multi-file work, and where it fits alongside Claude Code

Planted
dbtaiautomation

Cursor is an AI-assisted IDE built on VS Code. For dbt development, its value comes from the combination of inline AI completions with the dbt Power User extension, which gives the AI real-time access to the dbt project graph, model SQL, lineage, and column-level information.

In a layered AI stack, Cursor fills the IDE layer: fast, contextual, single-file-oriented work.

What Cursor Does Well

Exploring unfamiliar codebases. When you’re onboarding onto a new client project, you can highlight a model, ask “what does this CTE do and where does it get its data?”, and get an answer that includes the upstream lineage from Power User. That kind of contextual Q&A used to take 20 minutes of tracing through files manually. With Power User’s embedded MCP server feeding the AI real-time lineage data, the response is both fast and aware of the full graph.

Quick edits with clear scope. Adding a column, fixing a filter, updating a CASE statement, adjusting a date function — anything where you know exactly what you want and the change is contained to one file. Cursor handles these in seconds. The overhead of switching to a terminal-based coding agent isn’t justified when the edit is surgical.

Inline documentation lookups. Questions like “what’s the BigQuery syntax for SAFE_DIVIDE?” or “how does this macro work?” get answered in-context without leaving the editor. For dbt-specific questions, Power User provides model metadata that makes the answers project-aware rather than generic.

Small-scope model writing. Writing a straightforward staging model or adding a simple transformation to an existing intermediate model works well in Cursor. The AI sees the current file, can reference upstream models through Power User’s context, and generates syntactically correct SQL quickly.

Where Cursor Falls Short

Multi-file refactoring. The moment you need to coordinate changes across a lineage chain — renaming a column that flows through four downstream models, restructuring a set of CTEs that multiple models reference, or migrating a macro that’s used in twelve places — Cursor’s single-file focus becomes a limitation. You can do it file by file, but you’re managing the coordination yourself. Claude Code handles this natively because it can read and edit multiple files in one session.

Build-test-fix loops. Cursor doesn’t have a good story for running dbt build and iterating on the output. You can run commands in the integrated terminal, but the AI doesn’t participate in that loop the way Claude Code does. With Claude Code, you say “build this model and fix any errors” and it runs dbt build, reads the error output, makes corrections, and reruns — all in one conversation turn. In Cursor, you’re the one reading the terminal output and deciding what to tell the AI next.

Complex debugging. Debugging that spans multiple models — tracing a wrong number through a lineage chain, investigating why an incremental model is producing duplicates, understanding a Jinja compilation error that involves three nested macros — requires the kind of tool-use loop that Claude Code is built for. Cursor can help you understand individual files, but it can’t orchestrate the investigation.

Convention enforcement at project scale. Cursor reads .cursorrules for project conventions, which is analogous to Claude Code’s CLAUDE.md. But because Cursor operates file-by-file, it doesn’t verify conventions across the full project the way a coding agent can. It won’t check whether your new model follows the naming pattern used by every other model in the same directory.

Cursor Uses Claude Under the Hood

An important clarification: Cursor uses Anthropic’s Claude models for its AI features. When people frame the choice as “Cursor vs. Claude,” they’re comparing interfaces, not AI models. Cursor provides a VS Code-based, inline-editing interface. Claude Code provides a terminal-based, multi-file-orchestration interface. The underlying intelligence is the same.

This means the quality of the AI completions in Cursor is comparable to Claude Code for single-file tasks. The difference is entirely in the workflow: Cursor is optimized for real-time inline assistance while you type, Claude Code is optimized for multi-step operations where the agent drives the workflow.

The dbt Power User Advantage

The dbt Power User extension is what makes Cursor meaningfully better than a generic AI IDE for dbt work. Without it, the AI sees your current file and whatever’s in your open tabs. With it, the AI gets:

  • Model lineage: upstream and downstream dependencies for the current model
  • Column-level information: column names, types, and descriptions from schema YAML
  • Project graph: the full DAG of models, sources, and exposures
  • Source definitions: how sources map to raw tables

This context turns generic SQL suggestions into project-aware suggestions. The AI knows that ref('int__orders__enriched') exists and what columns it provides, rather than guessing at table names.

When to Use Cursor vs. Claude Code

TaskUse CursorUse Claude Code
Add a column to an existing modelYesOverkill
Fix a single filter or join conditionYesOverkill
Explore and understand a model’s logicYesAlso works, but slower to start
Build a new model end-to-endOnly for simple modelsYes
Refactor across multiple modelsNoYes
Generate tests and documentationFor one model at a timeFor batch operations
Debug a multi-model data issuePartial help onlyYes
Run dbt build in a feedback loopNoYes

Cursor handles small edits and explorations; Claude Code handles larger building and refactoring sessions.

Cost

Cursor Pro costs $20/month. The dbt Power User extension is free. Generic AI coding assistants without project graph context produce noticeably weaker suggestions for dbt-specific work than the Cursor + Power User combination.