Skip to main content

Personal Knowledge Management extension for JupyterLab Desktop

Project description

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.

Project details


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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page