Add Jupyter notebooks canvas extension (#2889)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Pierce Boggan
2026-09-01 15:05:04 +10:00
committed by GitHub
co-authored by Copilot App
parent 33484438eb
commit 5eaae7e2cd
10 changed files with 4015 additions and 0 deletions
+6
View File
@@ -943,6 +943,12 @@
"description": "Drive the GitHub Copilot App Modernization for Java workflow from an interactive canvas: environment readiness, repo assessment, prioritized plan and progress, validation gates, and one-click predefined-task runs grounded in the repo's real artifacts.",
"version": "1.0.2"
},
{
"name": "jupyter-notebooks",
"source": "plugins/jupyter-notebooks",
"description": "Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive Copilot canvas.",
"version": "1.0.0"
},
{
"name": "keep-the-why",
"description": "Preserves or recovers the reasoning behind a codebase — architectural decisions, rejected alternatives, workarounds, incident learnings, operational constraints, and historical context the code itself cannot explain.",
+1
View File
@@ -73,6 +73,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
| [java-development](../plugins/java-development/README.md) | Comprehensive collection of prompts and instructions for Java development including Spring Boot, Quarkus, testing, documentation, and best practices. | 4 items | java, springboot, quarkus, jpa, junit, javadoc |
| [java-mcp-development](../plugins/java-mcp-development/README.md) | Complete toolkit for building Model Context Protocol servers in Java using the official MCP Java SDK with reactive streams and Spring Boot integration. | 2 items | java, mcp, model-context-protocol, server-development, sdk, reactive-streams, spring-boot, reactor |
| [java-modernization-studio](../plugins/java-modernization-studio/README.md) | Drive the GitHub Copilot App Modernization for Java workflow from an interactive canvas: environment readiness, repo assessment, prioritized plan and progress, validation gates, and one-click predefined-task runs grounded in the repo's real artifacts. | 1 items | app-modernization, assessment-dashboard, azure-migration, java-modernization, legacy-java, modernization-cockpit, validation-gates |
| [jupyter-notebooks](../plugins/jupyter-notebooks/README.md) | Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive Copilot canvas. | 1 items | data-analysis, interactive-notebooks, jupyter, python |
| [kotlin-mcp-development](../plugins/kotlin-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | kotlin, mcp, model-context-protocol, kotlin-multiplatform, server-development, ktor |
| [mcp-m365-copilot](../plugins/mcp-m365-copilot/README.md) | Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot | 4 items | mcp, m365-copilot, declarative-agents, api-plugins, model-context-protocol, adaptive-cards |
| [napkin](../plugins/napkin/README.md) | Visual whiteboard collaboration for Copilot CLI. Opens an interactive whiteboard in your browser where you can draw, sketch, and add sticky notes — then share everything back with Copilot. Copilot sees your drawings and responds with analysis, suggestions, and ideas. | 1 items | whiteboard, visual, collaboration, brainstorming, non-technical, drawing, sticky-notes, accessibility, copilot-cli, ux |
+38
View File
@@ -0,0 +1,38 @@
# Jupyter Notebooks
Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive GitHub Copilot canvas.
![Jupyter Notebooks canvas showing Markdown, Python code, and execution output](assets/preview.png)
## What it does
- Opens existing `.ipynb` files from the current workspace.
- Creates code, Markdown, and raw cells with reorder, duplicate, undo, and redo controls.
- Runs Python cells through a fresh isolated process with bounded resources and captured rich output.
- Saves, renames, and duplicates notebooks as standard `.ipynb` files.
- Creates persistent checkpoints that can be restored from the canvas.
## Requirements
- Python 3 available as `python3` or `python`.
- The `@github/copilot-sdk` package installed with the extension.
## Install
Ask Copilot to install the committed extension:
```text
Install this extension: https://github.com/github/awesome-copilot/tree/main/extensions/jupyter-notebooks
```
Reload extensions, then ask Copilot to open the `jupyter-notebooks` canvas.
## Agent actions
The canvas provides actions for notebook lifecycle, workspace files, cell editing, execution, runtime selection, and checkpoints. Use `get_notebook` to inspect the current state before editing a cell.
## Security and local data
Notebook execution uses Python isolated mode in a fresh temporary directory. The runner applies CPU, file-size, process, and memory limits where the platform supports them, caps captured output, and stops execution after 30 seconds.
The local canvas server binds to `127.0.0.1`, protects requests with a per-instance capability token, validates action origins, and sends a restrictive content security policy. Notebook state and checkpoints stay in the active Copilot workspace.
Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

@@ -0,0 +1,4 @@
{
"name": "jupyter-notebooks",
"version": 1
}
@@ -0,0 +1,4 @@
// Extension: jupyter-notebooks
// The implementation is isolated so this required discovery entrypoint stays focused.
import "./notebook-canvas.mjs";
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
{
"name": "jupyter-notebooks",
"version": "1.0.0",
"type": "module",
"main": "extension.mjs",
"description": "Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive Copilot canvas.",
"keywords": [
"data-analysis",
"interactive-notebooks",
"jupyter",
"python"
],
"dependencies": {
"@github/copilot-sdk": "latest"
}
}
+17
View File
@@ -0,0 +1,17 @@
# Jupyter Notebooks Plugin
Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive GitHub Copilot canvas.
## Installation
```bash
copilot plugin install jupyter-notebooks@awesome-copilot
```
## Source
This plugin is part of [Awesome Copilot](https://github.com/github/awesome-copilot).
## License
MIT
+28
View File
@@ -0,0 +1,28 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "jupyter-notebooks",
"description": "Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive Copilot canvas.",
"version": "1.0.0",
"author": {
"name": "Pierce Boggan",
"url": "https://github.com/pierceboggan"
},
"repository": "https://github.com/github/awesome-copilot",
"license": "MIT",
"keywords": [
"data-analysis",
"interactive-notebooks",
"jupyter",
"python"
],
"extensions": {
"com.github.copilot": {
"logo": "assets/preview.png"
},
"com.github.awesome-copilot": {
"extensions": [
"./extensions/jupyter-notebooks"
]
}
}
}