- Rust 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
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 —
|
||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
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
-
Get a setup token from your SimpleFIN Bridge account.
-
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 -
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:
--access-urlSIMPLEFIN_ACCESS_URLaccess_urlin~/.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