No description
Find a file
2026-07-17 18:44:13 -04:00
src Rewrite SimpleFIN CLI in Rust 2026-07-17 18:44:13 -04:00
tests Rewrite SimpleFIN CLI in Rust 2026-07-17 18:44:13 -04:00
.gitignore Rewrite SimpleFIN CLI in Rust 2026-07-17 18:44:13 -04:00
Cargo.lock Rewrite SimpleFIN CLI in Rust 2026-07-17 18:44:13 -04:00
Cargo.toml Rewrite SimpleFIN CLI in Rust 2026-07-17 18:44:13 -04:00
LICENSE Initial commit 2026-06-12 09:28:08 -04:00
README.md Rewrite SimpleFIN CLI in Rust 2026-07-17 18:44:13 -04:00

sfin-bridge

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/sfin-bridge.

Quick start

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

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

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

    sfin-bridge accounts
    sfin-bridge transactions --start-date 2026-05-01
    sfin-bridge tx --account ACT-1234 --pending --json
    sfin-bridge 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 sfin-bridge help <COMMAND> for full options.

Configuration

The access URL is resolved in this order:

  1. --access-url
  2. SFIN_ACCESS_URL
  3. access_url in ~/.sfin-bridge.yaml, or the file selected by --config

Existing ~/.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:

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

Development

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