Skip to main content

JupyterLab PKM Extension

we developed this for our own internal use, and we used Claude to scaffold some parts. We're not likely to develop it any further with any more features, so if there's something you want, fork and develop as you will.

PyPI version License

Transform your JupyterLab into a Personal Knowledge Management (PKM) system with wikilinks, backlinks, search, and notebook cell embedding capabilities.

🌟 Overview

This extension bridges the gap between computational notebooks and knowledge management, combining:

  • Jupyter's computational power for data analysis and code development
  • Markdown's simplicity for note-taking and documentation
  • PKM features for connecting and organizing knowledge

Perfect for researchers, students, and educators who want to build connected knowledge graphs while maintaining full computational capabilities in JupyterLab Desktop.

✨ Key Features

  • Link syntax: [[Note Name]] or [[file|Display Text]]
  • Multi-format support: Link to .md, .ipynb, .csv, .json, .geojson files
  • Auto-completion: Type [[ for smart file suggestions
  • Click navigation: Ctrl/Cmd+click to follow links
  • Broken link creation: Click red links to create new files

📊 Notebook Cell Embedding

Embed specific cells from Jupyter notebooks:

![[analysis.ipynb#cell:5]]        <!-- Full cell (code + output) -->
![[analysis.ipynb#cell:5:code]]   <!-- Code only -->
![[analysis.ipynb#cell:5:output]] <!-- Output only -->

Cell Overview Tool: Use PKM: Show Notebook Cell Overview to see all cells with their IDs, types, and previews.

📄 Block Embedding

Reference and embed content from other markdown files:

![[research-notes#methodology]]     <!-- Embed by heading -->
![[findings#key-insight]]          <!-- Embed by block ID -->
![[summary#results|Key Results]]   <!-- With custom title -->

🔍 Search & Discovery

  • Global search (Alt+F): Search across all markdown files and notebooks
  • Backlinks panel (Alt+B): See which files link to the current file
  • Real-time results: Live search with context previews

📝 Editing

  • Mode toggle (Alt+M): Switch between edit and preview modes
  • Auto-preview startup: Files open in preview mode by default
  • Floating toggle button: Visual mode indicator

📦 Installation

pip install jupyterlab-pkm

Using conda

conda install -c conda-forge jupyterlab-pkm

Prerequisites

  • JupyterLab 4.0+
  • Python 3.8+

Install from Source

  1. Clone the repository:

    git clone https://github.com/XLabCU/jupyterlab-desktop-pkm.git
    cd jupyterlab-pkm
    
  2. Install frontend dependencies and build:

    jlpm install
    jlpm build
    
  3. Install the Python package:

    pip install -e .
    
  4. Restart JupyterLab Desktop

Development Installation

For development work:

# Clone and install in development mode
git clone https://github.com/XLabCU/jupyterlab-desktop-pkm.git
cd jupyterlab-pkm

# Install dependencies and build
jlpm install
jlpm build

# Install Python package in development mode
pip install -e .

# Install extension in development mode
jupyter labextension develop . --overwrite

# Start JupyterLab Desktop in watch mode
jlpm watch

📁 Content Organization

Structure your workspace for optimal PKM experience:

workspace/
├── start.md                 # Landing page (auto-opens)
├── projects/
│   ├── project-alpha.md
│   ├── analysis.ipynb
│   └── data.csv
├── notes/
│   ├── daily-notes/
│   ├── research/
│   └── ideas/
└── resources/
    ├── methodologies.md
    └── references.md

🎯 Use Cases

📚 Academic Research

  • Link literature reviews to data analysis notebooks
  • Embed key findings across multiple papers
  • Track research progression with connected notes

👩‍🏫 Teaching & Learning

  • Create interconnected lesson materials
  • Embed live code examples in documentation
  • Build concept maps with executable content

💼 Project Documentation

  • Connect project plans to implementation notebooks
  • Embed analysis results in reports
  • Maintain living documentation with computational backing

🧠 Personal Knowledge Management

  • Build a second brain with computational capabilities
  • Connect ideas across disciplines
  • Maintain reproducible research notes

⌨️ Keyboard Shortcuts

Shortcut Action
Alt+M Toggle edit/preview mode
Alt+F Open global search
Alt+B Toggle backlinks panel
Ctrl/Cmd+Click Follow wikilink

🛠️ Configuration

Startup Behavior

The extension automatically opens start.md in preview mode. Create this file in your workspace root to customize the landing experience.

Auto-save

Files are automatically saved according to JupyterLab's auto-save settings.

Search Indexing

Search indexes all .md and .ipynb files in your workspace directory and subdirectories.

📖 Usage Examples

Basic Note Linking

# Research Project Alpha

## Overview
This project builds on [[previous-research]] and explores [[new-methodology]].

## Data Analysis
See the full analysis in [[analysis.ipynb]] and key findings in [[results-summary]].

## Next Steps
- Review [[literature-review#recent-papers]]
- Update [[methodology#data-collection]]
- Prepare [[presentation-draft]]

Embedding Computational Results

# Monthly Report

## Key Metrics
![[metrics-analysis.ipynb#cell:3:output]]

## Methodology
![[analysis-methods#statistical-approach]]

## Code Implementation
![[implementation.ipynb#cell:5:code]]

Use the command palette command PKM: Show Notebook Cell Overview when viewing a notebook to see cell IDs for embedding.

🔧 Development

Building

jlpm build

Testing

jlpm test

Linting

jlpm lint

Watching for changes

jlpm watch

📄 License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

🙏 Acknowledgments

  • Built on JupyterLab
  • Inspired by Obsidian, Logseq, and Roam Research
  • Adapted from the original JupyterLite PKM extension
  • Designed for digital humanities education and computational research workflows

Future?

Jun 3, 2025: Everything we need, we think.

Metadata

Release files for jupyterlab-pkm 0.1.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyterlab-pkm 0.1.12
File Size Uploaded Provenance Actions
jupyterlab_pkm-0.1.12.tar.gz 58.8 MB Without provenance Details for jupyterlab_pkm-0.1.12.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jupyterlab-pkm 0.1.12
File Interpreter ABI Platform Actions
jupyterlab_pkm-0.1.12-py3-none-any.whl Python 3 none any Details for jupyterlab_pkm-0.1.12-py3-none-any.whl

Total release size: 58.9 MB

Release files / jupyterlab_pkm-0.1.12.tar.gz

Download URL jupyterlab_pkm-0.1.12.tar.gz
Size 58.8 MB
Tags Source
SHA-256 checksum
How to use checksums
3120b3b1e84d4a989d7847a2bd33abeed68572c02de77da402f2a0094af48df6
BLAKE2b-256 checksum
How to use checksums
25920c7fd58cf6d35901dfdf0ffe3e1f6a6c013b718ca6a8fd361db51f5e352d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / jupyterlab_pkm-0.1.12-py3-none-any.whl

Download URL jupyterlab_pkm-0.1.12-py3-none-any.whl
Size 125.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b4b235f74b5d4d4be1531016598112cd60e4612a7bafd99c3ba65ed5d3c0411
BLAKE2b-256 checksum
How to use checksums
c0f8b72c84c80a233faaf7e4af7969dc6313a278a6282308d938dce1ec63fe11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Security for jupyterlab-pkm 0.1.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page