Deepnote research: our notes on building agents
Get started

Changelog

June 4, 2026

Deepnote is now in OpenAI Codex

Deepnote is now in Codex.png

Codex now connects natively to your Deepnote workspace. The context your team has already built — notebooks, scheduled analyses, data apps, and integrations — is available to Codex directly, so any exploration starts from your real work.

Watch this demo, where we connect Codex to a live workspace and run a fraud detection project end to end — summarizing projects, serving a model, auto-running the card-cancellation workflow, and writing a new analysis back into Deepnote.

Codex connects via the Deepnote MCP and operates within your existing permissions: it can search for projects, read and run notebooks, write new ones, and inspect integrations.

Here's what that unlocks:

Your workspace as the context for every exploration

Most real questions cross team boundaries. Codex can now search and read across every project in your workspace, pulling from the marketing, sales, and product notebooks to compose a single answer across all three — built on how your team already defines and measures things.

01 _ Full workspace context.webp

Turn a Codex exploration into a published Deepnote app

An exploration doesn't have to end as a chat thread. Because Codex can write back to Deepnote, you can share its work as a notebook or a published app your team can open, rerun, and extend.

02 _ Exploration _ published Deepnote app.webp

Build and refine real workflows

Codex can interact with individual blocks in your notebooks, so you build persistent, production-ready workflows instead of one-off queries — adding features to a model, tuning thresholds, or dropping in monitoring over a few targeted prompts.

03 _alt_ _ Request in Codex_ built in Deepnote.webp

Connect Deepnote to Codex

  1. Open Codex
  2. Select Plugins and find Deepnote
  3. Click Enabled in Codex, then Connect
  4. Follow the OAuth flow and select a workspace

Deepnote is live in the Codex data analytics plugin today. The Deepnote MCP and public API behind this connection open up a lot more opportunities — more on that soon!

Run snapshots, Git sync, & AI usage visibility

Run snapshots.png

TL;DR

  • Run snapshots - every notebook run now saves an immutable record of blocks, outputs, and execution metadata, so you can jump back to any past run in a click.
  • Git sync - connect a Deepnote project to a Git repo and keep them in sync automatically.
  • AI usage visibility - workspace admins can now see every AI action taken, who triggered it, and the tokens it used.

Run snapshots

Every notebook run now automatically saves an immutable snapshot — a frozen record of all blocks, outputs, and execution metadata from the moment the run finished. Open any past run from the Runs sidebar, your project logs, or the Logs & Analytics modal.

Scheduled notebook broke overnight? A teammate's run produced an unexpected number? Want to see what a chart looked like last Tuesday? Until now, you'd re-run and hope. Now you've got the full historical record one click away, so debugging, auditing, and reviewing someone else's work just gets easier.

run-snapshots-sidebar 1.png

Full details in the docs.

Git sync

You can now connect a Deepnote project to a Git repo and keep them in sync automatically. That means you can:

  • Edit locally: take a project from Deepnote Cloud to your machine, work on it, and push changes back.
  • Put notebooks in your Git flow: pull requests, code review, proper history.
  • Actually review notebook diffs: the .deepnote format is human-readable, so changes are finally reviewable.
git-sync.png

Full details in the docs.

AI usage visibility

Workspace admins can now see a full breakdown of AI activity in the AI settings page:

  • Every AI action taken in the workspace.
  • Which user triggered it, and from which notebook.
  • Token usage per request, including cached tokens.
Screenshot 2026-02-24 at 16.09.43.png

Polars support, PDF export & a cleaner notebook

Polars support.png

TL;DR

  • Polars support - Polars DataFrames are first-class citizens in data tables and charts.
  • Export.ipynbor.deepnotefiles to PDF - turn any notebook into a PDF in a click, straight from the notebook menu.
  • A cleaner notebook & workspace - better table of contents, nested bullets in text blocks, tidier project sidebar, friendlier empty state, and simpler folder defaults.

Polars support

Deepnote now treats Polars DataFrames as first-class citizens:

  • They render in the interactive data table, with the same filtering and sorting you already get with pandas.
  • They work in charts, including server-side aggregation for large datasets.

SQL blocks still return pandas DataFrames for now. If you'd like that to be configurable, let us know.

CleanShot 2026-03-24 at 13.23.48.png

Export your.ipynbor.deepnotefile to PDF

You can now export any notebook, whether it’s as a .ipynb or a native .deepnote file, straight to PDF. Just pick **Export as →**choose PDF with code or PDF without code.

You'll find the full set of export options in the same place: .deepnote, PDF, .ipynb, and Project as.zip, in the project topbar menu and in the left sidebar.

export 1.png

Full details in the docs.

Cleaner notebook & workspace

  • Better table of contents

The table of contents now behaves the same way in notebooks and apps, and it lives on the notebook itself instead of being tucked into the left sidebar. Small change, but the inconsistency had been bugging us for a while.

better summary structure.png
  • Nested bullet points

You no longer need a markdown block to create nested bullet lists. Just hit Tab to indent and Shift + Tab to outdent, right in a text block.

  • A simpler project sidebar

We removed the separate Terminals section from the project sidebar. Terminals are still there when you need them, just without the dedicated sidebar slot.

How many KitKats to run your AI?

measure ai usage.webp

Last week, 12T of KitKat products disappeared somewhere between Italy and Poland. Following a thorough internal investigation, we have reason to believe our Deepnote Agent was responsible.

In its defense, AI is an energy-intensive process, and 413,793 KitKat bars amount to fewer than one bar per Deepnote user.

To take full accountability, your AI usage in Deepnote is now measured and visible to your workspace admins. Both in KitKat bars, and USD ($).

To view the usage, head to Settings → AI.

settings.webp

You’ll find a new subsection detailing feature usage, models called (remember, you can always bring your own custom model if you’re on our enterprise tiers), and how much the run costs you. Alongside these, you’ll find the new metric: KitKats consumed. The conversion is based on actual energy-per-token estimates for each model, mapped to the caloric content of a standard 4-finger KitKat bar (210 kcal, or 878,640 joules).

kitkat.webp

A single Deepnote Agent session burns roughly 1/50th of a KitKat. Across 500,000 users, it adds up. A more detailed breakdown:

EnergyKitKat equivalent
1 KitKat bar912 kJ1.0
1 simple AI query~1 kJ~0.001
1 agent session (20K tokens)~20 kJ~0.02
1 heavy agent session (100K tokens)~100 kJ~0.11

For folks who care about the dollar equivalent, we offer a separate measure:

kitkat2.webp

On another note, we believe that AI energy consumption deserves more visibility, and that the best unit of measurement is one everyone understands. It’s a KitKat.

Take a break and review your org’s AI usage in your workspace’s AI settings.

Interoperability with more notebook formats

Interoperability with more notebook formats.png

Convert more file formats to Deepnote projects and vice versa

The Deepnote convert CLI previously supported bi-directional conversion between Deepnote projects and Jupyter notebooks. Based on popular demand, we shipped bidirectional, lossless notebook conversions between Deepnote, Jupyter, Quarto, Percent, and Marimo.

We’ve also included a smarter CLI with automatic format detection and a new -- format flag to make the work more seamless. This helps increase interoperability across projects and reduce lock-in, in the true spirit of open-source!

Convert-any-supported-format-to-Deepnote.png

That means you can move work both ways:

  • Bring your previous projects back into Deepnote without losing momentum, and enjoy the extended functionality Deepnote offers!
  • Convert a Deepnote project into any of the above notebook formats when you need to share, archive, or run elsewhere
Convert-Deepnote-to-any-supported-format.png

You can now also export projects and notebooks directly from the VS Code extension.

Deepnote extension updates.png

We will continue working on .deepnote format portability to better integrate it with the ecosystem - let us know if you have any suggestions!

Git upgrades & GitLab support

Git upgrades.png

Git integration updates

On our Git integration front, we’ve reworked the three core actions: pull, commit, and push. Everything got a more polished UI, plus a set of improvements that make day-to-day collaboration smoother.

Support for merge conflict resolution

Previously, pull only supported fast-forward updates, which meant it worked only when branches weren’t divergent. Now you can pull even when branches diverge, and if Git can’t resolve conflicts automatically, Deepnote will show a conflict resolution modal where you can keep either your local changes or the incoming changes.

git_updates_deepnote.png

Pull with stash

No need to commit local changes just to pull anymore, even if they touch files updated on the remote. Deepnote can pull with stash, and if conflicts occur (between your local-only commits and remote, or between the stash and remote), you can resolve them in the same conflict resolution flow.

Commit and push

The commit and push modal got a big refresh:

  • Preview your changes in a clean diff editor
  • Exclude files from the commit
  • Switch to a new branch directly from the modal
  • Get prompted to open a PR after a successful push

We’ve also included a set of smaller improvements, including a clearer branch selector (with more intuitive new-branch creation) and a one-click shortcut to open your repository on GitHub directly from the integration menu.

Commit_push.png

GitLab support in Git integration

GitLab is now fully supported in Deepnote’s Git integration in the Files section - not just for exports.

You can now:

  • Connect GitLab repositories to folders
  • Pull changes from the remote
  • Commit and push local changes
  • Switch between branches

One key difference compared to GitHub: for GitLab, Deepnote performs Git actions on your behalf, whereas GitHub uses Deepnote’s GitHub App. As a result, the setup flow is slightly different. Full instructions are available in the new GitLab integration documentation.

Python & SQL language servers in VS Code, & bring your own environment

BYO environment.png

Python & SQL language servers in the VS Code extension

The Deepnote VS Code extension now ships with Python and SQL language servers, which means your editor can actually understand your code and your schema.

What you get out of the box:

  • Diagnostics
  • Type hints and method signature info
  • Autocomplete for functions and variables
  • Autocomplete for table and column names, powered by your real database schema

This is included in the newly released extension version 1.3.0, along with the other improvements shipped before the holidays.

Bring your own virtual environment to the VS Code Extension

You can now use the Deepnote VS Code extension with both managed and existing (external) Python environments. The environment list now clearly shows the type, and the extension can detect and reuse virtual environments you already have (poetry, uv, conda, native venv) instead of forcing you to create a new one. This comes in handy if, for instance, you have a custom or opinionated way of installing dependencies. In case the Deepnote toolkit is missing, the extension will guide you through installing it directly into the selected environment with clear progress and logs. We also improved safety and reliability around environment migration, cleanup, and toolkit installation to avoid conflicts or accidental deletion.

Deepnote is now open-source

Deepnote is now OSS.png

After seven years of building on the notebook, we're opening it up. Deepnote is now open-source under the Apache 2.0 license. That includes the new .deepnote format — a human-readable, project-based standard built for collaboration, multiple languages, and AI agents working alongside you. Your existing work comes with you: convert any .ipynb with npx @deepnote/convert and open it in VS Code, Cursor, Windsurf, or JupyterLab. Star us on GitHub and build on it with us.

Read more about why we built a new notebook format here.

Bring your own AI model & GitLab export & new admin powers

Custom modals.webp

Bring your own AI model

Enterprise workspaces can now connect their own OpenAI-compatible endpoints to power Deepnote Agent - giving you full control over the AI provider behind your data analysis workflows.

This is especially valuable for organizations that need to:

  • Meet compliance or regional data requirements with specific AI providers
  • Leverage proprietary or fine-tuned models optimized for specific use cases
  • Keep data within specific infrastructure boundaries
custom ai models.webp

Setting it up is straightforward:

  • Head to Settings & MembersAI tab and click Add model
  • Provide your endpoint URL, model ID, and API key
  • Set it as your workspace default, and Agent will use your custom model for all analysis tasks

Learn more about custom AI models

Export notebooks to GitLab

Great news for GitLab users - you can now export your notebooks directly to GitLab repositories, just like you've been able to with GitHub.

git-export-5.webp

Whether you need to back up your work, maintain audit trails for compliance, or trigger automated pipelines, exporting to GitLab is now just a few clicks away:

  • Open any project, click the Version history icon in the top right, then select Connect Git repository and choose GitLab (you'll connect your GitLab account if you haven't already)
  • Pick your repository, specify the target branch and path, and choose whether to include outputs
  • Export manually with the Commit & push button, or set up automatic exports whenever you create a new version

Check out the docs to get started with GitLab exports.

New admin powers

We've shipped a suite of new workspace settings that give admins more control over security and permissions - perfect for enterprise teams with strict governance requirements.

  • Restrict email invites to your domain: Admins can now limit workspace and project invites to only email addresses matching the workspace owner's domain, preventing accidental external invites
  • Disable incoming connections workspace-wide: Turn off the ability for project editors to enable incoming connections, giving admins full control over external access points
  • Control private project creation: Disable the creation of new private projects in your workspace while keeping existing ones intact
  • Set default permissions for public projects: Choose what permissions workspace members get on newly created public projects - from Full access down to View only
project_permissions.webp

These controls give you the flexibility to create the right permission environment suited to your organization's specific security and collaboration needs.

PySpark DataFrames in charts

PySpark dataframes.png

Chart with the full power of your Spark cluster

Here’s what’s new: you can now build charts directly from PySpark DataFrames, which means you’re no longer limited to small samples. Whether your dataset has a few million rows or hundreds of millions, you can explore it visually without extra preprocessing.

Here's what's new:

No more sampling limits – Build charts from your complete PySpark DataFrames, whether your dataset has a few million rows or hundreds of millions
Fast interactive preview – While setting up your chart, see instant previews as you try different dimensions, filters, and colors
Full cluster power on demand – Click Apply and Spark runs the complete aggregation across your entire dataset using your full cluster.

Check out this quick video to see PySpark DataFrames in charts:

You can now create the same rich, interactive charts you’re used to, now backed by the scale of Spark. From quick category breakdowns to stacked sales-over-time views, everything runs natively on your cluster.

This release completes our native Spark support in Deepnote—both data tables and charts now work seamlessly with your complete datasets, giving you an end-to-end Spark experience.

Introducing Deepnote Agent

Deepnote Agent beta.webp

We're excited to announce Deepnote Agent, bringing together workflows data teams rely on and context-aware AI agents, powered by frontier LLMs agentic capabilities.

Mainstream AI chat tools lack essential data context and critical data tooling - such as the capability to run large-scale SQL queries directly from your cold storage, generate customizable charts, or build interactive data dashboards. Legacy solutions like Jupyter provide basic AI extensions but fall short of delivering meaningful analytics beyond simple LLM API calls.

These limitations typically force data teams to create costly, custom in-house solutions to use LLMs effectively with private data.

Deepnote Agent addresses this problem by deeply integrating your actual data schema from 100+ data sources directly into an intuitive generative AI workspace. Available in Beta starting today, Deepnote Agent can now edit, add, and remove blocks at any point within your notebook, fully aware of your project's context. This marks a significant upgrade from our earlier AI, which could only append blocks sequentially.

What's new

  • Full notebook editing - Make changes anywhere, not just at the bottom
  • Context-aware modifications - Agent understands your entire project when making edits
  • Multi-task execution - Refactor entire analyses, document your notebook, or fix multiple issues with a single prompt

How it works

Agent interprets your intent and creates a transparent, step-by-step plan before executing each task systematically. Whether it's something simple like "rename variable df," polishing a notebook for presentation, or one-shotting a complex analysis from a single prompt, the agent maintains full awareness of your project context while working.

deepnote_agent_refactor.gif

Agent is built to provide confidence and control:

  • Before-and-after diff view - See exactly what changed with clear visual comparisons
  • One-click revert - Undo any unwanted edits instantly
  • Ask mode - Get guidance without modifications when you want to brainstorm, ask questions about your data, or learn more about Deepnote features

Agent operates through a new sidebar chat interface that keeps your AI conversations persistent alongside your notebook. Expand it for longer conversations or collapse it when you want to focus on your analysis.

Try the Beta!

The Beta is available to all users on paid plans starting today. We'll be adding more functionality continuously and would love to hear your feedback! Head over to our docs page to learn more.

Codestral code completions

We've also upgraded our code completion engine with a powerful new foundation! Your autocomplete suggestions are now powered by Codestral from Mistral, a model built specifically for code completion. This ensures you continue getting the same fast, contextually aware suggestions you're used to, while giving us a more robust platform for future improvements. The transition happens seamlessly in the background, so you can keep coding without missing a beat.

Footer

Solutions

  • Notebook
  • Data apps
  • Machine learning
  • Data teams

Product

Company

Comparisons

Resources

Footer

  • Privacy
  • Terms

© 2026 Deepnote. All rights reserved.