d-eniz9k downloadsJupyter notebook support within your vault for interactive programming, live outputs, and notebook syncing.

Enables Jupyter notebook functionality in Obsidian. Make markdown files behave like .ipynb notebooks, with live code execution, rich output rendering, and bidirectional syncing between .md and .ipynb files.
With JupyMD you can:
matplotlibpandas dataframessklearn and pytorch... all in your Obsidian vault!

matplotlib
.ipynb files via Jupytext.ipynb) to Markdown notes (.md) via Jupytext.md and .ipynb files.ipynb file.ipynb filematplotlib plots and pandas dataframe outputsJupytext and Matplotlib can be installed on configured interpreters within the plugin settings.
Download the plugin through the Obsidian community plugin browser and enable it.
It is highly recommended to use a virtual environment for an interpreter. It is easy to set up a virtual environment through the interpreter selector within the plugin settings.
JupyMD natively supports pyenv environments and custom interpreters.
To install libraries to a specified interpreter, use the following command line prompt:
<interpreter> -m pip install <package>
You can copy the path to your current interpreter by shift + clicking on the interpreter name on the status bar.
Your note will be transformed into a Jupyter notebook when you run a cell through the custom code blocks. This will create an .ipynb file with the same file name as the current note on the file directory, and sync its contents automatically to the .ipynb file. You may choose to ignore the created .ipynb file completely, as its functionality will be mirrored in Obsidian.
To manually convert a note, you may run the following command:
JupyMD: Create Jupyter notebook from note
Move your Jupyter notebook to your vault. Executing the following command will list out all .ipynb files within your vault which you can select to convert into a note:
JupyMD: Create note from Jupyter notebook
This will create a Markdown note (.md) with the same file name as the notebook in the same directory where the Jupyter notebook is.
JupyMD may access directories outside your Obsidian vault to detect available Python interpreters.
This includes:
/usr/bin/python, python3).venv)~/.pyenv/versions)This access is required to automatically discover and list available Python environments and allow users to select an interpreter for code execution. JupyMD does not transmit any data over the network or modify files outside your vault.
Please read the contribution guidelines if you want to contribute to JupyMD.
This project was originally built to solve a personal problem, and it's still in an early stage. Feedback, feature requests, bug reports, and pull requests are all welcome and appreciated!
JupyMD is an independent project and not affiliated with Project Jupyter, Jupytext, or Obsidian.