
# Install the CLI

## 1. Install Node.js

fob-actual needs **Node.js 22 or later**. Install the current **LTS** release from the [official Node.js download page](https://nodejs.org/en/download). It includes npm, the package installer used below.

Check both commands work in Terminal (macOS/Linux) or PowerShell (Windows):

```bash
node --version
npm --version
```

## 2. Install fob-actual

```bash
npm install -g @finopsbricks/fob-actual
fob-actual --version
```

Then [connect your budget](/docs/actual/connect).

The Actual engine uses a compiled SQLite module. npm downloads a ready-made build for macOS, Linux and Windows on Intel and ARM, so there's usually nothing to compile.

## Optional: the fob dispatcher

If you use other FinOpsBricks CLIs, the `fob` dispatcher gives them one prefix. Any `fob-*` tool on your PATH becomes `fob <tool>`:

```bash
npm install -g @finopsbricks/fob-cli
fob actual accounts list          # same as: fob-actual accounts list
```

The docs use `fob-actual`. Both forms work everywhere.

## Updating

```bash
npm install -g @finopsbricks/fob-actual@latest
```

Your profiles in `~/.fob/fob-actual/config.yml` and local budget copies are kept. See the [changelog](/docs/actual/changelog) for what's new.

## If the command is not found

- Reopen your terminal after installing, so it picks up the new PATH.
- Check npm's global bin folder is on your PATH: `npm prefix -g` shows the install prefix, and the binaries are in its `bin` folder (on Windows, the prefix folder itself).
- An npm `EACCES` permission error means your global install folder isn't writable. Use a Node.js installed for your user account (for example with a version manager such as `nvm` or `fnm`). Don't use `sudo npm`.
