MCPcopy
hub / github.com/nteract/hydrogen

github.com/nteract/hydrogen @v2.16.5 sqlite

repository ↗ · DeepWiki ↗ · release v2.16.5 ↗
409 symbols 1,034 edges 86 files 14 documented · 3%
README

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

Extension points exported contracts — how you extend this code

HydrogenKernelMiddlewareThunk (Interface)
(no doc) [1 implementers]
lib/plugin-api/hydrogen-types.ts
KernelGateway (Interface)
(no doc)
lib/ws-kernel-picker.ts
KernelCommand (Interface)
(no doc)
lib/main.ts
Props (Interface)
(no doc)
lib/components/result-view/markdown.tsx
StoreLike (Interface)
(no doc)
lib/store/index.ts
SelectListItem (Interface)
(no doc)
lib/services/consumed/status-bar/signal-list-view.ts
JupyterPaths (Interface)
(no doc)
lib/module_types/jupyter-paths/index.d.ts
HydrogenKernelMiddleware (Interface)
(no doc)
lib/plugin-api/hydrogen-types.ts

Core symbols most depended-on inside this repo

log
called by 54
lib/utils.tsx
dispose
called by 22
lib/store/index.ts
updateEditor
called by 20
lib/store/index.ts
newKernel
called by 17
lib/store/index.ts
setGrammar
called by 14
lib/store/index.ts
clear
called by 13
lib/store/markers.ts
update
called by 12
lib/kernel-manager.ts
appendOutput
called by 11
lib/store/output.ts

Shape

Method 199
Function 120
Class 70
Interface 20

Languages

TypeScript100%

Modules by API surface

lib/kernel.ts40 symbols
lib/code-manager.ts30 symbols
lib/zmq-kernel.ts25 symbols
lib/ws-kernel-picker.ts23 symbols
lib/utils.tsx20 symbols
lib/store/index.ts20 symbols
lib/main.ts20 symbols
lib/kernel-transport.ts14 symbols
lib/ws-kernel.ts12 symbols
lib/components/result-view/plotly.tsx12 symbols
lib/import-notebook.ts10 symbols
lib/services/consumed/status-bar/signal-list-view.ts9 symbols

Dependencies from manifests, versioned

@jupyterlab/services0.52.0 · 1×
@nteract/commutable7.1.4 · 1×
@nteract/markdown4.5.1 · 1×
@nteract/mathjax4.0.2 · 1×
@nteract/outputs3.0.0 · 1×
@nteract/plotly1.48.3 · 1×
@nteract/transform-vega7.0.0 · 1×
@nteract/types7.1.7 · 1×
@types/atom1.40.10 · 1×
@types/enzyme3.10.8 · 1×
@types/enzyme-adapter-react-161.0.6 · 1×
@types/lodash4.14.168 · 1×

For agents

$ claude mcp add hydrogen \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact