VSCode Notebook API 是开放可扩展的通用笔记本框架,不限于 Jupyter 或 Python;支持多语言内核、自定义渲染器及深度编辑器集成。

VSCode 的 Notebooks API 确实不只是为 Jupyter 服务的——它是一套开放、可扩展的接口,允许任何语言或工具以“笔记本(Notebook)”形式在 VSCode 中运行、渲染和交互。Jupyter 是最广为人知的实现,但不是唯一。
支持多内核,不止 Python
VSCode Notebook API 本身不绑定语言,而是通过 notebook provider 和 kernel provider 分离界面与执行逻辑。只要实现对应协议,就能接入 R、SQL、Julia、PowerShell,甚至自定义 DSL(如配置驱动的测试用例笔记本)。
- R 用户可用
IRKernel+R Notebook扩展,直接运行 .Rmd 或原生 .ipynb - SQL 工程师可通过
mssql-notebook在笔记本中连接 SQL Server,执行查询并可视化结果表 -
微软官方已提供
vscode-notebook-samples仓库,含纯文本、Markdown 渲染、状态机模拟等轻量 notebook 示例
UI 可定制,不只是代码块+输出区
API 提供 notebookRenderer 机制,让扩展能注册自己的渲染器,控制单元格(cell)如何显示。比如:
- 用 Mermaid 渲染器把 Markdown 单元格自动转为流程图
- 用 Plotly 渲染器支持交互式图表缩放/导出,无需刷新整个 notebook
- 某文档工具将每个 cell 当作“可执行文档段落”,点击运行即生成 API 请求并嵌入响应快照
与编辑器深度集成,不只是独立视图
Notebook 不是孤立窗口:它共享 VSCode 的语言服务、调试器、Git 差异对比、设置同步等能力。
- Python notebook 中的代码单元可断点调试,变量停靠、调用栈、表达式求值全部可用
- Git 能识别 notebook 中代码、Markdown、输出的变更,diff 视图会高亮文本差异,忽略二进制输出字段(如图像 base64)
- 通过
workspace.notebookDocumentsAPI,其他扩展可在 notebook 打开时注入上下文菜单项或状态栏信息
基本上就这些。Notebook API 的设计哲学是“内容即代码,交互即编辑”,Jupyter 是它的重要落地,但远非边界。










