Skip to content

jtpio/jupyterlab-codeium

Repository files navigation

jupyterlab-codeium

Github Actions Status lite-badge

JupyterLab extension to get AI code completions with Codeium.

jupyterlite-codeium-demo.webm

Warning

The Codeium team forked this repo to continue the development: https://github.com/Exafunction/codeium.jupyter

Warning

This extension is still very much experimental. It is not an official Codeium extension.

✨ Try it in your browser ✨

  1. Follow the instructions in the Usage section to get your API key.
  2. Open https://jtpio.github.io/jupyterlab-codeium in your browser

Requirements

  • JupyterLab >= 4.1.0

Note

This extension is also compatible with JupyterLite >= 0.3.0

Install

To install the extension, execute:

pip install jupyterlab-codeium

Usage

Warning

Setting up the extension requires a Codeium API key. This part might still be challenging as retrieving the key requires a few manual steps at the moment. This might later be improved by providing a better auth flow.

  1. Go to the Codeium website and sign up for an account: https://codeium.com/
  2. Install the browser extension: https://codeium.com/chrome_tutorial
  3. Open the settings for the chrome extension and click on "Get Token"

Get Token

  1. Right click on the extension window and select "Inspect" to open the dev tools for the extension. Then click on "Network"
  2. Copy the token and paste it the input area, and then press "Enter Token"
  3. This should log a new API request in the network tab. Click on "Preview" to get the API key.

Enter Token

  1. Go to the settings to paste the API key:

Settings

  1. You should now be able to use the extension. Open a Python file and start typing to see the completions.

Completions

Contributing

Packaging and releasing the extension

See RELEASE

Credits

Many thanks to the codemirror-codeium project for the inspiration and the initial implementation of the Codeium integration with CodeMirror 6: https://github.com/val-town/codemirror-codeium

The protobuf files were copied from that repo and reused as is in this project.