Get started
Install and first run
Every release ships the same two signed programs in two forms: a portable ZIP you can run from any folder, and an MSI for a normal installed app.
What you need#
- Windows x64 with the Print Spooler running and the PrintManagement PowerShell cmdlets available (standard on Windows 10 and 11).
- A supported printer. Network printers on standard RAW TCP 9100 ports, by IP or hostname; WSD printers SpoolSmith can verify; IPP printers through Windows' automatic setup; and USB printers. See what's supported.
- Administrator rights to change Windows printers or export driver files. Looking around doesn't need them.
Choose ZIP or MSI#
| Portable ZIP | MSI | |
|---|---|---|
| Goes to | Any folder you choose | C:\Program Files\SpoolSmith\, for every user |
| Admin to install | No | Yes |
| Start Menu shortcut | No | Yes |
| Uninstall | Delete the folder | Apps & Features, like any program |
| Update | Replace the files | Install the newer MSI over it |
Both contain byte-identical, signed executables, and neither adds a service, scheduled task, auto-updater or PATH entry. Download either from the latest release.
Download for WindowsSilent MSI install#
msiexec /i SpoolSmith-vX.Y.Z-x64.msi /qn /norestart /l*v "$env:TEMP\spoolsmith-install.log"
msiexec /x SpoolSmith-vX.Y.Z-x64.msi /qn /norestartReplace X.Y.Z with the version you downloaded. A newer MSI upgrades an older one in place; an older one refuses to install over a newer one (exit code 1603). For deployment tools, detect the product name SpoolSmith and its DisplayVersion under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Don't pin the ProductCode: it changes every version. The installer README has the details.
Check what you downloaded#
SpoolSmith runs elevated and writes to the driver store, so confirm it's the real thing first. Windows can do this with nothing installed:
Get-AuthenticodeSignature .\spoolsmith.exe | Format-List Status, SignerCertificate
(Get-FileHash .\spoolsmith-*-windows-amd64.zip -Algorithm SHA256).Hash.ToLower()Status must read Valid, and the hash must match the .sha256 file published next to the download. How releases are signed.
When you need administrator rights#
| Task | Standard user | Administrator |
|---|---|---|
| List installed printers and drivers | ✓ | ✓ |
| Discover and inspect printers or printer files | ✓ | ✓ |
| Capture, edit, export and import saved setups | ✓ | ✓ |
| Copy a printer | ✓ settings only | ✓ with its driver |
| Add, update, re-point or remove a Windows printer | ✓ |
Copying without administrator rights still works: the file carries the settings only and says why. The other PC then needs that driver already.
In the desktop app, you don't need to restart anything. When a change needs rights, the button reads Install as administrator... with the Windows shield. Windows asks for permission, SpoolSmith reopens elevated on the same printer, prepares the plan again and asks you to confirm it there. The command line never elevates itself; it stops and tells you to use an administrator prompt.
Your first printer#
Copy it →
The fastest path, and it brings the driver along.
You know the addressSet it up by IP →
Let Windows handle an IPP printer, or choose an installed driver.
The first time you open the desktop app, it offers to open .ssb files when you double-click them. That's for your Windows account only, and you can turn it off under More.
Where saved setups live#
The desktop app uses the folder you last chose. Otherwise it uses profiles next to the app if that folder is writable, or %LOCALAPPDATA%\SpoolSmith\profiles (which is what an MSI install gets). Set SPOOLSMITH_PROFILES_DIR to override it. On the command line, you pass file paths explicitly.
Upgrading from v1.0 or earlier#
Since v1.1, every saved printer is an .ssb file and several printers travel as a .zip set. Existing .ssb copies still work. Bare JSON profiles and JSON library exports don't, and renaming them doesn't convert them. Recreate each one by copying its installed printer, or with profile capture. Your Windows printers aren't affected by upgrading.
Output for people and for scripts#
On the command line, data commands write JSON to stdout when it's redirected. Prompts and human-readable summaries go to stderr. Commands that change printers print a short plan and result in a terminal. --json asks for the machine-readable result, and --dry-run --json shows the complete plan.
Build from source#
Only needed to change SpoolSmith itself. Requires Go 1.24 or later.
git clone https://github.com/spilloid/spoolsmith.git
cd spoolsmith
go build -o dist/spoolsmith.exe ./cmd/spoolsmith
go build -ldflags="-H windowsgui" -o dist/spoolsmith-gui.exe ./cmd/spoolsmith-guiSomething wrong or unclear? Open an issue or edit this page.