NK Tools Manager

# NK Tools Manager

## Full PySide2 / PySide6 Tool Manager for Nuke 13–16+

---

## Files

| File | Purpose |

|---|---|

| `pyside_compat.py` | Auto-selects PySide2 or PySide6 based on Nuke version |

| `zip_utils.py` | Zip, unzip, install, uninstall, manifest management |

| `tool_manager_ui.py` | Full 4-tab GUI — run standalone OR from inside Nuke |

| `init.py` | Copy to `~/.nuke/` — auto-registers tools on Nuke startup |

| `menu.py` | Copy to `~/.nuke/` — adds "Tools Manager" to Nuke's menubar |

splash_screen logo inspire Cloud AI Help

First submitted: 1 July 2026

Author: Nitin Kashyap

Website: https://www.linkedin.com/in/nitin-kashyap-8541213a6?

Compatible Nuke versions: 15.0 or later

Compatibility: Linux, Mac, Windows

  1. Launch tool splash_screen logo inspire Cloud AI Help

  2. # NK Tools Manager

    ## Full PySide2 / PySide6 Tool Manager for Nuke 13–16+

    ---

    ## Files

    | File | Purpose |

    |---|---|

    | `pyside_compat.py` | Auto-selects PySide2 or PySide6 based on Nuke version |

    | `zip_utils.py` | Zip, unzip, install, uninstall, manifest management |

    | `tool_manager_ui.py` | Full 4-tab GUI — run standalone OR from inside Nuke |

    | `init.py` | Copy to `~/.nuke/` — auto-registers tools on Nuke startup |

    | `menu.py` | Copy to `~/.nuke/` — adds "Tools Manager" to Nuke's menubar |

    ---

  3. ## Nuke Version → PySide

    | Nuke | Python | PySide2 PySide6 |

    |---|---|---|

    | 13.x | 3.7 | PySide2 |

    | 14.x | 3.9 | PySide2 |

    | 15.x | 3.10 | PySide6 |

    | 16.x | 3.11 | PySide6 |

    ---

  4. ## Installation

    ### Step 1 — Copy the tools folder

    ```

    ~/.nuke/

    ├── init.py ← copy from this package (or merge)

    ├── menu.py ← copy from this package (or merge)

    └── tools/

    ├── pyside_compat.py

    ├── zip_utils.py

    └── tool_manager_ui.py

    ```

  5. ### Step 2 — Install PySide (if not already present)

    ```bash

    # For Nuke 13/15

    pip install PySide2

    # For Nuke 16/17

    pip install PySide6

    ```

    Or using Nuke's bundled Python:

    ```bash

    # Find Nuke's Python path, e.g.:

    /Applications/Nuke15.0v1/Nuke15.0v1.app/Contents/MacOS/python -m pip install PySide2

    ```

  6. ### Step 3 — Launch

    **From Nuke's Script Editor:**

    ```python

    import sys

    sys.path.insert(0, os.path.expanduser('~/.nuke/tools'))

    import tool_manager_ui

    tool_manager_ui.show()

  7. **From Nuke's menubar** (after `menu.py` is in `~/.nuke/`):

    ```

    Nuke → NK Tools Manager → Open Tools Manager

    ```

    **Standalone (outside Nuke, for testing):**

    ```bash

    cd ~/.nuke/NK_tools_manager

    python tool_manager_ui.py

    ```

  8. ---

    ## Tabs

    ### 📦 Install

    - Browse to a `.zip` file

    - Preview its contents before installing

    - Choose destination (default: `~/.nuke/tools/<name>/`)

    - Optionally auto-register the path with Nuke

    ### 🗜 Zip / Export

    - Select a tools folder

    - Filter by extension (`.py`, `.nk`, `.gizmo`, etc.)

    - Quick presets: Python only, Nuke+Python, All common

    - Creates a distributable `.zip`

    ### 🗂 Installed Tools

    - Lists all tools recorded in `manifest.json`

    - Expand rows to see individual files

    - Open folder, register with Nuke, or uninstall

    ### 🎬 Nuke Utils

    - **Node Finder** — search by name/class pattern and select

    - **Batch Ops** — select all, deselect, disable/enable, delete, zoom to fit, copy

    - **Knob Setter** — set any knob value across selected nodes

    - **Script Info** — FPS, frame range, node count, top node classes

    - **Node Creator** — create any node class by name

    ---

  9. ## zip_utils.py Public API

    ```python

    from zip_utils import (

    zip_folder, # Pack a folder → .zip

    list_zip_contents, # Inspect a .zip without extracting

    install_from_zip, # Extract + record in manifest

    uninstall_tool, # Remove tool dir + manifest entry

    get_installed_tools, # Returns full manifest dict

    register_tool_path, # sys.path + nuke.pluginAddPath()

    register_all_installed, # Register everything in manifest

    )

    # Example: zip and install in one go

    zip_path = zip_folder('/my/tool_folder')

    install_dir = install_from_zip(zip_path)

    register_tool_path(install_dir)

    ```

  10. ## Manifest

    After the first install, a `manifest.json` is created at `~/.nuke/tools/manifest.json`:

    ```json

    {

    "my_tool": {

    "install_dir": "/Users/you/.nuke/tools/my_tool",

    "zip_source": "/Downloads/my_tool.zip",

    "installed_at": "2025-06-01T12:34:56",

    "file_count": 12,

    "files": ["my_tool/__init__.py", "my_tool/core.py", ...]

    }

    }

    ```

or register to download or rate.

Comments

or register to join the conversation.

Download Verification