Command line

Your bank accounts, one command away.

The bankbridge command reads your connected accounts, transactions, recurring charges and holdings from a shell. It’s built for agents that work by running commands, like Aider and Pi, and it works for anything else that can start a program: cron, scripts, spreadsheets, the CSV your accountant asked for.

install on macOS or Linux
curl -fsSL https://bankbridge.money/install.sh | sh
try it with fictional data, no signup
$ bankbridge accounts --demo
INSTITUTION      NAME                    TYPE        SUBTYPE      LAST 4     BALANCE
Chase            Chase Total Checking    depository  checking     1029     $4,234.18
Chase            Chase Savings           depository  savings      5531    $18,750.00
Chase            Sapphire Preferred      credit      credit card  7714     $1,284.56
Bank of America  BoA Cash Rewards        credit      credit card  3390       $847.22
Fidelity         Fidelity Brokerage      investment  brokerage    7854    $50,154.00

Then run bankbridge login and paste an API key from your dashboard. A subscription is $5/month or $50/year per connected bank, and the command line tool comes with it. It reads the same banks as every MCP app you connect.

Why agents use it

Most agents reach BankBridge over MCP. Some are built around a different idea: the model runs shell commands and reads what they print. For those agents, a command-line tool is the natural way in: install it, sign in, and the agent can run it.

Aider

Aider has no MCP support. It does run commands: /run (or !) runs one and offers to add the output to the chat, and the model can suggest commands of its own, which Aider asks you to approve.

inside aider
> /run bankbridge recurring --json
Add 1.6k tokens of command output to the chat? (Y)es/(N)o [Yes]: y
> Which of these should I cancel to save $100 a month?

For a bigger question, export a file and hand it over read-only with aider --read october.csv. Aider setup

Pi

Pi ships with four tools by default: read, bash, edit and write. Anything on your PATH is already within reach. Pi has also spoken MCP since version 0.99.0, so you can choose: the MCP connection, or the command line tool plus a short skill that Pi loads only when a question is about money. The command line tool lets the model filter with jq before the output reaches the conversation.

inside pi
!bankbridge cashflow --month 2026-10

> What did I spend on food in October, compared with September?
  (Pi runs: bankbridge spending --month 2026-10 --json)
  (Pi runs: bankbridge spending --month 2026-09 --json)

Pi setup, with the skill file and the MCP command.

Any other agent with a shell

Add a line to the file your agent reads for project notes, such as AGENTS.md:

AGENTS.md
Bank data: run `bankbridge --help`. Use --json. Read-only. Positive amounts are money out.
If a command prints a warning, tell me: a bank may be missing from the result.

Whatever a command prints and the agent reads goes to the model provider that agent uses, the same as any other command output.

And everything else

No agent required. It’s a normal Unix tool: data on stdout, errors on stderr, exit codes you can branch on.

Your accountant’s CSV

a full year, to a file
bankbridge transactions --from 2025-01-01 --to 2025-12-31 -o 2025-transactions.csv

Cron

Run bankbridge login once, then schedule it. --strict exits 8 if a bank didn’t answer, so a job can’t quietly save a short file.

crontab: every Monday at 7
0 7 * * 1 $HOME/.local/bin/bankbridge recurring --strict -o $HOME/finance/recurring.csv

Scripts

how many charges over $100 last month?
bankbridge transactions --month 2026-10 --json \
  | jq '[.transactions[] | select(.amount > 100)] | length'

Spreadsheets

Every CSV is plain UTF-8 with a fixed header row, and it opens directly in Excel, Numbers or Google Sheets. Amounts are real numbers. Merchant names that start with = or + are escaped so a spreadsheet can’t run them as formulas.

Commands

bankbridge accountsEvery connected account with its balance
bankbridge transactions --month 2026-10Transactions, by month, date range, account, category or amount
bankbridge search netflixFind transactions by merchant or description
bankbridge spending --by merchantTotals by category, merchant, month or week
bankbridge recurringSubscriptions and bills
bankbridge cashflow --month 2026-10Income, expenses and net for a month
bankbridge merchant netflixEvery charge from one merchant, with totals
bankbridge categoriesThe spending categories in your data
bankbridge holdingsInvestment positions with cost basis and gain or loss
bankbridge investments --subtype dividendBuys, sells, dividends and fees
bankbridge connectThe link for adding or reconnecting a bank

Tables by default. --json prints the same fields as the matching MCP tool. --csv prints CSV. -o FILE writes a file, and a name ending in .csv or .json picks the format. --account takes an account id or its last 4 digits. Long lists read every page unless you pass --limit. On transactions, positive amounts are money out and negative amounts are money in. bankbridge <command> --help lists the rest.

Exit codes

0
Success
1
General error, such as an account id that doesn't exist
2
Bad arguments
3
No API key, or the key was rejected
4
Finish setup: no subscription yet, or no bank connected
5
Every bank asked for needs reconnecting
6
Network problem or timeout
7
Rate limited, even after retries
8
With --strict: at least one bank did not answer

Where your data goes

Install details

The script reads your OS and CPU, downloads one binary from bankbridge.money, checks its SHA-256 and puts it in ~/.local/bin. Set BANKBRIDGE_INSTALL_DIR to use another folder. It doesn’t edit your shell profile or touch any agent’s settings. It runs on macOS and Linux, on arm64 and x64, with nothing else to install, and the macOS builds are signed and notarized.

update and remove
bankbridge update
rm ~/.local/bin/bankbridge ~/.config/bankbridge/config.json