jupyter-notebook — Claude Code skill: what it does, how to install
Scaffolds reproducible Jupyter notebooks for experiments and tutorials using bundled templates and a helper script. It prevents manual raw JSON editing errors.
npx skills add openai/skills --skill jupyter-notebook -a claude-codeWhat jupyter-notebook does
The skill generates .ipynb files tailored for two flows: exploratory experiments and instructional tutorials. Instead of piecing JSON notebooks together by hand, it uses the bundled new_notebook.py script. The script loads templates from assets/, injects the title, and outputs a ready-to-run file.
Notebooks are organized into focused, runnable code cells paired with brief markdown explanations. The scaffolding script relies strictly on the Python standard library, so it runs without third-party dependencies. However, executing the resulting notebook locally requires jupyterlab and ipykernel.
Editing raw notebook JSON manually risks silent formatting breaks, so relying on the scaffold script keeps files valid from the start.
What it helps with
- scaffold a clean notebook for hypothesis testing or data exploration
- turn raw scripts and rough notes into a guided tutorial
- refactor existing
.ipynbfiles for reproducibility - avoid JSON schema errors when generating notebooks programmatically
Example prompts for the agent
- Create an experiment notebook to compare prompt variants
- Generate a tutorial notebook explaining text embeddings step by step
- Refactor my existing experiment.ipynb into smaller runnable steps
How to install jupyter-notebook
1Skills CLI (Vercel)
npx skills add openai/skills --skill jupyter-notebook -a claude-code2Manually: put the files in place
~/.claude/skills/jupyter-notebook/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/jupyter-notebook/
1Skills CLI (Vercel)
npx skills add openai/skills --skill jupyter-notebook -a codex2Manually: put the files in place
.agents/skills/jupyter-notebook/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openai/skills --skill jupyter-notebook -a cursor2Manually: put the files in place
.cursor/skills/jupyter-notebook/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openai/skills jupyter-notebook2Manually: put the files in place
.github/skills/jupyter-notebook/SKILL.md1Skills CLI (Vercel)
npx skills add openai/skills --skill jupyter-notebook -a gemini-cli2Platform CLI
gemini skills install https://github.com/openai/skills --path skills/.curated/jupyter-notebookManually: put the files in place
.devin/skills/jupyter-notebook/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add openai/skills --skill jupyter-notebook -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set20
The whole set →Similar
Questions about jupyter-notebook
How to install jupyter-notebook in Claude Code?
Run npx skills add openai/skills --skill jupyter-notebook -a claude-code. This installs the skill and bundled templates into your agent environment.
What is the difference between experiment and tutorial kinds?
The experiment kind focuses on analytical workflows and hypothesis testing. The tutorial kind emphasizes instructional, step-by-step guidance for readers.
What dependencies are required to generate notebooks?
Generating notebooks with new_notebook.py requires only the Python standard library. Running the generated notebooks locally requires optional packages such as jupyterlab and ipykernel.
Source text
SKILL.md · Apache-2.0
---
name: "jupyter-notebook"
description: "Use when the user asks to create, scaffold, or edit Jupyter notebooks (`.ipynb`) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script `new_notebook.py` to generate a clean starting notebook."
---
# Jupyter Notebook Skill
Create clean, reproducible Jupyter notebooks for two primary modes:
- Experiments and exploratory analysis
- Tutorials and teaching-oriented walkthroughs
Prefer the bundled templates and the helper script for consistent structure and fewer JSON mistakes.
## When to use
- Create a new `.ipynb` notebook from scratch.
- Convert rough notes or scripts into a structured notebook.
- Refactor an existing notebook to be more reproducible and skimmable.
- Build experiments or tutorials that will be read or re-run by other people.
## Decision tree
- If the request is exploratory, analytical, or hypothesis-driven, choose `experiment`.
- If the request is instructional, step-by-step, or audience-specific, choose `tutorial`.
- If editing an existing notebook, treat it as a refactor: preserve intent and improve structure.
## Skill path (set once)
```bash
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export JUPYTER_NOTEBOOK_CLI="$CODEX_HOME/skills/jupyter-notebook/scripts/new_notebook.py"
```
User-scoped skills install under `$CODEX_HOME/skills` (default: `~/.codex/skills`).
## Workflow
1. Lock the intent.
Identify the notebook kind: `experiment` or `tutorial`.
Capture the objective, audience, and what "done" looks like.
2. Scaffold from the template.
Use the helper script to avoid hand-authoring raw notebook JSON.
```bash
uv run --python 3.12 python "$JUPYTER_NOTEBOOK_CLI" \
--kind experiment \
--title "Compare prompt variants" \
--out output/jupyter-notebook/compare-prompt-variants.ipynb
```
```bash
uv run --python 3.12 python "$JUPYTER_NOTEBOOK_CLI" \
--kind tutorial \
--title "Intro to embeddings" \
--out output/jupyter-notebook/intro-to-embeddings.ipynb
```
3. Fill the notebook with small, runnable steps.
Keep each code cell focused on one step.
Add short markdown cells that explain the purpose and expected result.
Avoid large, noisy outputs when a short summary works.
4. Apply the right pattern.
For experiments, follow `references/experiment-patterns.md`.
For tutorials, follow `references/tutorial-patterns.md`.
5. Edit safely when working with existing notebooks.
Preserve the notebook structure; avoid reordering cells unless it improves the top-to-bottom story.
Prefer targeted edits over full rewrites.
If you must edit raw JSON, review `references/notebook-structure.md` first.
6. Validate the result.
Run the notebook top-to-bottom when the environment allows.
If execution is not possible, say so explicitly and call out how to validate locally.
Use the final pass checklist in `references/quality-checklist.md`.
## Templates and helper script
- Templates live in `assets/experiment-template.ipynb` and `assets/tutorial-template.ipynb`.
- The helper script loads a template, updates the title cell, and writes a notebook.
Script path:
- `$JUPYTER_NOTEBOOK_CLI` (installed default: `$CODEX_HOME/skills/jupyter-notebook/scripts/new_notebook.py`)
## Temp and output conventions
- Use `tmp/jupyter-notebook/` for intermediate files; delete when done.
- Write final artifacts under `output/jupyter-notebook/` when working in this repo.
- Use stable, descriptive filenames (for example, `ablation-temperature.ipynb`).
## Dependencies (install only when needed)
Prefer `uv` for dependency management.
Optional Python packages for local notebook execution:
```bash
uv pip install jupyterlab ipykernel
```
The bundled scaffold script uses only the Python standard library and does not require extra dependencies.
## Environment
No required environment variables.
## Reference map
- `references/experiment-patterns.md`: experiment structure and heuristics.
- `references/tutorial-patterns.md`: tutorial structure and teaching flow.
- `references/notebook-structure.md`: notebook JSON shape and safe editing rules.
- `references/quality-checklist.md`: final validation checklist.
© openai · Apache-2.0 · openai/skills