The desktop app is NodeTool packaged for Windows, macOS, and Linux. It opens the same editor as the web version in its own window and runs the NodeTool server on your machine, so your workflows, assets, and database stay local.
This page is the hub for desktop-specific questions. Installing and connecting a provider is covered in Installation. The windows, tray, and menus are cataloged in Desktop App Views.
Platforms and downloads
Download the installer from nodetool.ai. The release build produces:
| OS | Package | Architectures |
|---|---|---|
| macOS | .dmg (and a .zip) |
Apple Silicon (arm64) and Intel (x64) |
| Windows | NSIS installer (.exe) |
x64 |
| Linux | AppImage, plus a Flatpak build | See Installation |
Step-by-step install instructions for each OS are in Installation.
First launch
NodeTool shows a boot splash while the local server starts. The first start can take longer than later ones, and the splash shows the current step. If the server does not start, the splash offers Retry start, Open logs, and Reinstall environment.
On macOS and Linux, NodeTool shows a one-time dialog explaining that it will use the system keychain to protect your stored API keys. Windows does not show it.
What is optional:
- A Python environment. Only nodes written in Python need it, such as HuggingFace and MLX nodes. NodeTool sets it up on demand, from Tools → Package Manager or when you run a workflow that needs it. See What downloads later.
- Local model runners and models. Ollama, llama.cpp, and model files download only when you install them. A cloud provider needs none of this.
- A provider. You do need one model source to run agents or generate media. See Connect an AI provider.
The local server
The app starts its own backend on 127.0.0.1, so it is reachable only from your machine. It tries port 7777 first. If that port is taken, it uses the next free one, up to 50 ports higher. The tray menu shows the port in use (“NodeTool: Running on
If the app cannot reach its server on Windows, approve the firewall prompt. See If installing goes wrong.
Where your data lives
Locations come from the app’s code. Replace ~ with your home folder.
| What | macOS and Linux | Windows |
|---|---|---|
| Database, assets, and vector store | ~/.local/share/nodetool/ (or $XDG_DATA_HOME/nodetool/) |
%APPDATA%\nodetool\ |
App settings (settings.yaml) |
~/.config/nodetool/ |
%APPDATA%\nodetool\ |
| Log file | ~/.local/share/nodetool/logs/nodetool.log |
%LOCALAPPDATA%\nodetool\logs\nodetool.log |
| Vaults | ~/.local/share/nodetool/vaults/<id>/ |
%LOCALAPPDATA%\nodetool\vaults\<id>\ |
| Python environment | macOS ~/nodetool_env, Linux ~/.local/share/nodetool/conda_env |
%ALLUSERSPROFILE%\nodetool\conda_env |
The database file is nodetool.sqlite3, next to assets/ and vectorstore.db. Provider keys are stored encrypted in that database. See Connect an AI provider for where the encryption key lives. Other settings and environment variables are listed in Configuration.
Desktop-only settings
Open Settings and look under General → Workspace. Three sections appear only in the desktop app.
Updates
- Automatic Updates is off by default. Turn it on to have the app check for and download updates in the background. It only runs in installed (packaged) builds.
- Update Channel is Stable (full releases) or Nightly (prerelease builds). Nightly builds default to the Nightly channel.
- On Close Behavior sets what closing the main window does: Ask Every Time, Quit Application, or Keep Running in Background. The same choice is in the tray menu.
When an update is ready, a notice appears at the top right of the main window. See Update Notification.
Vaults
A vault is a separate data store with its own database, assets, and RAG collections. Use vaults to keep different sets of workflows and data apart. In Settings → Vaults you can create a vault, Switch to it, Rename it, or Delete it. The built-in default vault cannot be renamed or deleted, and you cannot delete the active vault. Switching restarts the backend and reloads the window. You can also switch from the Vaults menu in the menu bar. Vaults use SQLite, so they are skipped when an external DATABASE_URL is set.
Package Manager
Open Tools → Package Manager to install system runtimes (such as Python and the model runners) and to enable, disable, install, or update node packs. See Desktop App Views for the screen and Node Packs for where packs come from.
Tray and menus
NodeTool keeps a tray icon while it runs. From it you can start or stop the service, show the window, open chat, mini apps, the Log Viewer, and Settings, and quit. The full item lists for the tray and the menu bar are in Desktop App Views.
Logs
Use Tools → Log Viewer to read the server log in the app, or Open Log File in the tray menu to open the raw file at the path in the table above. Help → System Information lists the app version, OS details, and the data, conda, and log paths, with a Copy to Clipboard button. Include it when you ask for help. For common problems see Troubleshooting.
Uninstalling
Uninstalling removes the application files only. Your data, settings, logs, and Python environment stay on disk, and the Windows uninstaller keeps them on purpose. Steps for each OS are in Uninstalling. To remove everything, also delete the folders in Where your data lives.
Related
- Installation
- Desktop App Views
- Self-Hosted Deployment for running the server without the desktop app
- Configuration