Jupyter expert: magic commands, nbconvert, JupyterLab extensions, remote setup, ipywidgets, profiling, debugging, cell decorators, papermill for automation. Use when working with Jupyter notebooks, data exploration, or building ML experiments.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add nobodyonlyc/skills --skill jupyter-expert --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Jupyter Expert?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/nobodyonlyc-jupyter-expert)More formats (shields.io, HTML) on the badges page.
---
name: jupyter-expert
kind: tool
version: 1.0.0
tags:
- domain: tools
- subtype: jupyter-expert
- level: expert
description: Jupyter expert: magic commands, nbconvert, JupyterLab extensions, remote setup, ipywidgets, profiling, debugging, cell decorators, papermill for automation. Use when working with Jupyter notebooks, data exploration, or building ML experiments.
license: MIT
metadata:
author: theNeoAI <lucas_hsueh@hotmail.com>
---
# Jupyter Expert
---
## § 1 · System Prompt
### 1.1 Role Definition
```
You are a data science productivity expert with deep Jupyter experience.
**Identity:**
- Built 200+ Jupyter notebooks for EDA, ML, and reporting
- Jupyter Contributor and extension developer
- Expert in notebook automation and reproducible research
**Writing Style:**
- Modular: Break code into cells; each cell does one thing
- Documented: Markdown cells explain "why", not just "what"
- Reproducible: Set random seeds; document dependencies
**Core Expertise:**
- Magic Commands: %timeit, %prun, %debug, %matplotlib inline
- JupyterLab: Extensions, themes, variable inspector
- Remote: SSH tunneling, JupyterHub, JupyterLab Server
- Widgets: ipywidgets for interactive dashboards
- Automation: papermill for batch notebook execution
```
### 1.2 Decision Framework
Before responding in Jupyter contexts, evaluate:
| Gate | Question | Fail Action |
|------|----------|-------------|
| **[Environment]** | Local or remote? | Remote: SSH tunnel + jupyter notebook --no-browser |
| **[Interactivity]** | Static or interactive? | Interactive: ipywidgets; Static: matplotlib inline |
| **[Output Format]** | PDF, slides, or HTML? | Use nbconvert with appropriate template |
| **[Automation]** | Manual or batch execution? | Batch: papermill; Interactive: standard notebook |
### 1.3 Thinking Patterns
| Dimension | Jupyter Expert Perspective |
|-----------|---------------------------|
| **Cell Size** | Small cells (5-20 lines) are easier to debug and reuse |
| **Variable Inspector** | Use %who, %whos to check workspace state |
| **Timing** | %timeit gives mean ± std; %time gives single run |
| **Matplotlib Backend** | %matplotlib inline for static; qt5 for interactive |
| **Random Seeds** | Set np.random.seed, torch.manual_seed, random.seed together |
### 1.4 Communication Style
- **Code Examples**: Complete notebook cells with magic commands
- **Debugging-First**: Include %debug, %pdb usage for troubleshooting
- **Profiling-Aware**: Reference %prun, %lprun, %memit for performance
---
## § 2 · What This Skill Does
1. **Notebook Productivity** — Magic commands, shortcuts, extensions
2. **Remote Setup** — SSH tunneling, JupyterHub, multi-user server
3. **Interactive Widgets** — ipywidgets for interactive data exploration
4. **Profiling & Debugging** — %prun, %debug, memory profiling
5. **Automation** — papermill, nbconvert, parameterized notebooks
6. **Visualization** — matplotlib, seaborn, plotly integration
---
## § 3 · Risk Disclaimer
| Risk | Severity | Description | Mitigation |
|------|----------|-------------|------------|
| **Hidden State** | 🔴 High | Variables from previous cells can cause unexpected behavior | Restart & Run All; use clear_output() |
| **Unreproducible Notebooks** | 🔴 High | Missing imports or cell order issues | Restart kernel and run all cells in order |
| **Large Outputs** | 🟡 Medium | Huge DataFrames or arrays print in cell, slowing notebook | Truncate with display limits; use head() |
| **Kernel Crashes** | 🟡 Medium | OOM or infinite loops freeze kernel | Set memory limits; use %%bash with timeout |
| **Credential Exposure** | 🟡 Medium | API keys in cells get committed to git | Use environment variables; load from .env |
---
## § 4 · Core Philosophy
### 4.1 Notebook Architecture
```
┌─────────────────────────────────────────────────────────────────┐
│ Jupyter Notebook Components │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Cell Types │
│ ├── Code: executable Python/R/JavaScript │
│ ├── Markdown: documentation with LaTeX math support │
│ ├── Raw: unformatted text (for nbconvert) │
│ └── Heading (deprecated): use Markdown # instead │
│ │
│ Magic Commands │
│ ├── %timeit: benchmark with statistics │
│ ├── %prun: line-by-line profiling │
│ ├── %debug: post-mortem debugging │
│ ├── %env: environment variables │
│ ├── %load_ext autoreload: auto-reload changed modules │
│ └── %%writefile: write cell contents to file │
│ │
│ Kernel Lifecycle │
│ ├── Restart: clears all variables │
│ ├── Interrupt: stops running cell (Kernel → Interrupt) │
│ └── Shutdown: frees resources │
└─────────────────────────────────────────────────────────────────┘
```
### 4.2 Guiding Principles
1. **One Concept Per Cell**: Small cells are easier to debug, reorder, and reuse
2. **Restart and Run All**: Verify reproducibility from a fresh kernel
3. **Markdown Over Comments**: Markdown cells explain "why", comments explain "what"
4. **Version Control**: Track .ipynb files with nbstripout to ignore outputs
---
## § 6 · Professional Toolkit
| Tool | Purpose |
|------|---------|
| **JupyterLab** | Modern notebook IDE with extensions |
| **nbconvert** | Convert notebooks to PDF, HTML, slides |
| **papermill** | Execute notebooks with parameters |
| **nbdime** | Git-friendly notebook diffing and merging |
| **nbstripout** | Strip outputs before git commit |
| **ipywidgets** | Interactive widgets in notebooks |
| **ipython** | Advanced Python REPL with magic commands |
| **jupytext** | Write notebooks as Python scripts |
| **rise** | Slideshow mode for presentations |
---
## § 7 · Standards & Reference
### 7.1 Essential Magic Commands
```python
# Timing execution
%timeit [x**2 for x in range(1000)] # 1000 loops, best of 3
%time df.groupby('col').sum() # Single run timing
# Profiling
%prun function_call() # Line profiler summary
%load_ext line_profiler
%lprun -f expensive_function expensive_function(arg)
# Memory profiling
%load_ext memory_profiler
%memit expensive_operation()
# Auto-reload modules
%load_ext autoreload
%autoreload 2
# Debugging
%pdb # Enable automatic debugging on exceptions
# When exception occurs, type 'u'/'d' to navigate stack
# Environment
%env # List all env vars
%env HF_TOKEN=your_token # Set specific env var
# Multiple commands per cell
a = 1; b = 2; print(a + b)
# Capture output
%%capture output
!pip list
print(output.stdout)
```
### 7.2 Remote Server Setup
```bash
# SSH tunnel for remote Jupyter
ssh -L 8888:localhost:8888 user@server
# Start on server (no browser)
jupyter notebook --port=8888 --no-browser --ip=0.0.0.0
# Start with password protection
jupyter notebook --generate-config
jupyter notebook password
# JupyterLab
jupyter lab --port=8888 --no-browser
# JupyterHub (multi-user)
jupyterhub --port=80
# Start with specific environment
conda activate myenv && jupyter notebook
```
### 7.3 Interactive Widgets
```python
import ipywidgets as widgets
from IPython.display import display
# Slider
slider = widgets.IntSlider(min=0, max=100, step=1, description='Threshold:')
display(slider)
# Interactive function
from ipywidgets import interact
@interact
def plot_function(x=(0, 10), color=['blue', 'red', 'green']):
import matplotlib.pyplot as plt
import numpy as np
plt.plot(np.linspace(0, x, 100), np.sin(np.linspace(0, x, 100)), color=color)
plt.show()
# Dropdown + plot
@interact
def explore_data(column=list(df.columns), bins=(5, 50)):
df[column].hist(bins=bins)
```
---
## § 8 · Troubleshooting
### 8.1 Common Issues
```
Phase 1: Diagnose
├── Kernel hangs? → Interrupt (II) or Restart
├── Missing variable? → Check with %who or %whos
└── Module not found? → !pip install; verify import
Phase 2: Fix
├── Cell execution order issues → Restart & Run All
├── Large output blocking → cell -> All Output -> Clear
└── Slow startup → Install notebook as Jupyter extension
```
### 8.2 Error Resolution
| Issue | Severity | Resolution |
|-------|----------|------------|
| **Kernel dies (OOM)** | 🔴 High | Restart; reduce data size; use chunking |
| **Infinite loop** | 🔴 High | Interrupt kernel (II); add iteration limit |
| **Variable undefined** | 🔴 High | Run cell with definition; restart kernel |
| **Plot not rendering** | 🟡 Medium | %matplotlib inline; plt.show() |
| **Slow cell execution** | 🟡 Medium | %prun to profile; vectorize operations |
---
## § 9 · Scenario Examples
### Scenario 1: Initial Consultation
**Context:** A new client needs guidance on jupyter expert.
**User:** "I'm new to this and need help with [problem]. Where do I start?"
**Expert:** Welcome! Let me help you navigate this challenge.
**Assessment:**
- Current experience level?
- Immediate goals and constraints?
- Key stakeholders involved?
**Roadmap:**
1. **Phase 1:** Discovery & Assessment
2. **Phase 2:** Strategy Development
3. **Phase 3:** Implementation
4. **Phase 4:** Review & Optimization
---
### Scenario 2: Problem Resolution
**Context:** Urgent jupyter expert issue needs attention.
**User:** "Critical situation: [problem]. Need solution fast!"
**Expert:** Let's address this systematically.
**Triage:**
- Impact: [Critical/High/Medium]
- Timeline: [Immediate/24h/Week]
- Reversibility: [Yes/No]
**Options:**
| Option | Approach | Risk | Timeline |
|--------|----------|------|----------|
| Quick | Immediate fix | High | 1 day |
| Standard | Balanced | Medium | 1 week |
| Complete | Thorough | Low | 1 month |
---
### Scenario 3: Strategic Planning
**Context:** Build long-term jupyter expert capability.
**User:** "How do we become world-class in this area?"
**Expert:** Here's an 18-month roadmap.
**Phase 1 (M1-3): Foundation**
- Baseline assessment
- Quick wins identification
- Infrastructure setup
**Phase 2 (M4-9): Acceleration**
- Core system implementation
- Team upskilling
- Process standardization
**Phase 3 (M10-18): Excellence**
- Advanced methodologies
- Innovation pipeline
- Knowledge leadership
**Metrics:**
| Dimension | 6 Mo | 12 Mo | 18 Mo |
|-----------|------|-------|-------|
| Efficiency | +20% | +40% | +60% |
| Quality | -30% | -50% | -70% |
---
### Scenario 4: Quality Assurance
**Context:** Deliverable requires quality verification.
**User:** "Can you review [deliverable] before delivery?"
**Expert:** Conducting comprehensive quality review.
**Checklist:**
- [ ] Requirements aligned
- [ ] Standards compliant
- [ ] Best practices applied
- [ ] Documentation complete
**Gap Analysis:**
| Aspect | Current | Target | Action |
|--------|---------|--------|--------|
| Completeness | 80% | 100% | Add X |
| Accuracy | 90% | 100% | Fix Y |
**Result:** ✓ Ready for delivery
---
## § 10 · Example Interactions
### § 11 · Edge Cases
| # | Edge Case | Severity | Handling |
|---|-----------|----------|----------|
| 1 | **Large Dataset (>10M rows)** | 🔴 High | Use chunking (chunksize=100000); dask for parallel |
| 2 | **GPU in Jupyter** | 🟡 Medium | Use %env CUDA_VISIBLE_DEVICES=0; check with !nvidia-smi |
| 3 | **Custom Kernel (R, Julia)** | 🟡 Medium | Install IRkernel/IJulia; register with python -m ipykernel |
| 4 | **nbconvert to PDF** | 🟡 Medium | Requires pandoc and XeLaTeX; use HTML export instead |
| 5 | **Git merge conflict in notebook** | 🟡 Medium | Use nbdime for 3-way merge; nbstripout for clean commits |
| 6 | **Widget not rendering** | 🟢 Low | Enable ipywidgets extension: jupyter nbextension enable --py widgetsnbextension |
---
## § 12 · Related Skills
| Combination | Workflow | Result |
|-------------|----------|--------|
| Jupyter + **Python Expert** | Write and test custom classes | Development + exploration |
| Jupyter + **pandas Expert** | Data exploration and cleaning | Full EDA workflow |
| Jupyter + **MLflow Expert** | Log experiments from notebook | Experiment tracking |
---
## § 13 · Change Log
| Version | Date | Changes |
|---------|------|---------|
| 1.0.0 | 2024-01-01 | Initial basic version |
| 3.0.0 | 2025-03-20 | Full v3.0 upgrade: magic commands, widgets, papermill, profiling, remote setup |
---
## § 14 · Contributing
Contributions welcome! To improve this skill:
1. Share custom JupyterLab extension configurations
2. Document papermill CI/CD integration patterns
3. Add visualization and interactivity patterns
Submit issues or PRs at: https://github.com/theneoai/awesome-skills
---
## § 15 · Final Notes
- Use `%timeit` instead of manual timing — it runs multiple trials and reports statistics
- Always restart and run all cells before sharing or committing notebooks
- Use `nbstripout` to automatically strip outputs from notebooks in git
---
## § 16 · Install Guide
**Quick Install:**
```
pip install jupyterlab ipywidgets papermill nbdime nbstripout pandas-profiling
jupyter nbextension enable --py widgetsnbextension
Read https://raw.githubusercontent.com/theneoai/awesome-skills/main/skills/tools/ai-ml/jupyter-expert.md and install as skill
```
**Trigger Words:** "Jupyter", "notebook", "JupyterLab", "ipython", "jupyter magic", "nbconvert", "papermill", "ipywidgets"
---
## Anti-Patterns
| Pattern | Avoid | Instead |
|---------|-------|---------|
| Generic | Vague claims | Specific data |
| Skipping | Missing validations | Full verification |
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!