Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Up until version 4.2, command-line IPython had a readline frontend, which was replaced by prompt_toolkit in IPython 5. rlipython brings that classic readline functionality to IPython 5.4+ and 6.0+.

See ipython/ipython#10364 for information.

Try it out

You can try out rlipython like this:

ipython --TerminalIPythonApp.interactive_shell_class=rlipython.TerminalInteractiveShell

Do I have to do that every time?

No. To have rlipython enabled automatically, do this:

import rlipython; rlipython.install()

This will enable rlipython for the default IPython profile if you run it using plain python or the active profile if you run it from ipython.

After running rlipyton.install(), you can go back to starting IPython just by using ipython without the extra configuration flag.


import rlipython; rlipython.uninstall()

Python 2 or Python 3

rlipython will work in both Python 2 and Python 3. However, as of May 15th, 2017, IPython 6.0 is the only released version of IPython which supports a configurable interactive_shell_class, but IPython 6.0 only works in Python 3. So if you want to use rlipython in Python 2, you will have to install the IPython 5.x branch from git, or wait for IPython 5.4 release.


This code has was extracted from IPython 5.x-dev, so it is under IPython's LICENSE.