Package: jupyter-ai
jupyter_aiA generative AI extension for JupyterLabThis extension is composed of a Python package namedjupyter_aifor the server extension and a NPM package namedjupyter_aifor the frontend extension.RequirementsJupyterLab >= 4.0.0Jupyter Server >= 2.0.0InstallationYou can usecondaorpipto install Jupyter AI. If you're using macOS on an Apple Silicon-based Mac (M1, M1 Pro, M2, etc.), we strongly recommend usingconda.Before you can use Jupyter AI, you will need to install any packages and set environment variables with API keys for the model providers that you will use. Seeour documentationfor details about what you'll need.With pip$ pip install jupyter_aiWith condaFirst, installcondaand create an environment that uses Python 3.11:$ conda create -n jupyter-ai python=3.11
$ conda activate jupyter-ai
$ pip install jupyter_aiUninstallTo remove the extension, execute:$ pip uninstall jupyter_aiTroubleshootIf you can see the extension UI, but it is not working, check
that the server extension is enabled:jupyterserverextensionlistIf the server extension is installed and enabled, but you don't see
the extension UI, verify that the frontend extension is installed:jupyterlabextensionlistContributingDevelopment installNote: You will need NodeJS to build the extension package.Thejlpmcommand is JupyterLab's pinned version ofyarnthat is installed with JupyterLab. You may useyarnornpmin lieu ofjlpmbelow.# Clone the repo to your local environment# Change directory to the jupyter_ai directory# Install package in development modepipinstall-e.# Link your development version of the extension with JupyterLabjupyterlabextensiondevelop.--overwrite# Server extension must be manually installed in develop modejupyterserverextensionenablejupyter_ai# Rebuild extension Typescript source after making changesjlpmbuildYou can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.# Watch the source directory in one terminal, automatically rebuilding when neededjlpmwatch# Run JupyterLab in another terminaljupyterlabWith the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).By default, thejlpm buildcommand generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:jupyterlabbuild--minimize=FalseDevelopment uninstall# Server extension must be manually disabled in develop modejupyterserverextensiondisablejupyter_ai
pipuninstalljupyter_aiIn development mode, you will also need to remove the symlink created byjupyter labextension developcommand. To find its location, you can runjupyter labextension listto figure out where thelabextensionsfolder is located. Then you can remove the symlink namedjupyter_aiwithin that folder.Testing the extensionServer testsThis extension is usingPytestfor Python code testing.Install test dependencies (needed only once):pipinstall-e".[test]"To execute them, run:pytest-vv-rap--covjupyter_aiIntegration testsThis extension usesPlaywrightfor the integration tests (aka user level tests).
More precisely, the JupyterLab helperGalatais used to handle testing the extension in JupyterLab.More information are provided within theui-testsREADME.Packaging the extensionSeeRELEASE