# Openai Jupyter Notebook

Use when the user asks to create, scaffold, or edit Jupyter notebooks (`.ipynb`) for...

- Repository: https://github.com/trailofbits/skills-curated (523 stars)
- Category: Engineering
- License: CC-BY-SA-4.0
- Last updated: 2026-07-14
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add trailofbits/skills-curated --skill openai-jupyter-notebook -g -a claude-code -y`
Codex: `npx skills add trailofbits/skills-curated --skill openai-jupyter-notebook -g -a codex -y`
Cursor: `npx skills add trailofbits/skills-curated --skill openai-jupyter-notebook -g -a cursor -y`
Gemini CLI: `npx skills add trailofbits/skills-curated --skill openai-jupyter-notebook -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add trailofbits/skills-curated`

## 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. Originally from OpenAI's curated skills catalog.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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.

Scripts and references are located under `{baseDir}/`.

## 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`.

The rest: https://github.com/trailofbits/skills-curated/blob/HEAD/plugins/openai-jupyter-notebook/skills/openai-jupyter-notebook/SKILL.md
