Install on macOS
Install Spent on your Mac.
Three commands, about ten minutes. Spent will install itself as a background service and put a small icon in your menu bar.
What you’ll need
Section titled “What you’ll need”- macOS 12 (Monterey) or newer.
- About 500 MB of disk space.
- Your bank login credentials (have them ready).
-
Install Node.js
Spent runs on Node.js, a small runtime you install once. Go to nodejs.org, download the LTS installer for macOS, and run it. Click through the defaults.
If you prefer Homebrew:
Terminal window brew install node@20 -
Get Spent
Open Terminal (in Applications → Utilities) and clone the repo:
Terminal window git clone https://github.com/Shaya16/Spent.git ~/Spentcd ~/SpentNo Git? Install it first with
brew install git(after installing Homebrew), then run the clone above. -
Install and run setup
Terminal window npm installnpm run setupnpm installtakes 2-3 minutes the first time.npm run setupdoes everything else: builds the app, installs the background service, builds the menubar, registers everything to start at login, and opens the dashboard.
What `npm run setup` actually does
In order:
- Builds the Next.js app (
npm run build). - Adds
127.0.0.1 spent.localto/etc/hostsso you can reach the dashboard athttp://spent.local:41234. Asks forsudoonce. - Registers a LaunchAgent at
~/Library/LaunchAgents/io.spent.app.plistthat starts the server on login. Server binds to127.0.0.1:41234only. - Builds
Spent.appfrommenubar/mac/(Swift). Needs Xcode Command Line Tools (offered for install if missing). - Copies
Spent.appto~/Applications/and registers it as a Login Item so the menubar shows up after reboot. - Polls
/api/healthuntil the server is ready, then opens the browser.
Source: scripts/setup.mjs.
First launch
Section titled “First launch”The first time you click the menubar icon, macOS Gatekeeper will balk:
Day-to-day commands
Section titled “Day-to-day commands”Once installed, you mostly forget the terminal. But these are useful:
npm run service:status # is the background service running?npm run service:start # start itnpm run service:stop # stop itnpm run service:reload # rebuild + restart (after a code change)npm run service:logs # tail the server logsnpm run service:open # open the dashboard in the browserUninstall
Section titled “Uninstall”To remove the service, hosts entry, menubar, and login item:
npm run uninstallYour data/ folder is left alone so you can reinstall later.