from IPython.core.magic import magics_class, Magics, line_magic, cell_magic @magics_class class MyMagics(Magics): foo = 0 @line_magic def setfoo(self, line): self.foo = int(line) @cell_magic def foocell(self, line, cell): print cell.format(foo=self.foo) ip = get_ipython() ip.magics_manager.register(MyMagics) %%foocell foo = {foo} %setfoo 5 %%foocell foo was 0, but now foo is {foo}