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

🔗 Wikilinks & Navigation

  • 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

Using pip (Recommended)

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

📚 Related Projects

Future?

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyterlab_pkm-0.1.12.tar.gz (58.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupyterlab_pkm-0.1.12-py3-none-any.whl (125.0 kB view details)

Uploaded Python 3

File details

Details for the file jupyterlab_pkm-0.1.12.tar.gz.

File metadata

  • Download URL: jupyterlab_pkm-0.1.12.tar.gz
  • Upload date:
  • Size: 58.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for jupyterlab_pkm-0.1.12.tar.gz
Algorithm Hash digest
SHA256 3120b3b1e84d4a989d7847a2bd33abeed68572c02de77da402f2a0094af48df6
MD5 3aa5075d79e3f28aa7b2d8413b83f4c2
BLAKE2b-256 25920c7fd58cf6d35901dfdf0ffe3e1f6a6c013b718ca6a8fd361db51f5e352d

See more details on using hashes here.

File details

Details for the file jupyterlab_pkm-0.1.12-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyterlab_pkm-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 9b4b235f74b5d4d4be1531016598112cd60e4612a7bafd99c3ba65ed5d3c0411
MD5 cc007f63f326b84bdca185ac6173a150
BLAKE2b-256 c0f8b72c84c80a233faaf7e4af7969dc6313a278a6282308d938dce1ec63fe11

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.12 This release

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.2

2 files

0.1.1

2 files

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