Back to skills
SKILL.md
Jupyter Expert
ASecurityJupyter 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.
- 2 stars
- 0 votes
- 0 copies
- 6 views
- Added September 8, 2026
Works with
Security analysis
96/100- Installs packages at runtime which could introduce malicious dependencies
Pro scans all 5 files and shows the line behind each finding
npx -y skills add nobodyonlyc/skills --skill jupyter-expert --agent claude-codeAre you the author of Jupyter Expert?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/nobodyonlyc-jupyter-expert)---
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 |
Files in this skill
- SKILL.md
- references/pitfalls.md
- references/scenarios.md
- references/standards.md
- references/workflow.md
Attribution
Related skills
View all in development →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.