Claude Code and Cursor are general coding agents, and Cortex Code CLI is Snowflake's agent that starts inside the warehouse. Altimate Code is not a fourth agent. It is an open-source data layer that:
- runs beside whichever agent you already use,
- reads live schema from over a dozen data platforms,
- traces column-level lineage, and
- blocks 19 SQL anti-patterns before a merge.
The four differ less in the models they run than in what each one reads before it writes SQL, so pick the agent by the shape of your stack and add the data layer where your agent cannot see.
Cursor remains the best editor of the four, which is why most teams keep it and add Altimate Code beside it. On benchmarks, your model choice moves the score more than your agent choice does: Snowflake held its agent fixed, swapped only the model, and measured a 17-point spread in first-attempt pass rate.
Your dbt project is more than a folder of SQL files. It has a DAG, a test suite, column-level dependencies and a live warehouse behind it. A general coding agent reads the one SQL file it was asked to edit and none of the rest. The SQL it writes from that one file looks plausible, and a column name or a join in it can still be wrong.
Wrong SQL of that kind produces no visible failure. It compiles, it runs, and it returns numbers that look reasonable. Not one step in that chain raises an error, so you find out the numbers are wrong only when somebody reads them.
Altimate Code vs Claude Code comes down to what each agent reads before it writes, and the same test separates all four tools. Each one runs a frontier model, so the model behind the agent does not separate them. What separates them is the context each one holds when it writes SQL. Altimate Code and Cortex Code CLI read your warehouse schema before they write. Claude Code and Cursor write from the repository first and leave the checking to you.

Altimate Code running beside a dbt model in VS Code. The agent reads the project and the warehouse before it proposes an edit.
Four agents against the work a data engineer actually does. Only Altimate Code and Cortex Code CLI reach the data rows, and Cursor leads on the editing row.
Altimate Code
Altimate Code adds a data layer under whichever editor or terminal agent you already pay for. It does not replace that agent.
What it is. Altimate Code is an open-source set of data engineering tools built for coding agents. It ships as a CLI, a terminal UI and a VS Code extension. Its checks are compiled Rust code rather than model calls, so they spend no tokens and return the same result every time.
Who it is for. It suits data engineers and analytics engineers who spend more time proving a change is safe than writing it. It is stack-agnostic, so one install connects to every data platform and database you run.
Who uses it today. Altimate runs in production at Elastic, Booking.com, Carta and Coinbase.
What Altimate Code does well
- Reads live warehouse metadata at call time. Column names and types come from the warehouse rather than from a string search over the repository.
- Connects to any data platform or cloud database. Native drivers cover Snowflake, Databricks, BigQuery, Redshift, Postgres, DuckDB, Trino, ClickHouse, MongoDB, MySQL, SQL Server, Oracle and SQLite.
- Blocks 19 SQL anti-patterns before a merge. The rules scored 100% accuracy across 1,077 benchmark queries with zero false positives. The lint runs in about 0.48 ms per query.
- Traces column-level lineage. An edge is one link from a column to a column that reads from it. Altimate Code matched 100% of edges across 500 queries containing joins, CTEs and subqueries. It can name every consumer of a column before you rename it.
- Diffs data across different engines. You can compare a 100M-row table on one platform against its replica on another. Neither table leaves its platform. Any two connected platforms work.
- Reviews dbt pull requests deterministically. Only the compiled checks can block a merge. Anything the model suggests is advisory.
- Runs on any model you already buy. Altimate Code works with the major LLM providers, including Anthropic, OpenAI, Google, Amazon Bedrock, Azure, Mistral, Cohere, Groq and Snowflake Cortex.
- Records every session as a replayable trace. The recap shows the prompt, the files changed, the commands run and the cost.

Where it falls short. Altimate Code edits data code only. A change that also touches your application services still needs Cursor or Claude Code beside it. Cursor also applies a multi-file edit faster than Altimate Code does.
What it costs.
- The Community tier is free and grants 10 million tokens once.
- Pro costs $29 per seat per month and includes 20 million tokens, with overage at $5 per million.
- The code is MIT licensed, so with your own model key the tooling costs nothing.
See the pricing page and the quickstart.
Claude Code
Claude Code handles long multi-step work better than the other three tools here. It becomes useful on data work once you wire data tools into it.
What it is. Claude Code is Anthropic's coding agent. It runs in the terminal or in an IDE, and it reads a large codebase before it acts.
Who it is for. It suits software teams whose work spans application code, infrastructure and data. An MCP server gives an agent one tool, such as a schema lookup, over a standard interface. A data team can assemble its own tooling around Claude Code from those servers.
What Claude Code does well
- Handles long multi-step tasks. It plans, executes and revises across many files in a single session.
- Ships as part of the Anthropic ecosystem. Anthropic builds the agent and the Claude models it runs, so new models and agent features land here first. The agent is also included in Anthropic's paid Claude plans.
- Hosts MCP servers. Give it a warehouse server and a dbt server, and it chains a schema lookup into a lineage query unprompted.
- Pairs with Altimate Code directly. The
/configure-claudecommand registers an/altimatecommand inside Claude Code, so Claude Code can call Altimate Code as a tool.
Where it falls short. Claude Code ships without a data layer. Out of the box it cannot read a dbt DAG, track a warehouse cost or apply an anti-pattern rule. Each of those needs an MCP server that you connect. Every MCP server you add is a moving part you own and maintain. Our head-to-head detail is in Claude Code or Altimate Code for data engineering.
What it costs. Anthropic includes Claude Code with its paid Claude plans, and it also runs on pay-as-you-go API billing. Your bill scales with tokens rather than with seats.
Cursor
Cursor has the strongest editing experience of the four. The editing lead matters most when an engineer reads the generated code and edits it by hand. Many teams now let the model generate the code and let the tests judge it, which narrows Cursor's lead.
What it is. Cursor is an AI-first editor built on VS Code. It does inline editing, multi-file changes and strong autocomplete.
What Cursor does well
- Edits across many files fastest. Inline diffs and multi-file rewrites land ahead of the other three tools.
- Completes from your repository. It learns your naming conventions and matches them closely.
- Accepts MCP servers. Cursor does not read your warehouse on its own. A schema MCP server that you wire in closes part of that gap.
Where it falls short. Cursor completes from the text in your repository, so a column name in its generated SQL is plausible rather than checked against the warehouse. It does not trace column lineage, apply anti-pattern rules, or estimate query cost before it runs.
What it costs. Cursor lists a free Hobby tier, Pro at $20 per month and Teams at $40 per user per month. On seat price, Cursor is the cheapest of the four.
Cortex Code CLI
Cortex Code CLI is Snowflake's own agent, and it is the only one of the four that starts inside the warehouse.
What it is. Cortex Code CLI is a coding agent that starts with your Snowflake schema, query history and role-based permissions already loaded.
Who it is for. It suits teams whose estate is entirely or mostly Snowflake and who want the least assembly work.
What Cortex Code CLI does well
- Reads Snowflake natively. Schema, query history and grants need no connector.
- Executes SQL inside your Snowflake account. Snowflake reports that running inside the account cut total calls by nearly half against Claude Code on the same tasks, with 2x fewer file reads and 4x fewer bash commands.
- Reads dbt and Apache Airflow. In 2026 Snowflake began expanding it beyond the warehouse, starting with dbt and Airflow support.
Where it falls short. Its deepest context is still Snowflake. On a mixed estate it cannot compare a Postgres table against a Databricks table. It publishes no anti-pattern rule set.
What it costs. Teams already on Snowflake pay in credits, so the agent's cost lands inside the Snowflake bill with no separate line to control. Everyone else buys a self-service monthly subscription.
Claude Code and Cursor sit in the upper band only. Cortex Code CLI reaches part of the lower band, and Altimate Code covers all of it.
Altimate Code vs Claude Code vs Cursor vs Cortex Code CLI, Feature by Feature
All four tools run comparable frontier models, so the differences that matter are in what each one can reach inside your stack.
A skill is a workflow playbook the agent loads when it is relevant. Altimate Code ships 21 skills as open source. Snowflake supplies a skill set for Cortex Code CLI, and on Claude Code and Cursor you assemble your own.
| Altimate Code | Claude Code | Cursor | Cortex Code CLI | |
|---|---|---|---|---|
| Category | data-domain layer | general agent | general agent plus editor | warehouse-native |
| Warehouse context | ✓ multi-platform | ≈ via MCP | ≈ via MCP | ✓ Snowflake |
| dbt DAG awareness | ✓ | ✗ | ✗ | ✓ |
| Airflow awareness | ✗ | ✗ | ✗ | ✓ |
| Column-level lineage | ✓ | ✗ | ✗ | ✗ |
| Anti-pattern rules | ✓ 19 | ✗ | ✗ | ✗ |
| Cost estimate before a query runs | ✓ | ✗ | ✗ | ✓ Snowflake only |
| Cross-platform data diff | ✓ multi-platform | ✗ | ✗ | ✗ |
| Deterministic PR gate | ✓ | ✗ | ✗ | ✗ |
| Replayable session trace | ✓ | ✗ | ✗ | ✗ |
| Skill library | ✓ 21, open source | ≈ you assemble it | ≈ you assemble it | ✓ Snowflake-supplied |
| Best editing experience | ✗ | ✗ | ✓ | ✗ |
| License | open source, MIT | commercial | commercial | subscription |
How Each Agent Handles a Column Rename
A column rename separates these four tools more clearly than any benchmark score does. The task is to rename a column in a staging model and keep every downstream model working.
The rename compiles even when you update none of the downstream models, because dbt resolves a model reference to a table and does not check the columns inside that table. The first complaint comes at run time, when a downstream model selects a name that no longer exists.
| Step in the rename | Altimate Code | Cortex Code CLI | Claude Code | Cursor |
|---|---|---|---|---|
| Read the column's real name and type | warehouse metadata at call time | native SQL inside the account | warehouse query, if you wired MCP | string match over the repo |
| Name every downstream model that reads it | ✓ column-level lineage | ✓ dbt project context | ✗ | ✗ |
| Flag an anti-pattern the rewrite introduces | ✓ 19 rules | ✗ | ✗ | ✗ |
| Apply the edit across many files | ≈ data code | ✓ | ✓ | ✓ best of the four |
An agent that cannot list a column's downstream consumers falls back to a string search over the repository. A string search misses any reference that a Jinja template builds at compile time, because that name never appears in the source as plain text. Those built references are where a rename breaks in a real project. A dbt MCP server wired into Cursor or Claude Code lets either agent read a column's real type and list its downstream consumers. Your team sets that server up and keeps it running.
The Three Costs That Sit Above the License Price
License price is the smallest of the four costs of running any of these agents. The other three follow from how each tool is built.
- Assembly cost. A general agent, the MCP servers under it and a CI check are all moving parts you own, and keeping them working is an ongoing job.
- Token cost. A domain-native agent already holds the schema, so it reads fewer files to answer the same question, and fewer files read means fewer tokens bought. Pass@1 is the share of tasks an agent solves on the first attempt. Snowflake measured Cortex Code CLI at a 4-point higher Pass@1 at 3.9x lower cost than Claude Code on its own benchmark.
- Review cost. An agent with no correctness layer shifts your effort from writing SQL to reviewing it. When the SQL is plausible and wrong, that review can cost more time than the generation saved.
The case for deterministic tooling over an LLM-only stack sets out why that check has to be code rather than a second model, and Altimate Code ships its checks in the open.
Your Model Choice Moves the Score More Than Your Agent Choice
Changing the model moves the benchmark score more than changing the agent does. We tested that on DataAgentBench by holding the agent and the task set fixed and changing only the model. Stratified Pass@1 in the table is Pass@1 balanced across task types, so no single task type dominates the score.
| Measure | Claude Sonnet 4.6 | DeepSeek v4 pro |
|---|---|---|
| Stratified Pass@1 | 60.4% | 56.9% |
| Cost per trial | $0.76 | $0.29 |
| Median runtime | 4 minutes | 9 minutes |
| Trials returning no output | 32 of 270 | 79 of 270 |
On the first two rows DeepSeek v4 pro looks like the better buy. It costs $0.29 per trial against $0.76, and it trails Claude Sonnet 4.6 on Pass@1 by 3.5 points. The last row changes the decision. DeepSeek v4 pro returned nothing on 79 of 270 trials, which is 29% of attempts, against 32 of 270 for Claude Sonnet 4.6. Each empty run costs a retry and the time you waited for it.
The Snowflake team came to the same conclusion with its own benchmark, and the spread it measured was wider:
Holding the harness fixed at CoCo, Pass@1 varies drastically across models: from 73.8% with Opus 5 to 64.1% with GPT 5.6 Sol to 56.6% with Sonnet 5, a 17-point spread.
The harness in that quote is the agent, so Snowflake swapped only the model and the first-attempt pass rate moved by 17 points. In the same report, Snowflake's agent-versus-agent comparison separates Cortex Code CLI from Claude Code by 4 points. On Snowflake's own two numbers, the model swap moved the score about four times as far as the agent swap did. Your model choice therefore deserves at least as much attention as your agent choice.
Still, the choice of agent matters. A score follows the model, and a model is a configuration value you can change at any time. What a model swap cannot change is what each tool reaches:
- which schema it reads,
- whether it traces column lineage, and
- whether a deterministic check gates the merge.
Pick the model for the score, and pick the tool for the reach.
The model swap is also the cheaper change, because an agent is a tool every engineer has to move to. A data layer's checks run without a model, so a model swap changes nothing about what those checks return. You can reproduce both DataAgentBench runs from the benchmarks page.
Which Agent to Pick for Your Stack
There is no single best AI agent for data engineering, because these four tools do not compete on one layer. Claude Code, Cursor and Cortex Code CLI are agents, and an agent hosts tools. Altimate Code is a set of tools that an agent calls. Pick the agent by the shape of your stack, then decide whether to add the tool set.
- Mixed estate, and you already like your editor agent. Keep it and add Altimate Code. This is the most common situation and the smallest change.
- Entirely on Snowflake, and you want the least assembly. Pick Cortex Code CLI. The context comes already loaded, and Snowflake publishes call-efficiency numbers for it.
- On dbt or Airflow but not on Snowflake. Cortex Code CLI now deserves a trial, because the standalone subscription removes the need for a Snowflake account.
- One general agent for everything, including non-data code. Run Claude Code or Cursor. Wire in MCP servers for schema, and put Altimate Code in CI as the check.
- Editing speed matters most. Run Cursor with a data layer beside it.
Run a column rename through whichever agent you already pay for, and watch whether it names the downstream models before it edits a file. An agent that cannot name them is missing the data layer. For another example of what that layer returns, see our cited answers on Snowflake spend.
Frequently Asked Questions
Altimate Code replaces neither one. It runs beside your editor agent and adds the data layer that Claude Code and Cursor lack.
Altimate Code and Cortex Code CLI both do. Altimate Code reads schema through native drivers for any data platform or cloud database. Cortex Code CLI starts with your Snowflake schema and query history already loaded. Claude Code and Cursor need an MCP server that you configure and maintain.
You do not need one. Snowflake sells Cortex Code CLI as a self-service monthly subscription for teams that do not run on Snowflake, and on that subscription the agent reads dbt and Apache Airflow projects. Its deepest context is still Snowflake's own schema and query history.
You can run Altimate Code in both. It ships as a VS Code extension that also installs into Cursor. The /configure-claude command wires it into Claude Code as well.
Altimate Code is open source under the MIT license, with 21 skills in the public repository. Claude Code and Cursor are commercial products. Cortex Code CLI is a Snowflake product sold on a subscription or consumed against Snowflake credits.
