Command-line client for the SimpleFIN Bridge, written in Rust. Fetch account balances and transactions using SimpleFIN protocol v2.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Katie Mulliken 10b2ca404f Rename CLI from sfin-bridge to simplefin (#2)
Rename `sfin-bridge` → `simplefin`: binary/crate name, `~/.simplefin.yaml` config, `SIMPLEFIN_ACCESS_URL` env. Redo of #1 against the Rust rewrite.

Old configs (`~/.sfin-bridge.yaml`, `~/.sfin-bridge-cli.yaml`) still work as fallbacks; `SFIN_ACCESS_URL` is dropped. Also fixes the stale `repository` URL in Cargo.toml.

Verified: fmt, clippy `-D warnings`, 6/6 tests. Squash merge — f2c6553 briefly added a build artifact.
Reviewed-on: #2
2026-08-09 08:27:13 +00:00
src Rename CLI from sfin-bridge to simplefin (#2) 2026-08-09 08:27:13 +00:00
tests Rename CLI from sfin-bridge to simplefin (#2) 2026-08-09 08:27:13 +00:00
.gitignore Rename CLI from sfin-bridge to simplefin (#2) 2026-08-09 08:27:13 +00:00
Cargo.lock Rename CLI from sfin-bridge to simplefin (#2) 2026-08-09 08:27:13 +00:00
Cargo.toml Rename CLI from sfin-bridge to simplefin (#2) 2026-08-09 08:27:13 +00:00
LICENSE Initial commit 2026-06-12 09:28:08 -04:00
README.md Rename CLI from sfin-bridge to simplefin (#2) 2026-08-09 08:27:13 +00:00

simplefin

A command-line client for the SimpleFIN Bridge, written in Rust. Fetch account balances and transactions using SimpleFIN protocol v2.

Install

cargo install --path .

Or build a local binary with cargo build --release; the result is target/release/simplefin.

Quick start

  1. Get a setup token from your SimpleFIN Bridge account.

  2. Claim it once and save the returned access URL to ~/.simplefin.yaml:

    simplefin claim <SETUP_TOKEN>
    # Keep the token out of shell history:
    printf '%s\n' "$SETUP_TOKEN" | simplefin claim
    
  3. Fetch data:

    simplefin accounts
    simplefin transactions --start-date 2026-05-01
    simplefin tx --account ACT-1234 --pending --json
    simplefin info
    

Commands

Command Description
claim Exchange a setup token for an access URL and save it
accounts List accounts and balances (--account, --json)
transactions List transactions (--start-date, --end-date, --pending, --account, --json); alias tx
info Show protocol versions supported by the server
completion Generate completion scripts for Bash, Fish, PowerShell, or Zsh

Run simplefin help <COMMAND> for full options.

Configuration

The access URL is resolved in this order:

  1. --access-url
  2. SIMPLEFIN_ACCESS_URL
  3. access_url in ~/.simplefin.yaml, or the file selected by --config

Existing ~/.sfin-bridge.yaml and ~/.sfin-bridge-cli.yaml configs are still used when the new path does not exist. Config files are written atomically with 0600 permissions. HTTP is rejected except for localhost, which keeps local tests and development possible without weakening production credentials.

Try the public demo without claiming a token:

SIMPLEFIN_ACCESS_URL='https://demo:demo@beta-bridge.simplefin.org/simplefin' \
  simplefin accounts

Development

cargo fmt --all --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets