Hey HN! We’ve forked Jupyter Lab and added AI code generation features that feel native and have all the context about your notebook. You can see a demo video (2 min) here: <a href="https://www.tella.tv/video/clxt7ei4v00rr09i5gt1laop6/view">https://www.tella.tv/video/clxt7ei4v00rr09i5gt1laop6/view</a><p>Try a hosted version here: <a href="https://pretzelai.app" rel="nofollow">https://pretzelai.app</a><p>Jupyter is by far the most used Data Science tool. Despite its popularity, it still lacks good code-generation extensions. The flagship AI extension <i>jupyter-ai</i> lags far behind in features and UX compared to modern AI code generation and understanding tools (like <a href="https://www.continue.dev">https://www.continue.dev</a> and <a href="https://www.cursor.com" rel="nofollow">https://www.cursor.com</a>). Also, GitHub Copilot <i>still</i> isn’t supported in Jupyter, more than 2 years after its launch. We’re solving this with Pretzel.<p>Pretzel is a free and open-source fork of Jupyter. You can install it locally with “pip install pretzelai” and launch it with “pretzel lab”. We recommend creating a new python environment if you already have jupyter lab installed. Our GitHub README has more information: <a href="https://github.com/pretzelai/pretzelai">https://github.com/pretzelai/pretzelai</a><p>For our first iteration, we’ve shipped 3 features:<p>1. Inline Tab autocomplete: This works similar to GitHub Copilot. You can choose between Mistral Codestral or GPT-4o in the settings<p>2. Cell level code generation: Click Ask AI or press Cmd+K / Ctrl+K to instruct AI to generate code in the active Jupyter Cell. We provide relevant context from the current notebook to the LLM with RAG. You can refer to existing variables in the notebook using the @variable syntax (for dataframes, it will pass the column names to the LLM)<p>3. Sidebar chat: Clicking the blue Pretzel Icon on the right sidebar opens this chat (Ctrl+Cmd+B / Ctrl+Alt+B). This chat always has context of your current cell or any selected text. Here too, we use RAG to send any relevant context from the current notebook to the LLM<p>All of these features work out-of-the-box via our “AI Server” but you have the option of using your own OpenAI API Key. This can be configured in the settings (Menu Bar > Settings > Settings Editor > Search for Pretzel). If you use your own OpenAI API Key but don’t have a Mistral API key, be sure to select OpenAI as the inline code completion model in the settings.<p>These features are just a start. We're building a modern version of Jupyter. Our roadmap includes frictionless, realtime collaboration (think pair-programming, comments, version history), full-fledged SQL support (both in code cells and as a standalone SQL IDE), a visual analysis builder, a VSCode-like coding experience powered by Monaco, and 1-click dashboard creation and sharing straight from your notebooks.<p>We’d love for you to try Pretzel and send us any feedback, no matter how minor (see my bio for contact info, or file a GitHub issue here: <a href="https://github.com/pretzelai/pretzelai/issues">https://github.com/pretzelai/pretzelai/issues</a>)
There are many other Jupyter notebooks with extensive AI integration. These are less (or not at all) open source, but more mature in some ways, having been iterated on for over a year:<p>- <a href="https://noteable.io/" rel="nofollow">https://noteable.io/</a> -- pretty good, but then they got acquirehired out of existence<p>- <a href="https://deepnote.com">https://deepnote.com</a> -- also extensive AI integration and realtime collaboration<p>- <a href="https://github.com/jupyterlab/jupyter-ai">https://github.com/jupyterlab/jupyter-ai</a> -- a very nice standard open source extension for gen AI in Jupyter, from an Amazon. JupyterLab of course also has fairly mature realtime collaboration now.<p>- <a href="https://colab.google/" rel="nofollow">https://colab.google/</a> -- has great AI integration but of course only with Google-hosted models<p>- <a href="https://cocalc.com" rel="nofollow">https://cocalc.com</a> -- very extensive AI integration everywhere with all the main hosted models, mostly free or pay as you go; also has realtime collaboration. (Disclaimer: I co-authored this.)<p>- VS Code has a great builtin Jupyter notebook, as other people have mentioned.<p>Am I missing any?
This is a great implementation by your team + contributors. Simple but effective. And nice to see you’ve kept it open source instead of some other Show HN submissions where they take open source work, make is closed, change a few things, and claim they’ve created something great.<p>Im curious to see if you continue building out some other features. While these are great features (copilot, chat, etc), I’d think most users would expect their IDE to have it out of the box (or with an extension) these days
Ramon here, the other cofounder of Pretzel! Quick update: Based on some early feedback, we're already working on adding support for local LLMs and Claude Sonnet 3.5. Happy to answer any questions!
Github Copilot is the most useful tool I've found in a long time and having that in Jupyter Notebooks is just awesome. I've been missing that for quite some time. Great work guys!
> GitHub Copilot still isn’t supported in Jupyter<p>What do you mean by this? I've been using Copilot in VS Code .ipynb files for over a year now.
These editors all focus on programming, does anybody have a recommendation for more general note-taking?<p>I'd like to do things like organizing very rough notes, having them reformatted according to a general template, apply changes according to a prompt, maybe ask questions that refer to a collection of notes, ...
I don't really get the appeal of this, I'd just use vscode with Jupyter if I really wanted "ai" integration since I can then access the whole ecosystem of extensions. The idea isn't that bad, but it lacks purpose.
your work is basically a Jupyter extension (<a href="https://github.com/pretzelai/pretzelai/tree/main/packages/pretzelai-extension">https://github.com/pretzelai/pretzelai/tree/main/packages/pr...</a>). Why don't just create an extension like others in here (<a href="https://github.com/jupyterlab-contrib">https://github.com/jupyterlab-contrib</a>) instead of hard forking JupyterLab?
At this point I'm almost afraid to ask but my attempts to figure it out have failed. What is a Jupyter notebook? Where is the code running? On your computer? On someone elses computer?
Have y'all seen Jupyter AI? Seems to do the same but better (more features, more mature codebase, better UI/UX/DX) while being a JupyterLab extension <a href="https://github.com/jupyterlab/jupyter-ai">https://github.com/jupyterlab/jupyter-ai</a>
Codeium(<a href="https://codeium.com/" rel="nofollow">https://codeium.com/</a>) already supports this, along with VSCode jupyter notebook extensions. It has 400k downloads on the VSCode extension store. don't really see the point of this when codeium already exists..
Curious on why you went with Codestral for autocomplete, does it outperform other local models? How is the performance compared to GPT or Claude for autocomplete?<p>Any plans to finetune Codestral for this specific usecase?
Have you seen Livebook? Best Jupyter Notebook ever!! <a href="https://livebook.dev/" rel="nofollow">https://livebook.dev/</a>
seems like the problem I am experiencing right now is that I'm overwhelmed by the sheer number of tools and choices its frankly exhausting<p>there is a feeling that i can do anything and everything with AI but in reality I can't do anything because i can't prioritize and choose anymore due to choice fatigue