Modern, open-source Jupyter alternative.
Try it here »
Discord
·
Website
·
Issues
·
Contact
Pretzel is a fork of Jupyter with the goal to improve Jupyter's capabilities. As our first feature, we've added AI code generation, editing and error fixing to Jupyter.
Switching to Pretzel from Jupyter is extremely easy since it's simply an improved version of Jupyter. All of your Jupyter config, settings, keybindings, and extensions will work out of the box.
- Installation:
pip install pretzelai
then runpretzel lab
to open the web interface. OR, use our free hosted version: pretzelai.app - In any Jupyter cell, click “Ask AI” or press Cmd+K (Mac) / Ctrl+K (Linux/Windows) to prompt AI
- Use the AI Sidebar with Ctrl+Cmd+B (Mac) or Ctrl+Alt+B (Linux/Windows) to chat with AI, generate code, and ask questions
- To switch to your own OpenAI API key, see the Configuration section
Our roadmap includes building features such as:
- Native AI code generation and understanding features similar to Cursor
- Frictionless realtime collaboration: pair-programming, comments, version history, etc.
- SQL support (both in code cells and as a standalone SQL IDE)
- Visual analysis builder (see more here)
- VSCode like code-writing experience using Monaco
- 1-click dashboard creation and sharing from Jupyter notebooks
You can install Pretzel by using pip:
pip install pretzelai
If using conda, first install pip with conda install pip
followed by pip install pretzelai
.
Then, start Pretzel with:
pretzel lab
Just as with Jupyter, you should see a URL to access the Pretzel interface.
To use your own OpenAI API key, see the Configuration section.
Bleeding Edge Version
Bugs possible. To use the latest version of Pretzel:
- Make sure Node.js is installed and is version 20
- Clone and install the package
git clone https://github.com/pretzelai/pretzelai.git
cd pretzelai
pip install .
- In a cell, press
Cmd+K
(Mac) /Ctrl+K
(Windows/Linux) or click "Ask AI" to open AI prompt textbox and write your code generation/editing instruction- Mention
@variable
to refer to variables and dataframes in memory - We automatically send relevant code in the current notebook as context to the AI
- Mention
- If there's existing code in a cell, the prompt will edit the existing code
- If you select/highlight some code in the cell, only the selected code will be edited
- You can accept/reject the response or edit your prompt if you want to re-submit with modifications
- Use ↑ / ↓ to cycle through prompt history
- Use
Ctrl+Cmd+B
(Mac) /Ctrl+Alt+B
(Linux/Windows) or the Pretzel Icon on the right sidebar to activate the AI Sidebar - You can ask questions, generate code, or search for existing code
- The AI always uses the code in the active cell as context. If you highlight some code in the active cell, only the highlighted code will be used as context
- Mention
@notebook
to send additional relevant code in the current notebook as context to the AI
Example uses of AI Sidebar:
- "Modify the function
my_function
in @notebook to be more efficient" ← this will search for the functionmy_function
in the whole notebook and modify it - "Where is the code in @notebook that removes outliers"? ← this will search for code that removes outliers in the whole notebook
- "Can you explain what this code does?" ← this will explain the code in the current cell
- Put your cursor either on an empty line or an existing line of code. Bring up the AI prompting text box with Cmd+K
- Start your prompt with the word
inject
orij
(case-insensitive) - this tells the AI to only add new code and not edit the existing code in the cell - Code will be added one line below where your cursor was placed
- When there's an error, you'll see a button on top-right "Fix Error with AI". Click it try fixing the error
Pretzel works out-of-the-box, no configuration needed.
Pretzel uses our free AI server by default. You can configure it to use your own OpenAI/Azure API key instead.
OpenAI Support
- Open the
Settings
menu in the top menubar, then clickSettings Editor
- Search for
Pretzel
and selectPretzel AI Settings
on the left bar - From the
AI Service
dropdown, selectOpenAI API Key
and fill out your API key underOpenAI Settings > API Key
. - If your company uses OpenAI Enterprise, then you can also enter the base URL for OpenAI call under
OpenAI Settings
- We use
GPT-4o
as the default model. You can change this with theOpenAI Model
dropdown.
Azure Support
Just as with OpenAI settings, you can also use Azure hosted models if you select Use Azure API
in the AI Service
dropdown. We haven't tested this yet so there may be bugs.
- Please report bugs here: https://github.com/pretzelai/pretzelai/issues
- Have any feedback? Any complains? We'd love feedback: [email protected]
The original Jupyter documentation is available here and the Jupyterlab README is available here.
Q. What happened to the old version of Pretzel AI - the visual, in-browser data manipulation tool?
A. It's available in the pretzelai_visual
folder here. Please see this PR for more info.
Q. What AI model does Pretzel use?
A. We currently use GPT-4o by default and it's been good so far. We also allow you to switch models in Pretzel Settings if you're using your own API key. We will keep experimenting with the model, prompts and parameters to keep improving the code-gen experience.
Q. What about feature X?
A. There's a ton we want to build. Please open an issue and tell us what you want us to build!
Q. Where's the roadmap?
A. There's so many features we'd like to build! But, there's just two of us and so, we're collecting feedback about what would be most helpful. As a result, we don't have a concrete roadmap just yet. We'd love your help with this! Please open an issue or just send us an email with your feedback!
Q. What's the deal with the license?
A. Our goal with building Pretzel is to make an amazing data tool that is free for both individuals and companies to use. That said, we are a two person startup - and we don't want some third party to just take our code and sell a hosted version of it without giving back to the community. Jupyter code is licensed as BSD-3 and if we keep our new code BSD-3 licensed, there would be no way to stop third-party from doing this. As a result, we went with the AGPLv3 license for all the new code. This ensures that if someone else does want to take our code and sell it (SaaS or otherwise), they have to open-source all of their modifications under AGPLv3 as well.
Q. Why a fork of Jupyter? Why not contribute into Jupyter directly?
A. This deserves a longer answer but here's the short answer: We've set out to make the new de-facto, modern, open-source data tool. Initially, we wanted to start from scratch. However, after talking to several data professionals, we realized it will be very hard to get people to switch to a new tool, no matter how good. The best way to get people to switch is to not have them switch at all. That's why we decided to fork Jupyter - for the near zero switching costs. Also, Jupyter is a mature product and we're shipping feature really fast - frankly, at the pace we're shipping features, the code we write won't be accepted into the Jupyter codebase 😅. There are also many downsides to this decision - we've had to spend considerable time understanding the whole Jupyter ecosystem and multiple codebases, the complex release processes, the various APIs etc. However, we think this is the right decision for us.
Q. My company is worried about using an AGPLv3 licensed tool. What can I do?
A. The AGPL is a barrier ONLY IF you're modifying Pretzel AND redistributing it to the public. If you're simply using it as a tool in your company (even with modifications), the AGPL DOES NOT ask you to share your code. Still, if AGPL is an issue for you, please contact us, and we can figure out something that works.
Q. I'm worried about a "rug-pull" - that you will re-license the code to be under a paid license in the future? OR, how are you planning on making money?
A. We're planning on selling a hosted version of the tool to companies to make money. This hosted version will probably have some company specific features that individuals don't want or need such as data access controls, connectors for data sources, integration with GitHub, hosted and shareable dashboard, scalable compute for large jobs etc. We will not retroactively make Pretzel's individual version paid.