santiagobasulto
ipython-gpt
Python

An ChatGPT integration for Jupyter Notebooks and the IPython Shell

Last updated Jun 15, 2026
580
Stars
40
Forks
5
Issues
0
Stars/day
Attention Score
69
Language breakdown
No language data available.
Files click to expand
README

IPython ChatGPT extension

Black badge prettier badge pre-commit test

This (standalone, no external dependencies required) extension allows you to use ChatGPT directly from your Jupyter Notebook or IPython Shell (Demo).

IPython GPT, a Jupyter/IPython interface for Chat GPT

IPython GPT, a Jupyter/IPython interface for Chat GPT

Important! This is a very early and raw version, I have a lot of things to improve regarding code quality and missing functionality. Check this issue for a rough "roadmap".

Installation

!pip install ipython-gpt

Then in your notebook or ipython shell:

%loadext ipythongpt

Setup

You must first generate an API key at OpenAI (https://platform.openai.com/account/api-keys) and set is an environment variable OPENAIAPIKEY. You can do it by modifying your .bashrc/.zshrc or starting jupyter with it:

$ OPENAIAPIKEY=[YOUR-KEY] jupyter lab

...

$ OPENAIAPIKEY=[YOUR-KEY] ipython

If you're working on Google Colab, you can use the %env magic method (keep in mind that if you don't delete the cell, your key will be visible):

%env OPENAIAPIKEY=sk-W8b0... your key ...

There are a few other ways to set the API KEY, but the envvar is the recommended one.

ChatGPT API

The command %%chat interfaces with ChatGPT. It accepts multiple parameters (see Usage). Here's an example:

%%chat --max-tokens=25

What's the purpose of life? ...

>>> CHAT RESPONSE

Important by default, the %%chat command preserves the conversation to give the Agent some context, in the same way that ChatGPT works. You can "reset" its status passing the flag --reset-conversation.

%%chat --reset-conversation

How can I avoid pandas using scientific notation in outputs, and do it globally? ... ... >>> CHAT RESPONSE

Agent's role (system message) and other chat parameters

By default, the Chat is started with the role: "You're a python data science coding assistant". You can change that by passing something different in your first %%chat:

%%chat --system-message="You're a R Data Science assistant"

Your message...

Once the conversation has started, you can't change the original message, as the context is preserved. To do so, you must reset the conversation:

%%chat --system-message="You're a R Data Science assistant" --reset-conversation

Your message...

Setting global config

You can change the defaults using the %chat_config line magic:

%chat_config --system-message="You're an R data scientist coding assistant specialized in visualizations" --model "other model" --reset-conversation

Invoke it without parameters to see the defaults set:

%chat_config
...

>>>

Conf set:

  • Default model: gpt-3.5-turbo
  • Default system message: You're a python data science coding assistant
  • Chat history length: 0

Other methods

Display available models

Usage:

%chat_models [--all-models]
%chat_models
Available models:

- gpt-3.5-turbo-0301 - gpt-3.5-turbo

Display usage and accepted parameters

%reloadext ipythongpt
%chat_help
...

usage: ipykernellauncher.py [-h] [--openai-api-key OPENAIAPI_KEY] [--reset-conversation] [--system-message SYSTEM_MESSAGE] [--no-system-message] [--model MODEL] [--temperature TEMPERATURE] [--max-tokens MAX_TOKENS] [--all-models]

Alternative authentication

Aside from setting the environment variable, you can also set OPENAIAPIKEY as a global variable in your notebook, or pass it directly as a parameter in any method --openai-api-key=YOUR-KEY.

These alternative methods are NOT recommended, as you might leak your API Key in the notebooks' history, stored in .ipynb_checkpoints.

🔗 More in this category

© 2026 GitRepoTrend · santiagobasulto/ipython-gpt · Updated daily from GitHub