Remote Access
Run JupyterLab on a remote machine and access it from any browser on the local network:
jupyter lab --ip 0.0.0.0 --port 8080
Set a password first so the server doesn’t expose an unprotected token:
jupyter lab password
The server will then prompt for the password instead of requiring you to copy a URL token from the terminal.
Adding Custom Kernels
If you work with multiple virtual environments, register each one as a JupyterLab kernel:
python -m ipykernel install --user --name=my_env_name
The kernel name appears in the launcher and kernel switcher. Do this once per environment; JupyterLab will remember it across sessions.
Useful Extensions
Install via conda and pip:
conda install nodejs # Required for labextension commands
# Visualization
jupyter labextension install jupyterlab_tensorboard # TensorBoard in a tab
jupyter labextension install jupyterlab_voyager # Visual data exploration
# Productivity
jupyter labextension install @jupyterlab/toc # Table of contents sidebar
pip install jupyterlab_execute_time # Show cell execution time
pip install jupyterlab-git # Git integration sidebar
pip install jupyterlab-drawio # Diagram editor
# Data editing
pip install jupyterlab-tabular-data-editor # Spreadsheet-style CSV editor
pip install jupyterlab-spreadsheet-editor
# Visualization libraries
pip install ipympl # Interactive matplotlib
pip install jupyter_bokeh # Bokeh in notebooks
For interactive matplotlib figures (zoom, pan, resize inline):
%matplotlib widget
This requires ipympl installed.
Embedding Media
Local video:
from IPython.display import Video
Video("path_to_video.mp4", embed=True)
YouTube video:
from IPython.display import HTML
HTML("""<iframe width="560" height="315"
src="https://www.youtube.com/embed/VIDEO_ID"
frameborder="0" allowfullscreen></iframe>""")
Both render inline in the notebook output, which is useful for documentation notebooks that need media context.
Practical Notes
TOC extension (@jupyterlab/toc) is the single most useful addition for long analysis notebooks. It builds a collapsible sidebar from markdown headers, making navigation between sections instant instead of requiring constant scrolling.
Execute time shows how long each cell took to run, displayed as a small annotation below the cell. Essential for catching slow cells in a workflow without manual timing.
Git sidebar gives a visual diff and staging area without leaving the browser — useful for lightweight commits on notebooks without switching to the terminal.