The NodeTool desktop app is built on Electron. It reuses the web app for all workflow editing but adds a handful of native surfaces: a boot splash, package manager, log viewer, tray menu, pinned windows, and a native menu bar.

This page catalogs every desktop-only view with screenshots. Everything inside the main window is covered by User Interface and Workflow Editor.


Boot Message (Splash)

A splash appears in the main window while the backend and web app come online.

It shows the NodeTool logo and the latest boot message from the backend, for example “Setting up Python runtime (one-time, ~1-2 min)…”, “Installing Nodetool Python packages…”, or “Updating 2 package(s)…”. During setup it also shows a progress bar and a carousel of supported providers with a Get API Key link for each. A Show Log toggle expands the live startup log, and a folder button opens the raw log file.

If the backend fails to start, the splash shows “Backend failed to start” with the error and three buttons: Retry start, Open logs, and Reinstall environment.

There is no separate install wizard. Python is an optional runtime. You install it from the Runtimes panel of the Package Manager, and it is also installed automatically the first time you install a Python package there. Node packs and runtimes are managed from the Package Manager.


Package Manager

The Package Manager is a page inside the main window, not a native window. Open it from Tools → Package Manager in the menu bar or from the logo menu (Package Manager, which shows only when the app is served from localhost). It opens as a workspace tab on the /packages route.

The left rail switches between two tabs:

  • Software: system runtimes, grouped as All runtimes, Languages, Media & docs, and AI runtimes.
  • Node Packs: grouped as Included, Registry, and Third-party.

Each list is searchable (press /) and has status filters such as Installed, Not installed, Updates, Enabled, and Disabled. The page remembers the last tab and category.

Package Manager on the Node Packs tab

When a registry pack has a newer version, a notice reading “New Nodetool packs available” appears at the bottom right with the installed and latest versions. The notice points to the Package Manager for updating.

See Node Packs for where packs come from and how to publish your own.


Log Viewer

A separate window (1200×800) that shows the backend log. Open it from Tools → Log Viewer or the tray.

Each row is color-coded as info, warning, or error. The toolbar has a Search logs… box, a level filter (All, Info, Warning, Error), an auto-scroll toggle, Copy for the filtered rows, and Clear. Click a row to select it, Shift+click for a range, Ctrl/⌘+click to toggle. Selected rows are copied to the clipboard.


Update Notification

Auto-updates are opt-in and run only in packaged builds. Turn them on in Settings. When a newer release exists, the app downloads it in the background and shows a card at the top right of the main window: “Version X is available. Downloading in the background…” with a View Release Notes link. Once the download finishes the card reads “Version X has been downloaded and will be installed on restart.” with a Restart to Update button. A system notification also appears for both events.

The update channel (stable or nightly) comes from the updateChannel setting.


Other Windows

Workflow Execution Window

A frameless, transparent, always-on-top window that loads the workflow as an app (apps/index.html?workflow_id=...). It opens when you run a workflow from a global workflow shortcut and the workflow’s run mode is not headless. Headless workflows run without a window and write the last output to the clipboard.

Mini-App Window

A standard window for one workflow’s mini app, opened from Mini Apps in the tray. It is 80% of the primary display up to 1200×900, with a minimum of 800×600, and the title is “ - NodeTool". Closing it doesn't quit NodeTool.

A mini app in its own window

Chat Window

Standalone chat opened from the tray or Tools → Chat. It uses the /standalone-chat route with the same size rules as the mini-app window. Only one chat window exists at a time. Opening it again focuses the existing one. Same content as the Chats panel.

Performance Monitor

A small window (700×420) opened from Tools → Performance Monitor. It shows a table of process metrics.


System Tray

The tray icon stays running while NodeTool is active. Click or right-click it to open the menu.

From the top, the menu has:

Item What it does
Status line “NodeTool: Running on " or "NodeTool: Stopped" (not clickable)
Start Service / Stop Service Start or stop the backend. Each is enabled only when it applies
Show NodeTool Bring up the main window, or recreate it if it was closed
Chat Open the standalone chat window (needs a running backend)
Mini Apps Submenu listing your workflows by name. Disabled when the backend is stopped or there are no workflows
Log Viewer Open the Log Viewer window
Settings Open Settings in the main window
Open Log File Open the raw log file in the OS file handler
On Close Behavior Radio list: Ask Every Time, Quit Application, Keep Running in Background
Quit NodeTool Stop the backend and exit

On Windows, double-clicking the icon also shows the main window.

On Close Behavior stores the windowCloseAction setting (ask, quit, or background). With ask, closing the last window shows a dialog with Quit and Keep Running in Background and a Remember my choice checkbox.


Native Menu Bar

The main window has a native menu bar built in menu.ts.

On macOS the app menu (NodeTool) holds the standard About, Services, Hide, Hide Others, Unhide, and Quit items. Quit uses the platform default and has no explicit accelerator.

File

Item Shortcut Action
Save Ctrl/⌘ + S Save the active workflow
Settings   Open Settings in the main window
New Workflow Ctrl/⌘ + T Open a blank workflow in a new tab
Close Tab Ctrl/⌘ + W Close the active editor tab

Edit

Item Shortcut
Undo, Redo, Cut, Copy, Paste, Select All Platform defaults
Duplicate Ctrl/⌘ + D
Duplicate Vertical Ctrl/⌘ + Shift + D
Group Ctrl/⌘ + G
Align none
Align with Spacing Ctrl/⌘ + Shift + A

View

Item Shortcut Action
Reload Platform default Reload the window
Toggle Developer Tools Platform default Open or close DevTools
Fit View Ctrl/⌘ + 0 Fit the graph to the viewport
Reset Browser Zoom, Browser Zoom In, Browser Zoom Out Platform defaults Zoom the whole page, not the canvas
Snap to Grid   Checkbox that mirrors the editor’s snap-to-grid setting
Toggle Full Screen Platform default Enter or exit fullscreen

DevTools only work in unpackaged (dev) builds, where Ctrl/⌘ + Shift + I also toggles them.

Tools

Item Action
Chat Open the standalone chat window
Log Viewer Open the Log Viewer window
Performance Monitor Open the performance monitor window
Model Manager Open the Model Manager tab
Package Manager Open the Package Manager tab
Help Open the Help dialog
Downloads Open the model downloads dialog

Vaults

A radio list of your vaults with the active one checked. Picking another vault restarts the backend against that vault’s database and reloads the main window. Manage Vaults… opens Settings.

Window / Help

Window offers the platform-standard Minimize. Help has Learn More (opens https://nodetool.ai), Keyboard Shortcuts (Ctrl/⌘ + /), and System Information. The System Information dialog lists app, Electron, Chrome, and Node.js versions, OS details, install, conda, data, and log paths, and Python and CUDA status, with a Copy to Clipboard button.

Opening a workflow execution window removes the application menu until the menu is rebuilt.


Where the Electron Code Lives

For contributors:

  • electron/src/main.ts — entry point, window lifecycle.
  • electron/src/window.ts — main window.
  • electron/src/workflowWindow.ts — workflow execution, mini-app, and chat windows.
  • electron/src/tray.ts — tray icon and menu.
  • electron/src/menu.ts — native menu bar.
  • electron/src/components/ — React components for the splash and update notices.
  • electron/pages/ — the Log Viewer page.
  • electron/src/updater.ts — auto-update flow.
  • electron/src/perfMonitor.ts — performance monitor window.

See the Electron developer guide for build and debugging tips.