/hydrogen

:atom: Run code interactively, inspect data, and plot. All the power of Jupyter kernels, inside your favorite text editor.

Primary LanguageTypeScriptMIT LicenseMIT

Hydrogen hydrogen animated logo

CI

Hydrogen is an interactive coding environment that supports Python, R, JavaScript and other Jupyter kernels.

Checkout our Documentation and Medium blog post to see what you can do with Hydrogen.

hero

Contents

  1. Background
  2. Features
  3. Plugins for Hydrogen
  4. Useful external packages
  5. How it works
  6. Why "Hydrogen"?
  7. Contributing
  8. Changelog
  9. License

Background

Hydrogen was inspired by Bret Victor's ideas about the power of instantaneous feedback and the design of Light Table. Running code inline and in real time is a more natural way to develop. By bringing the interactive style of Light Table to the rock-solid usability of Atom, Hydrogen makes it easy to write code the way you want to.

You also may be interested in our latest project – nteract – a desktop application that wraps up the best of the web based Jupyter notebook.

Features

  • execute a line, selection, or block at a time
  • rich media support for plots, images, and video
  • watch expressions let you keep track of variables and re-run snippets after every change
  • completions from the running kernel, just like autocomplete in the Chrome dev tools
  • code can be inspected to show useful information provided by the running kernel
  • one kernel per language (so you can run snippets from several files, all in the same namespace)
  • interrupt or restart the kernel if anything goes wrong
  • use a custom kernel connection (for example to run code inside Docker), read more in the "Custom kernel connection (inside Docker)" section

Documentation

Plugins for Hydrogen

Hydrogen has support for plugins. Feel free to add your own to the list:

If you are interested in building a plugin take a look at our plugin API documentation.

Useful external packages

Here is a list of external packages that could be useful when using Hydrogen (without using Hydrogen plugin API, as such they're mostly only related to the UIs):

If you find/create a package that you think can be useful when used in combination with Hydrogen, feel free to make a PR and add it.

How it works

Hydrogen implements the messaging protocol for Jupyter. Jupyter (formerly IPython) uses ZeroMQ to connect a client (like Hydrogen) to a running kernel (like IJulia or iTorch). The client sends code to be executed to the kernel, which runs it and sends back results.

Why "Hydrogen"?

Hydrogen atoms make up 90% of Jupiter by volume.

Plus, it was easy to make a logo.

Contributing

Thanks for taking the time to contribute. Take a look at our Contributing Guide to get started.

Then, take a look at any issue labeled good first issue or help wanted that has not been claimed. These are great starting points.

Changelog

Every release is documented on the GitHub Releases page.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

back to top