{
  "slug": "ipynb-to-script",
  "name": "gizza-ai/ipynb-to-script",
  "version": "0.1.0",
  "title": "ipynb to Script Converter — Jupyter Notebook to Python — gizza.ai",
  "description": "Extract code cells from a Jupyter .ipynb into a clean Python script or Markdown, dropping outputs and execution counts. Runs locally in your browser.",
  "tags": [
    "ipynb to py",
    "ipynb to python",
    "jupyter notebook to python",
    "notebook to script",
    "nbconvert",
    "ipynb to script",
    "extract code cells",
    "jupyter to py"
  ],
  "category": "utilities",
  "urls": {
    "page": "https://gizza.ai/tools/ipynb-to-script/",
    "markdown": "https://gizza.ai/tools/ipynb-to-script/index.md",
    "descriptor": "https://gizza.ai/tools/ipynb-to-script/tool.json",
    "deep_link_example": "https://gizza.ai/tools/ipynb-to-script/?notebook=%7B%0A%20%20%22cells%22%3A%20%5B%0A%20%20%20%20%7B%22cell_type%22%3A%20%22markdown%22%2C%20%22source%22%3A%20%5B%22%23%20Demo%22%5D%7D%2C%0A%20%20%20%20%7B%22cell_type%22%3A%20%22code%22%2C%20%22execution_count%22%3A%201%2C%20%22outputs%22%3A%20%5B%5D%2C%20%22source%22%3A%20%5B%22print%28%27hi%27%29%22%5D%7D%0A%20%20%5D%2C%0A%20%20%22metadata%22%3A%20%7B%22language_info%22%3A%20%7B%22name%22%3A%20%22python%22%7D%7D%2C%0A%20%20%22nbformat%22%3A%204%2C%20%22nbformat_minor%22%3A%205%0A%7D&output=script&include_markdown=true&include_outputs=true&cell_markers=true"
  },
  "cli": "gizza tool ipynb-to-script \"{\n  \\\"cells\\\": [\n    {\\\"cell_type\\\": \\\"markdown\\\", \\\"source\\\": [\\\"# Demo\\\"]},\n    {\\\"cell_type\\\": \\\"code\\\", \\\"execution_count\\\": 1, \\\"outputs\\\": [], \\\"source\\\": [\\\"print('hi')\\\"]}\n  ],\n  \\\"metadata\\\": {\\\"language_info\\\": {\\\"name\\\": \\\"python\\\"}},\n  \\\"nbformat\\\": 4, \\\"nbformat_minor\\\": 5\n}\"",
  "tool": {
    "description": "Extract the code cells of a Jupyter `.ipynb` notebook (paste its JSON) into a clean Python script, dropping outputs and execution counts. Cell order is preserved. output='script' (default) gives a .py file with code verbatim and markdown cells as # comments; output='markdown' gives a .md file with markdown verbatim and code in fenced blocks. include_markdown=false drops markdown/raw cells (code only). include_outputs=true appends stored text outputs as comments. cell_markers=true adds `# %%` VS Code/Jupytext markers before each cell. Returns the converted text. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "cell_markers": {
          "default": false,
          "description": "Emit `# %%` markers before each cell (VS Code / Jupytext 'percent' format) in script mode. Ignored in markdown mode. Default false.",
          "type": "boolean"
        },
        "include_markdown": {
          "default": true,
          "description": "Keep markdown/raw cells (as # comments in script mode, verbatim in markdown mode). When false they are dropped, leaving code only. Default true.",
          "type": "boolean"
        },
        "include_outputs": {
          "default": false,
          "description": "Append each code cell's stored text outputs (as # comments in script mode, fenced blocks in markdown mode). Default false — outputs and execution counts are dropped.",
          "type": "boolean"
        },
        "notebook": {
          "description": "The full contents of a Jupyter `.ipynb` file (its JSON). Paste the file's text.",
          "type": "string"
        },
        "output": {
          "default": "script",
          "description": "Output format: 'script' for a Python .py file (code verbatim, markdown as # comments), or 'markdown' for a .md document (markdown verbatim, code in fenced blocks). Default 'script'.",
          "enum": [
            "script",
            "markdown"
          ],
          "type": "string"
        }
      },
      "required": [
        "notebook"
      ],
      "type": "object"
    }
  }
}