There are IPython Notebook implementations for VI and Emacs which mirror much of the rich interface of the notebook. However, they do NOT include the Javascript support needed for these rich interfaces. There's also a QT frontend that can display graphics.
IPython is two separate pieces - a core kernel, and a frontend that communicates with it via a published protocol. Anybody can design any client they want to interact with the kernel. The notebook interface in the browser is definitely the richest, in terms of features.