Launch HN: Nao Labs (YC X25) – Cursor for Data
48 comments
·May 9, 2025pdepip
Congrats on the HN launch! Really excited to give this a try I think this could be a huge unlock for my team.
One quick issue - unable to connect to my postgres instance that requires SSL.
SSH tunneling seems to be broken as well because when the box is checked I am unable to select a private key path and the connect button is gone
Parsing DB URI would be a helpful feature as well!
Thanks so much, excited to get this up and running when everything is fixed!
pdepip
ignore the SSH tunneling, didn't see that i had to scroll...it's been a long week. regardless, SSL enabled connections would be huge
tucared
Been using this for several weeks now and it's genuinely improved my workflow—I'm choosing it over VSCode and extensions more than half the time.
The chat for exploratory data analysis ("what can you tell me about this column I just added?"), the worksheets and column lineage are real game-changers for dbt development. These features feel purposefully designed for how I actually work.
Claire and Christophe are super responsive to feedback, implementing features and fixes quickly. You can see the product evolving in all the right directions!
ClaireGz
Thanks for your kind message — and for helping us make nao better!
paddy_m
This looks like many LLM assisted data projects which help and are flexible, but aren't repeatable and aren't fast enough to be interactive. Nao is a good execution of the concept.
I built Buckaroo as a data table UI for Jupyter and Pandas/Polars, that first lets you look at the data in a modern performant table with histograms, formatting, and summary stats.
Yesterday I released autocleaning for Buckaroo. This looks at data and heuristically chooses cleaning methods with definite code. This is fast (less than 500ms). Multiple cleaning strategies can be cycled through and you can choose the best approach for your data. For the simple problems we shoudn't need to consult an LLM to do the obvious things.
All of this is open source and extensible.
[1] https://youtube.com/shorts/4Jz-Wgf3YDc
[2] https://github.com/paddymul/buckaroo
[3] https://marimo.io/p/@paddy-mullen/buckaroo-auto-cleaning Live WASM notebook that you can play with - no downloads or installs required
ClaireGz
Thanks for sharing. I like the view you built to visualize the profiling of your data, I think that's indeed key to understand your data.
nathan_douglas
This is really slick. I watched the YouTube video (a couple of times; I didn't grok what was happening immediately) and I really love how this accelerates feedback cycles. Very, very cool.
ClaireGz
Thank you! Actually this is exactly what we target, we've seen that data teams have often a longer feedback loop than software engineers. That's a goal for us to shorten it and to bring data the closest to your dev flow.
EliBullockPapa
Cool idea! How did you train your tab model? Fill in the middle or is it based on edit history like cursor? Someone posted this yesterday and I found it fascinating https://www.coplay.dev/blog/a-brief-history-of-cursor-s-tab-...
ClaireGz
Yes we use Fill in the middle models (Mistral and our own trained Qwen). And we feed it with your data context - we have our own SQL parser to feed you with the right data schema context depending on where your cursor is in the query.
paddy_m
I hadn't realized you trained your own model. That's an important differentiator. How do you get training data of schemas in the wild?
TheTaytay
How much data is hitting your models/prompts? I am okay with you knowing about my schema, but a lot of warehouse data is sensitive data. I saw you have enterprise plans, and maybe that is my answer, but I’d love to know ahead of time if data/results are hitting your servers in addition to the code, or if it’s code-only.
ClaireGz
The content of the data is never going to the models, unless you specifically grant access. Our server only store embeddings of your codebase and data schema. The content of the data is only accessed locally by your computer. When you ask our agent to run a query for you, it will execute it on your warehouse, then ask you for permission to read the result. If you don't allow it, you'll be able to preview it locally without sending it to the LLM. The enterprise version is for your if you want to be sure the prompts and context you send to nao don't go through a public LLM endpoint and get trained on.
bilalq
Does this only work if I'm writing raw SQL? Can I use this today if my project uses Postgres but has queries written in TypeScript using a query builder like Kysely?
ClaireGz
Yeah at the moment the Tab is made to work the best with raw SQL (either pure SQL files or in a string).
But, if you use the chat/agent you can explain that you're using Kysely and give the warehouse context he will probably handle this.
I did not know Kysely, but from the gif on the project landing it looks like the autocomplete is great? It's different than a tab I agree tho.
redwood_
Like the looks of this. Any chance you'll be adding support for SQLite at some point?
ClaireGz
Oh yes! Should be done fairly easily, we have DuckDB coming in the next release, we can also add SQLite. You use SQLite to develop locally I guess?
jinjin2
Do you support Exasol? In the current climate we don’t want to be too dependent on US cloud services, so we are moving our performance sensitive dwh workloads off Snowflake to Exasol.
ClaireGz
Not yet, but we are willing to develop these specific connectors on ask. You can reach out!
Just one question what makes you pick Exasol rather than going with an open-source warehouse tech (e.g. Clickhouse or a lake with Trino)?
jnnnthnn
This looks awesome! I wish I could connect to my Postgres DB using SSL.
ClaireGz
Thanks for suggesting, we should set this up!
coatue
Would this work with Hydra? https://news.ycombinator.com/item?id=43937852
Hey HN, we’re Claire and Christophe from nao Labs (https://getnao.io/). We just launched nao, an AI code editor to work with data: a local editor, directly connected with your data warehouse, and powered by an AI copilot with built-in context of your data schema and data-specific tools.
See our demo here: https://www.youtube.com/watch?v=QmG6X-5ftZU
Writing code with LLMs is the new normal in software engineering. But not when it comes to manipulating data. Tools like Cursor don’t interact natively with data warehouses — they autocomplete SQL blindly, not knowing your data schema. Most of us are still juggling multiple tools: writing code in Cursor, checking results in the warehouse console, troubleshooting with an observability tool, and verifying in BI tool no dashboard broke.
When you want to write code on data with LLMs, you don’t care much about the code, you care about the data output. You need a tool that helps you write code relevant for your data, lets you visualize its impact on the output, and quality check it for you.
Christophe and I have each spent 10 years in data — Christophe was a data engineer and has built data platforms for dozens of orgs, I was head of data and helped data teams building their analytics & data products. We’ve seen how the business asks you to ship data fast, while you’re here wondering if this small line of code will mistakenly multiply the revenue on your CEO dashboard by x5. Which leaves you 2 choices: test extensively and ship slow. Not test and ship fast. That’s why we wanted to create nao: a tool really adapted to our data work, that would allow data teams to ship at business pace.
nao is a fork of VS Code, with built-in connectors for BigQuery, Snowflake, and Postgres. We built our own AI copilot and tab system, gave them a RAG of your data warehouse schemas and of your codebase. We added a set of agent tools to query data, compare data, understand data tools like dbt, assess the downstream impact of code in your whole data lineage.
The AI tab and the AI agent write straight away code matching your schema, may it be for SQL, python, yaml. It shows you code diffs and data diffs side by side, to visualize what your change did to the data output. And you can leave the data quality checks to the agent: detect missing or duplicated values, outliers, anticipate breaking changes downstream or compare dev and production data differences.
Data teams usually use nao for writing SQL pipelines, often with dbt. It helps them create data models, document them, test them, while making sure they’re not breaking data lineage and figures in the BI. In run mode, they also use it to run some analytics, and identify data quality bugs in production. For less technical profiles, it’s also a great help to strengthen their code best practices. For large teams, it ensures that the code & metrics remain well factorized and consistent.
Software engineers use nao for the database exploration part: write SQL queries with nao tab, explore data schema with the agent, and write DDL.
Question we often get is: why not just use Cursor and MCPs? Cursor has to trigger many MCP calls to get full context of the data, while nao has it always available in one RAG. MCPs stay in a very enclosed part of Cursor: they don’t bring data context to the tab. And they don’t make the UI more adapted to data workflows. Besides, nao comes as pre-packaged for data teams: they don’t have to set up extensions, install and authenticate in MCPs, build CI/CD pipelines. Which means even non-technical data teams can have a great developer experience.
Our long-term goal is to become the best place to work with data. We want to fine-tune our own models for SQL, Python and YAML to give the most relevant code suggestions for data. We want to enlarge our comprehension of all data stack tools, to become the only agnostic editor for any of your data workflow.
You can try it here: https://sunshine.getnao.io/releases/ - download nao, sign up for free and start using it. Just for HN Launch, you can create a temporary account with a simple username if you’d prefer not to use your email. For now, we only have Mac version but Linux and Windows are coming.
We’d love to hear your feedback — and get your thoughts on how we can improve even further the data dev experience!