Skip to content

Feature Request: Jupyter Notebook Read/Edit Support #2816

@chinesepowered

Description

@chinesepowered

What would you like to be added?

Feature Request: Jupyter Notebook Read/Edit Support

Problem

Qwen Code has no notebook-specific tooling. When users work with .ipynb files, they must treat them as raw JSON, which is error-prone and unhelpful. The only reference to ipynb in the codebase is in the Claude extension converter. Data science and ML workflows rely heavily on Jupyter notebooks, and lacking native support means Qwen Code cannot assist with a major segment of developer workflows.

Proposed Solution

  1. Enhance ReadFile to detect .ipynb files and render notebook cells with their outputs in a structured, human-readable format (cell type, source, outputs) instead of raw JSON.

  2. Add a NotebookEditTool that can:

    • Replace the source of an existing cell (by cell ID or index)
    • Insert new cells at a specific position
    • Delete cells
    • Automatically clear outputs and reset execution counts on code cell edits
    • Support both nbformat 4.5+ cell IDs and numeric cell-N indexing

Scope

  • New utility module: packages/core/src/utils/notebookUtils.ts
  • New tool: packages/core/src/tools/notebook-edit.ts
  • Changes to packages/core/src/utils/fileUtils.ts (notebook detection + rendering)
  • Tool registration in packages/core/src/config/config.ts
  • New tool name + error types in tool-names.ts and tool-error.ts

Impact

High for data science and ML users. Medium overall effort.

Why is this needed?

Qwen Code has no notebook-specific tooling. When users work with .ipynb files, they must treat them as raw JSON, which is error-prone and unhelpful. The only reference to ipynb in the codebase is in the Claude extension converter. Data science and ML workflows rely heavily on Jupyter notebooks, and lacking native support means Qwen Code cannot assist with a major segment of developer workflows.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions