REFERENCE · COMMAND LINE · CHECKED ON NPI 3.0.2.3
NVIDIA Profile Inspector command-line reference
nvidiaProfileInspector.exe with a .nip path imports the file and exits; add -silentImport to hide the messages, which then replaces matching profiles unless you also add -mergeImport. -exportCustomized writes a backup of everything you changed next to the exe. NPI always asks for administrator rights first, and it prints nothing to a console.
All switches at a glance
NPI 3.x understands twelve kinds of argument. The README lists seven. The other five are marked below. The last column says what we have seen ourselves: “works” means we ran it in our lab, in demo mode (-mock) or with no driver, as the lab has no NVIDIA GPU. “untested” means the row comes from NPI’s code only.
CODE · NPI 2994194
| Switch | What it does | Opens the window? | In the README? | Since | Lab status |
|---|---|---|---|---|---|
<file>.nip | Imports one or more profile files, then exits. Asks Merge or Replace only if a profile in the file already exists. | No | Yes | 2.x; 3.x from 3.0.1.10 | works |
-silentImport | With a .nip: no success or warning box, and the mode is Replace unless you add another mode switch. | No | Yes | 2.x | works |
-silent | Alias of -silentImport. | No | Yes | 2.x | untested |
-mergeImport | Forces Merge with no prompt. Wins over -replaceImport. | No | No | 3.0.1.14 | works |
-replaceImport | Forces Replace with no prompt. | No | No | 3.0.1.14 | untested |
-exportCustomized | Writes CustomProfiles_<date and time>.nip next to the exe, then exits. | No | Yes | 3.0.1.11 | works |
-createCSN | Writes CustomSettingNames.xml to the current folder, then exits. Needs no driver. | No | Yes | 2.x | works |
-showOnlyCSN | Starts the window with only the "Common (CSN)" setting source on. | Yes | Yes | 2.x | untested |
-disableScan | Skips the background scan of all profiles at start. | Yes | Yes | 2.x | untested |
-mock | Developer mode: no driver needed, fake in-memory database. | Yes | No | 3.0.1.6 | works |
-useSoftwareRendering | Draws the window with software rendering. | Yes | No | 3.0.2.2 | untested |
-disableTransparency | Turns off popup transparency and animation in the drop-down lists. | Yes | No | 3.0.2.2 | untested |
2.x knew only five of these: a single .nip file, -silentImport, -silent, -createCSN, -showOnlyCSN and -disableScan. It accepted just the first .nip it was given.
CODE · NPI 2.4.0.34
How NPI reads the command line
- Whole argument,
-nameform only. A switch must equal the whole argument. The match ignores case./silentImport,--silentImportand-silentImport=1are not switches. - Unknown arguments vanish. A typo produces no error and no usage text. If nothing seems to happen, check the spelling first.
- Only existing
.nippaths count. A path that does not exist, or an existing file with another extension, is ignored without a warning. Quote paths that contain spaces. - No console output. NPI is a Windows program without a console. Everything it says is a message box, a message inside its window, or nothing. A script cannot read its output.
- Administrator rights first. The manifest requests administrator rights, so Windows shows a User Account Control prompt before any switch runs. LAB · CLI · F03
- One job per start. If several are given, only the first of these runs:
-createCSN, then import, then-exportCustomized.
The same order as a list
- -createCSN is present: write CustomSettingNames.xml to the working folder and exit. Nothing else runs.
- Otherwise, one or more existing .nip files: import them and exit.
- Otherwise, -exportCustomized: write the backup next to the exe and exit.
- Otherwise: open the main window.
Import from the command line
nvidiaProfileInspector.exe "C:\Backups\all_profiles.nip"
NPI imports the file, shows “Profile(s) imported successfully!” and exits without opening the main window. With -silentImport it shows nothing at all and exits with code 0. With -mergeImport it shows the same success message.
LAB · CLI · F21
Which mode runs. NPI picks the first rule that applies: CODE · NPI 2994194
-mergeImportgives Merge. It wins if-replaceImportis also present.-replaceImportgives Replace.-silentImportor-silentalone gives Replace, as in 2.x.- Otherwise NPI shows “Import Profiles” with two cards, “Replace” and “Merge”, but only if at least one profile in the files already exists. If every profile in the files is new, it uses Replace without asking. Cancelling stops the import.
Replace resets each profile named in the file and then writes the file’s values, so a setting you changed that is not in the file is lost. Merge keeps everything and overwrites only the values in the file. The .nip page explains the two with an example.
Several files. Give more than one path and NPI reads them all first, merges profiles of the same name in memory and writes the result once. If two files set the same setting, the last file wins. CODE · NPI 2994194
Errors still show a box. In silent mode the success and warning boxes are hidden, but an exception box (“Import Error”) is shown anyway. On a PC where nobody can click OK, a script waiting for NPI to exit will wait for that box.
Importing into a running NPI
If NPI is already open, a second start does not open a second window. It hands the file to the open one and exits with code 0, and the open window imports it and updates its profile list.
LAB · CLI · F22 Without -silentImport the open window comes to the front. The mode switches work here too: NPI passes the mode on to the running window.
Export from the command line
nvidiaProfileInspector.exe -exportCustomized
NPI checks for the driver, writes CustomProfiles_<yyyy-MM-dd_HH-mm-ss>.nip and exits, with no message on success. In demo mode the file appeared next to the exe and the exit code was 0.
LAB · CLI · F24 Without a driver it shows the usual driver error and writes no file.
LAB · CLI · F10
- Where. In the folder that holds
nvidiaProfileInspector.exe, not the current folder. NPI’s own commit message says the opposite, the code does what is written here. CODE · NPI 2994194 - What it includes. Every profile you created, and every NVIDIA profile in which you changed at least one value. Only your values are written, not the ones NVIDIA ships. CODE · NPI 2994194
- Encoding. The file says
utf-16in its XML header but is UTF-8 with a byte order mark. NIP Studio and NPI read both. LAB · CLI · F24
Other switches
-createCSN
Writes the CustomSettingNames.xml that is built into the exe to the current folder, then exits with code 0, with no window and no driver check. The number of named settings depends on the version: 84 in 2.4.0.4, 123 in 2.4.0.29, 117 in 3.0.2.1 and 119 in 3.0.2.3.
LAB · CLI · F11 If you leave that file next to the exe, NPI loads it instead of the built-in copy and shows “CSN file override”. Remove or rename the file to go back.
CODE · NPI 2994194 The settings it names are explored on the Settings Explorer.
-showOnlyCSN
Starts the window with only the “Common (CSN)” source switched on. The README calls it “only customized settings”, which is not what the code does: it does not filter to values you changed. That is a separate toggle in the window, “Show active or modified settings only”. Because new installs already default to Common only, the switch mostly matters if you once turned other sources on. Not run by us.
-disableScan
Starts without the background scan that finds your modified profiles and collects the predefined values that feed the “Predefined Scan” source. Export of customized profiles still works without it. We have not timed the difference. CODE · NPI 2994194
-useSoftwareRendering and -disableTransparency
Two workarounds for windows or drop-down lists that do not draw correctly on some systems, added in 3.0.2.2 after issue 488. The first forces software rendering for the whole window, the second turns off popup transparency and animation. Both apply only when the window opens, and we could not test either without the affected setup. The troubleshooting page covers display problems.
-mock
A developer and test switch. It skips the driver check, never loads NVIDIA’s library, and replaces the driver with an in-memory fake. The title reads “NVIDIA PROFILE INSPECTOR - MOCK!”. The status bar reads “Driver unavailable”, and the database holds one profile, “Base Profile”. LAB · CLI · F12
It is not a demo of your own settings and nothing is saved to a driver. Profiles you create, import or change exist only until you close the window. It is how our lab ran the import and export tests above, which is why those results carry the note that they are demo-mode results.
Scripts
Three PowerShell examples and one scheduled-task example. All of them use the real switch spelling. We have not run any of them on a PC with an NVIDIA GPU, and our lab has no PowerShell run recorded for them, so read each one, change the paths and test it by hand once. Run them in an elevated PowerShell, because NPI needs administrator rights.
Back up all customized profiles to a dated folder
PS> $p = Start-Process 'C:\Tools\NVIDIA Profile Inspector\nvidiaProfileInspector.exe' -ArgumentList '-exportCustomized' -Wait -PassThru
PS> Get-ChildItem 'C:\Tools\NVIDIA Profile Inspector' -Filter 'CustomProfiles_*.nip' | Sort-Object LastWriteTime -Descending | Select-Object -First 1
The download is the full script. NPI gives no output, so the script looks for the new CustomProfiles_*.nip file, moves it into a folder named after today’s date, and exits with code 2 if no file appeared.
Re-apply a backup after a driver update
The script on the driver updates page imports your .nip with Merge. Download reapply-nip-after-driver-update.ps1. To run it at every logon, register a task that runs it with the highest privileges:
PS> $action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-NoProfile -ExecutionPolicy Bypass -File "C:\Tools\NVIDIA Profile Inspector\reapply-nip-after-driver-update.ps1"'
PS> $trigger = New-ScheduledTaskTrigger -AtLogOn
PS> $principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Highest
PS> Register-ScheduledTask -TaskName 'NPI re-apply profiles' -Action $action -Trigger $trigger -Principal $principal
Use -mergeImport in a scheduled task, never -replaceImport or a bare -silentImport: the backup would overwrite every change you made since it was exported.
Import a standard profile on many PCs
PS> Start-Process 'C:\Tools\NVIDIA Profile Inspector\nvidiaProfileInspector.exe' -ArgumentList '-silentImport', '"\\fileserver\lan\npi\standard-profiles.nip"' -Wait
This uses Replace, which suits a standard image: every PC ends up with the same values for the profiles in the file. It logs the exit code to C:\ProgramData\npi-import.log. Check the share path is readable by an administrator, and try it on one PC before the rest.
Exit codes and errors
NPI does not document exit codes. What we saw in the lab, in demo mode: LAB · CLI · F11, F21, F22, F24
| Call | Exit code | What was shown |
|---|---|---|
| -silentImport file.nip | 0 | No window and no message. |
| file.nip (no switches) | Not recorded | "Profile(s) imported successfully!", then the process closed. |
| -exportCustomized | 0 | No message; CustomProfiles_<date and time>.nip appeared next to the exe. |
| -createCSN | 0 | No window; CustomSettingNames.xml in the current folder. |
| file.nip while NPI is open | 0 | The open window imported the file. |
Errors are message boxes, not exit codes. With no NVIDIA driver, every driver-touching call, including -exportCustomized and any import, shows “No compatible NVIDIA Driver was detected on your system. Your NVIDIA GPU might be disabled.” in 3.x, or the “DrsServiceLocator” exception in 2.x, and writes nothing.
LAB · CLI · F07, F08, F10 The exit code in that case was not recorded in our lab, and no real-driver exit codes exist here, so do not treat code 0 as proof that a profile changed. Check the result: look for the exported file, or open NPI and look at “View Modified Profiles”. The full message list is on the errors page.
untested Exit codes on a real driver.
Related switches that are not arguments
A few behaviours live in files instead of switches. A file named DisableUpdateCheck.txt next to the exe skips the update check. A settings.xml in the current folder is used instead of the one in %LOCALAPPDATA%\nvidiaProfileInspector, which makes NPI portable. Crash logs go to %LOCALAPPDATA%\nvidiaProfileInspector\Logs.
CODE · NPI 2994194
Questions people ask
Can NVIDIA Profile Inspector import a .nip silently?
Yes. Run nvidiaProfileInspector.exe with the path of the .nip file and -silentImport. No success or warning box is shown and the process exits. With nothing else added it uses Replace, so the profiles in the file are reset before they are written. Add -mergeImport to keep what is already there.
Where does -exportCustomized save the file?
Next to nvidiaProfileInspector.exe, not in the folder you ran it from. The name is CustomProfiles_ followed by the date and time. Our lab run in demo mode wrote it there and exited with code 0. If the exe sits in a folder you cannot write to, the export fails.
Does -silentImport merge or replace?
It replaces. NPI 3.x keeps the 2.x behaviour: -silentImport or -silent alone means Replace. -mergeImport forces Merge and wins if you give both -mergeImport and -replaceImport. Without any of them NPI asks, but only when a profile in the file already exists.
What does -mock do?
It starts NPI without an NVIDIA driver and swaps the driver for a fake in memory. The title reads NVIDIA PROFILE INSPECTOR - MOCK! and the database holds one profile, Base Profile. It is a developer and test switch, nothing is saved to a real driver, and it is not a demo of your own settings.
Can I run NPI without admin rights?
No. All four versions we checked carry a manifest that requests administrator rights, so Windows shows a User Account Control prompt before any switch runs, including -createCSN, which never touches the driver.
Sources
- NPI startup options (App.xaml.cs github.com · accessed 8 Nov 2026 · upstream
- NPI README github.com · accessed 8 Nov 2026 · upstream
- NPI issue 488 github.com · accessed 8 Nov 2026 · upstream