January 5th, 2026
What are ipynb Checkpoints? Everything You Need to Know
By Tyler Shibata · 13 min read
After losing a morning of analysis before a client presentation, I learned to pay attention to ipynb checkpoints. They've saved my work more times than I can count. Here's what they are, how they function across tools, and how to manage them without cluttering your workflow in 2026.
What is an ipynb checkpoint?
An ipynb checkpoint is a backup snapshot of your Jupyter Notebook that captures your code, outputs, and cell contents when you manually save. Jupyter stores this file in a hidden folder called .ipynb_checkpoints, located in the same directory as your notebook.
For anyone working on business reports or time-sensitive analysis, checkpoints give you a reliable way to recover your work when things go wrong.
The checkpoint file follows a specific naming pattern. For example, if your notebook is called sales_report.ipynb, the checkpoint will be sales_report-checkpoint.ipynb.
What triggers ipynb checkpoint creation
Two behaviors control when ipynb checkpoints get created and updated. Understanding each one helps you use checkpoints intentionally rather than leaving your backup timing to chance. These are the triggers:
Manual save: In classic Jupyter Notebook, manually saving updates both your main notebook file and the checkpoint file. In JupyterLab, checkpoints are managed automatically but may not update with every manual save.
Autosave: Jupyter Notebook and JupyterLab both autosave your notebook every 120 seconds by default. This updates only the main .ipynb file and leaves the checkpoint unchanged.
Pro Tip: In JupyterLab, you can adjust the autosave interval under Settings > Advanced Settings Editor > Notebook > autosaveInterval, but changing this won't affect how checkpoints behave.
How to create an ipynb checkpoint
Creating a checkpoint takes one action. Save your notebook manually using the keyboard shortcut (Ctrl + S or Cmd+S on Mac) or the menu, and the checkpoint updates automatically.
I save manually before running any code that transforms my data or before testing a new function. That way, if something breaks, I have a clean version to fall back on. The checkpoint captures everything in your notebook at that moment, including code cells, markdown, and any outputs displayed.
Pro Tip: One thing to keep in mind is that Jupyter only stores one checkpoint at a time. Each manual save overwrites the previous checkpoint. If you need multiple restore points, use a version control system like Git instead of relying on checkpoints alone. |
How to revert to your ipynb checkpoint
Reverting to a checkpoint replaces your current notebook with the version from your last manual save. This is useful when autosave captures something you didn't want to keep, or when you need to undo recent changes quickly.
In JupyterLab, go to File > Revert Notebook to Checkpoint to restore your notebook to the last manual checkpoint.
In classic Jupyter Notebook, use File > Revert to Checkpoint.
In both tools, you'll have only the single latest checkpoint available since Jupyter overwrites the previous one each time you save.
I've used this feature after accidentally deleting cells or when an experiment went sideways, and I wanted to start fresh from a known working state. The revert happens immediately, so make sure you actually want to lose your recent changes before confirming.
Why checkpoints keep reappearing
If you've deleted the .ipynb_checkpoints folder and watched it come back the next time you saved a notebook, you're not doing anything wrong. This is intentional.
Jupyter treats checkpoints as part of its safety system. The software assumes you want a backup available, so it recreates the .ipynb_checkpoints folder automatically whenever you save a notebook in that directory. Deleting the folder only removes it temporarily. The next manual save brings it back.
I've tried deleting checkpoint folders to clean up project directories before sharing them, only to find them reappearing after one more editing session. The only way to stop this behavior permanently is to change where Jupyter stores checkpoints. You can do this by editing your jupyter_notebook_config.py file and setting a different checkpoint directory, like a temp folder that gets cleared regularly.
For most users, the easier approach is to leave checkpoints alone locally and add .ipynb_checkpoints to your .gitignore file so they don't end up in version control. The folder stays on your machine as a safety net, but it won't clutter your repositories or shared project files.
Why checkpoints keep reappearing
Yes, deleting ipynb checkpoints is safe. Removing the .ipynb_checkpoints folder does not affect your main notebook file. You only lose the ability to revert to your last manual save until Jupyter creates a new checkpoint.
There are a few situations where deleting checkpoints makes sense:
Before sharing a project: Checkpoint files can contain outputs or code you don't want others to see. Clearing them before zipping up a project or publishing to GitHub keeps your shared files clean.
During continuous integration (CI) builds or Docker image creation: Checkpoints add unnecessary size and noise to builds. Deleting them reduces clutter and speeds up deployments.
When a checkpoint captured sensitive output: If you ran a query that displayed confidential data and it got saved in the checkpoint, deleting it removes that exposure.
I delete checkpoint folders regularly when preparing projects for handoff or archiving. The process is simple. On Mac or Linux, open your terminal and run rm -rf .ipynb_checkpoints from your project directory. On Windows PowerShell, navigate to your project folder and run Remove-Item -Recurse -Force '.ipynb_checkpoints'.
The main tradeoff is that you lose your rollback option until the next manual save. If you're actively working on a notebook and might need to revert, keep the checkpoint around. If you're packaging finished work, delete it without worry.
Security and privacy
Checkpoints don't store code alone. When you manually save, the checkpoint captures the complete notebook content at that snapshot, including sensitive information, code, markdown, and cell outputs.
If you ran a query that returned customer emails, API keys, or financial data, that output now lives in your checkpoint file. Anyone with access to your .ipynb_checkpoints folder can open it and see exactly what you saw. For teams in regulated industries or high-security environments, managing checkpoints is part of protecting confidential data.
I've made this mistake before. I ran a database query during testing, saved the notebook, and later realized the checkpoint contained rows of production data I never intended to store locally. The fix was simple, but I had to remember to delete the checkpoint before pushing the project to a shared repository.
A few habits help avoid these situations:
Clear outputs before saving: If your notebook displays sensitive data, clear the cell outputs before your next manual save. This keeps confidential information out of your checkpoint.
Add .ipynb_checkpoints to .gitignore: This prevents checkpoint files from accidentally ending up in version control, where others can access them.
Delete checkpoints before sharing: When packaging a project for a colleague or client, remove the .ipynb_checkpoints folder so you're not passing along unintended data.
For teams working with regulated data, these steps should be part of your standard workflow. Checkpoints are helpful for recovery, but they can also become an unintentional record of everything your notebook has displayed.
Skip ipynb checkpoint management with Julius
Managing ipynb checkpoints, hidden folders, and manual saves is part of working with Jupyter Notebooks. Julius handles all of that behind the scenes so you can focus on the analysis itself.
Julius is an AI-powered data analysis tool that connects directly to your data and shares insights, charts, and reports quickly.
Here’s how Julius helps with data analysis:
Quick single-metric checks: Ask for an average, spread, or distribution, and Julius shows you the numbers with an easy-to-read chart.
Built-in visualization: Get histograms, box plots, and bar charts on the spot instead of jumping into another tool to build them.
Catch outliers early: Julius highlights suspicious values and metrics that throw off your results, so you can make confident business decisions based on clean and trustworthy data.
Recurring summaries: Schedule analyses like weekly revenue or delivery time at the 95th percentile and receive them automatically by email or Slack.
Smarter over time: With each query, Julius gets better at understanding how your connected data is organized. It learns where to find the right tables and relationships, so it can return answers more quickly and with better accuracy.
One-click sharing: Turn a thread of analysis into a PDF report you can pass along without extra formatting.
Direct connections: Link your databases and files so results come from live data, not stale spreadsheets.
Ready to see how Julius can help your team make better decisions? Try Julius for free today.
Frequently asked questions
Are ipynb checkpoints and autosave the same?
No, ipynb checkpoints and autosave are different features. Autosave updates your main notebook file every 120 seconds. Checkpoints only update when you manually save using Ctrl+S or the Save and Checkpoint option. This gives you a rollback point if autosave captures something you didn't want.
Why does ipynb_checkpoints show up in some tools but not others?
The .ipynb_checkpoints folder appears in tools that use Jupyter's default checkpoint system, like JupyterLab and classic Jupyter Notebook. Depending on your configuration, the VS Code Jupyter extension might not create the .ipynb_checkpoints folder since it can rely on a different backup mechanism. Cloud-based tools often store checkpoints internally rather than in your file system.
How can you clean up checkpoints safely?
Delete the .ipynb_checkpoints folder directly without worrying about your main notebook files. On Mac or Linux, run rm -rf .ipynb_checkpoints from your project directory. On Windows PowerShell, use Remove-Item -Recurse -Force .ipynb_checkpoints. Add .ipynb_checkpoints to your .gitignore to keep them out of version control.