Skip to main content

A Jupyter interface for projspec

Project description

jupyter-projspec logo

Github Actions Status Binder

A JupyterLab extension that brings projspec project introspection directly into your development workflow. See at a glance what kind of project you're working in and explore its structure, metadata, and buildable artifacts.

Screenshot 2026-01-09 at 3 59 41โ€ฏPM

Features

๐Ÿท๏ธ Project Type Chips in File Browser

Colored badge chips appear below the breadcrumbs in the file browser, showing all detected project types for the current directory:

  • Instant recognition โ€” See ๐Ÿ Python Library, ๐Ÿ”ฎ Pixi, ๐Ÿ”€ Git Repository, etc. at a glance
  • Click to explore โ€” Clicking a chip opens the sidebar panel and scrolls to that spec's details
  • Unobtrusive โ€” Chips only appear when project specs are detected; completely hidden otherwise

๐Ÿ“‹ Project Spec Sidebar Panel

A dedicated right sidebar panel provides detailed project information:

  • Synced with file browser โ€” Automatically updates as you navigate directories
  • Expandable spec items โ€” Click to reveal contents and artifacts for each project type
  • Contents โ€” View metadata, dependencies, environment specs, and more
  • Artifacts โ€” See buildable outputs like wheels, conda packages, documentation

๐ŸŽจ Supported Project Types

jupyter-projspec recognizes many project types through projspec:

Category Types
Version Control Git Repository
Python Python Library, Poetry, uv, Pixi, Conda Project, Conda Recipe, PyScript, Briefcase
JavaScript Node.js, Yarn, JupyterLab Extension
Rust Rust Crate
Documentation mdBook, Read the Docs
Data & ML Data Package, Hugging Face Repo
IDEs VS Code, JetBrains IDE, Zed, NVIDIA AI Workbench

Requirements

  • JupyterLab >= 4.0.0
  • Python >= 3.10
  • projspec

Install

pip install jupyter-projspec

Usage

  1. Open JupyterLab and navigate to any project directory using the file browser
  2. Look for chips below the breadcrumbs โ€” they appear when projspec detects project types
  3. Click a chip or the sidebar icon to open the Project Spec panel
  4. Expand specs to explore contents (metadata, dependencies) and artifacts (buildable outputs)

Uninstall

pip uninstall jupyter-projspec

Troubleshoot

If you see the frontend extension but it's not working, verify the server extension is enabled:

jupyter server extension list

If the server extension is installed and enabled but you don't see the frontend extension:

jupyter labextension list

Contributing

Development Install

You will need NodeJS to build the extension package.

# Clone the repo
git clone https://github.com/fsspec/jupyter-projspec.git
cd jupyter-projspec

# Set up a virtual environment
python -m venv .venv
source .venv/bin/activate

# Install in development mode
pip install --editable ".[dev,test]"

# Link your development version with JupyterLab
jupyter labextension develop . --overwrite
jupyter server extension enable jupyter_projspec

# Build the extension (do this after each TypeScript change)
jlpm build

Development Workflow

Watch mode (recommended for active development):

# Terminal 1: Auto-rebuild on file changes
jlpm watch

# Terminal 2: Run JupyterLab
jupyter lab

With watch mode running, saved TypeScript changes rebuild automatically. Refresh your browser to see changes.

After editing Python (files in jupyter_projspec/):

  • Restart the JupyterLab server (no rebuild needed)

Development Uninstall

jupyter server extension disable jupyter_projspec
pip uninstall jupyter_projspec

Remove the symlink created by jupyter labextension develop:

jupyter labextension list  # Find labextensions folder location
# Remove the jupyter-projspec symlink from that folder

Testing

Server tests (Python):

pip install -e ".[test]"
pytest -vv -r ap --cov jupyter_projspec

Frontend tests (TypeScript):

jlpm test

Integration tests (Playwright):

See ui-tests/README.md for details.

Architecture

jupyter-projspec/
โ”œโ”€โ”€ src/                          # TypeScript frontend
โ”‚   โ”œโ”€โ”€ index.ts                  # Extension entry point
โ”‚   โ”œโ”€โ”€ components/               # React components
โ”‚   โ”‚   โ”œโ”€โ”€ ProjspecPanelComponent.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ ProjectView.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ SpecItem.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ ContentsView.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ ArtifactsView.tsx
โ”‚   โ”‚   โ””โ”€โ”€ ProjspecChips.tsx     # File browser chips
โ”‚   โ””โ”€โ”€ widgets/
โ”‚       โ”œโ”€โ”€ ProjspecPanel.ts      # Sidebar panel widget
โ”‚       โ””โ”€โ”€ ProjspecChipsWidget.ts
โ”œโ”€โ”€ jupyter_projspec/             # Python backend
โ”‚   โ”œโ”€โ”€ __init__.py               # Server extension setup
โ”‚   โ””โ”€โ”€ routes.py                 # API route handlers
โ”œโ”€โ”€ style/                        # CSS styles
โ””โ”€โ”€ schema/                       # JupyterLab settings schema

API Endpoints

Endpoint Method Description
/jupyter-projspec/scan GET Scan a directory and return projspec data

Roadmap

Future enhancements being considered:

  • MAKE buttons โ€” Execute artifact builds directly from the UI
  • Build output display โ€” Show stdout/stderr from artifact builds
  • File browser navigation โ€” Click built artifacts to reveal them
  • Real-time streaming โ€” Live output for long-running builds
  • jupyter-fsspec integration โ€” Support for remote filesystems

AI Coding Assistant Support

This project includes an AGENTS.md file with coding standards for JupyterLab extension development. Compatible with AI assistants that support the AGENTS.md standard.

License

BSD-3-Clause

Acknowledgments

Built on projspec by the fsspec team.

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

jupyter_projspec-0.1.0.tar.gz (177.6 kB view details)

Uploaded Source

Built Distribution

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

jupyter_projspec-0.1.0-py3-none-any.whl (48.9 kB view details)

Uploaded Python 3

File details

Details for the file jupyter_projspec-0.1.0.tar.gz.

File metadata

  • Download URL: jupyter_projspec-0.1.0.tar.gz
  • Upload date:
  • Size: 177.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for jupyter_projspec-0.1.0.tar.gz
Algorithm Hash digest
SHA256 63fbe5df339c112043658af07cb65d9cd031c3c61fa6b025e7600608ca69d1ae
MD5 b5a41e90b82405178a6a04b7b3c9ffdc
BLAKE2b-256 0f83c5794865949de125d64909b66c43fe20293a2cb05e18acb6350ae4069386

See more details on using hashes here.

File details

Details for the file jupyter_projspec-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_projspec-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 25420078f654a55664838665419e600fbcffa360bd211cc887045dab6f09d205
MD5 1a998611c1d3532acae615f3a3db3e34
BLAKE2b-256 201ed205775b09ac484d5232cee4f5613e48c74c4048fea3e526e9c050fc0a04

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