Install on Windows
Install Spent on Windows.
Three commands. The setup script handles the service, the menubar, and the auto-start.
What you’ll need
Section titled “What you’ll need”- Windows 10 or 11.
- About 500 MB of disk space (plus ~200 MB for the .NET 8 SDK if you don’t have it).
- Your bank login credentials.
- An elevated PowerShell (right-click → Run as Administrator) for the first run, so setup can edit
hostsand register the service.
-
Install Node.js
Go to nodejs.org, download the Windows Installer (.msi) for the LTS version, and run it.
When the installer asks “Automatically install the necessary tools” near the end, leave that box unchecked — Spent’s setup will handle the right build tools for you.
-
Get Spent
Open PowerShell (as Administrator) and clone:
Terminal window git clone https://github.com/Shaya16/Spent.git $env:USERPROFILE\Spentcd $env:USERPROFILE\SpentNo Git? Install it with
winget install Git.Git, restart PowerShell, then run the clone above. -
Install and run setup
Terminal window npm installnpm run setupnpm installtakes 3-5 minutes the first time.npm run setupdoes everything else: builds the app, registers the Windows service, builds the tray icon, places startup shortcuts, and opens the dashboard.
What `npm run setup` actually does
On Windows, in order:
- Builds the Next.js app (
npm run build). - Adds
127.0.0.1 spent.localtoC:\Windows\System32\drivers\etc\hosts(skipped if not elevated). - Registers a Task Scheduler logon trigger that runs
next start -H 127.0.0.1 -p 41234whenever you log in. Server is only reachable from loopback. - Builds
Spent.exefrommenubar/windows/(C#, .NET 8). Auto-installs the SDK viawinget install Microsoft.DotNet.SDK.8if missing. - Copies
Spent.exeto%LOCALAPPDATA%\Programs\Spent\and drops a.lnkinshell:startupso the tray app shows up after reboot. - Polls
/api/healthuntil ready, then opens the browser.
Source: scripts/setup.mjs.
First launch
Section titled “First launch”Windows Defender may flag the unsigned tray binary on first run:
Day-to-day commands
Section titled “Day-to-day commands”npm run service:status # is the background service running?npm run service:start # start itnpm run service:stop # stop itnpm run service:reload # rebuild + restartnpm run service:logs # tail the server logsnpm run service:open # open the dashboardUninstall
Section titled “Uninstall”npm run uninstallRemoves the service, hosts entry, tray binary, and startup shortcut. Your data/ folder is preserved.