Skip to content

Install on Windows

INSTALL · WINDOWS

Install Spent on Windows.

Three commands. The setup script handles the service, the menubar, and the auto-start.

  • 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 hosts and register the service.
  1. 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.

  2. Get Spent

    Open PowerShell (as Administrator) and clone:

    Terminal window
    git clone https://github.com/Shaya16/Spent.git $env:USERPROFILE\Spent
    cd $env:USERPROFILE\Spent

    No Git? Install it with winget install Git.Git, restart PowerShell, then run the clone above.

  3. Install and run setup

    Terminal window
    npm install
    npm run setup

    npm install takes 3-5 minutes the first time. npm run setup does 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:

  1. Builds the Next.js app (npm run build).
  2. Adds 127.0.0.1 spent.local to C:\Windows\System32\drivers\etc\hosts (skipped if not elevated).
  3. Registers a Task Scheduler logon trigger that runs next start -H 127.0.0.1 -p 41234 whenever you log in. Server is only reachable from loopback.
  4. Builds Spent.exe from menubar/windows/ (C#, .NET 8). Auto-installs the SDK via winget install Microsoft.DotNet.SDK.8 if missing.
  5. Copies Spent.exe to %LOCALAPPDATA%\Programs\Spent\ and drops a .lnk in shell:startup so the tray app shows up after reboot.
  6. Polls /api/health until ready, then opens the browser.

Source: scripts/setup.mjs.

Windows Defender may flag the unsigned tray binary on first run:

Terminal window
npm run service:status # is the background service running?
npm run service:start # start it
npm run service:stop # stop it
npm run service:reload # rebuild + restart
npm run service:logs # tail the server logs
npm run service:open # open the dashboard
Terminal window
npm run uninstall

Removes the service, hosts entry, tray binary, and startup shortcut. Your data/ folder is preserved.

Next Connect your bank