This documentation covers IPython versions 6.0 and higher. Beginning with version 6.0, IPython stopped supporting compatibility with Python versions lower than 3.3 including all versions of Python 2.7.

If you are looking for an IPython version compatible with Python 2.7, please use the IPython 5.x LTS release and refer to its documentation (LTS is the long term support release).


%store magic for lightweight persistence.

Stores variables, aliases and macros in IPython’s database.

To automatically restore stored variables at startup, add this to your file:

c.StoreMagics.autorestore = True'')

Lightweight persistence for python variables.


In [1]: l = ['hello',10,'world']
In [2]: %store l
Stored 'l' (list)
In [3]: exit

(IPython session is closed and started again...)

ville@badger:~$ ipython
In [1]: l
NameError: name 'l' is not defined
In [2]: %store -r
In [3]: l
Out[3]: ['hello', 10, 'world']


  • %store - Show list of all variables and their current


  • %store spam bar - Store the current value of the variables spam

    and bar to disk

  • %store -d spam - Remove the variable and its value from storage

  • %store -z - Remove all variables from storage

  • %store -r - Refresh all variables, aliases and directory history

    from store (overwrite current vals)

  • %store -r spam bar - Refresh specified variables and aliases from store

    (delete current val)

  • %store foo >a.txt - Store value of foo to new file a.txt

  • %store foo >>a.txt - Append value of foo to file a.txt

It should be noted that if you change the value of a variable, you need to %store it again if you want to persist the new value.

Note also that the variables will need to be pickleable; most basic python types can be safely %store’d.

Also aliases can be %store’d across sessions. To remove an alias from the storage, use the %unalias magic.