Skip to content

Repository files navigation

Redbark CLI

A complete client for the Redbark API v2 in your terminal. Every v2 operation has a command: accounts, balances, transactions, holdings and trades; connections, consents and link sessions; syncs, runs, categories and rules; destinations, event destinations, events and API keys. Tables for reading, raw JSON for scripts.

Redbark syncs bank and brokerage accounts to Google Sheets, Airtable, Notion, YNAB and webhooks, built on Australia's Consumer Data Right (CDR) open banking framework. Your banking data is never stored by Redbark; this CLI reads it live from your connected institutions.

Install

npm install -g @redbark/cli     # or: bun install -g @redbark/cli

Runs on any Node.js 18+ (or Bun).

Quickstart

redbark login                                # paste an API key from https://app.redbark.com/settings
redbark whoami                               # plan, key scopes, rate-limit headroom
redbark accounts                             # list your accounts
redbark balances                             # live balances across every banking account
redbark transactions --account acct_9Lk2Mn4pQr6sTu8vWx1yZb --from 2026-06-01
redbark syncs list --include latest_run      # syncs with their latest run
redbark syncs run sync_8Pq2Rs4tUv6wXy8zAb1cDe
redbark link --institution inst_fk_anz       # connect a bank through the hosted consent page

For scripts and CI, skip login and set the key in the environment:

REDBARK_API_KEY=rbk_live_... redbark accounts --json | jq -r '.data[].name'

REDBARK_API_URL overrides the base URL (default https://api.redbark.com).

How commands are shaped

redbark <resource> <verb> [id] [flags]
  • Resources mirror the API paths: api-keys, connections, consents, accounts, transactions, holdings, trades, provider-categories, syncs, sync-runs, categories, event-destinations, events, link-sessions, institutions, destination-links, destinations, rulesets, rules.
  • Ids are positional and prefixed strings: acct_..., conn_..., sync_..., run_..., dest_..., cat_..., key_..., ed_..., evt_..., rset_..., rule_....
  • Query parameters and scalar body fields are --kebab-flags. Array values take repeated flags or comma lists (--status failed --status cancelled, --accounts a,b). Booleans are --flag / --no-flag. Object and list-of-object fields take JSON: --options '{"data_from":"2026-01-01"}'.
  • Every write also accepts --body '<json>' or --json-file <path> for the whole request body. Flags are merged on top and win.
  • redbark <resource> --help lists the verbs; redbark <resource> <verb> --help shows every flag with the API description, the endpoint and the scope it needs.

The bare forms redbark connections, accounts, transactions, categories, holdings and trades run the matching list command, so v1-era scripts keep working once ids and flags are updated.

Commands

Auth and account

Command What it does
redbark login Verify a key against /v2/me and save it (~/.config/redbark/config.json, mode 0600)
redbark logout Remove the saved key
redbark whoami Auth status, key scopes, plan, rate-limit headroom
redbark me The account object behind the key

Convenience

Command What it does
redbark balances [accountIds...] Live balances; every banking account when no ids are given (--concurrency)
redbark link Create a link session, open the hosted consent page, wait for the connection (--provider, --institution, --return-url, --no-open, --no-wait, --timeout)
redbark destinations link --type <type> Same flow for a Sheets, Notion, Airtable or YNAB destination

me

Command What it does Scope
``redbark me` Retrieve the account no scope

api-keys

Command What it does Scope
``redbark api-keys list` List API keys keys:write
``redbark api-keys create` Create an API key keys:write
``redbark api-keys get ` Retrieve an API key keys:write
``redbark api-keys update ` Update an API key keys:write
``redbark api-keys revoke ` Revoke an API key keys:write
``redbark api-keys rotate ` Rotate an API key keys:write

connections

Command What it does Scope
``redbark connections list` List connections connections:read
``redbark connections get ` Retrieve a connection connections:read
``redbark connections revoke ` Revoke a connection connections:write
``redbark connections reauthorize ` Reauthorize a connection connections:write
``redbark connections refresh ` Refresh a connection connections:write

consents

Command What it does Scope
``redbark consents list` List consents connections:read
``redbark consents get ` Retrieve a consent connections:read

accounts

Command What it does Scope
``redbark accounts list` List accounts data:read
``redbark accounts get ` Retrieve an account data:read
``redbark accounts balance ` Retrieve the live balance data:read
``redbark accounts details ` Retrieve account details data:read

transactions

Command What it does Scope
``redbark transactions list --account ` List transactions data:read
``redbark transactions get --account ` Retrieve a transaction data:read

holdings

Command What it does Scope
``redbark holdings list --account ` List holdings data:read

trades

Command What it does Scope
``redbark trades list --account ` List trades data:read

provider-categories

Command What it does Scope
``redbark provider-categories list` List provider categories data:read

syncs

Command What it does Scope
``redbark syncs list` List syncs syncs:read
``redbark syncs create` Create a sync syncs:write
``redbark syncs get ` Retrieve a sync syncs:read
``redbark syncs update ` Update a sync syncs:write
``redbark syncs delete ` Delete a sync syncs:write
``redbark syncs run ` Run a sync now syncs:write
``redbark syncs resync ` Resync from the start date syncs:write
``redbark syncs runs ` List runs for a sync syncs:read
``redbark syncs category-mappings get ` List category mappings syncs:read
``redbark syncs category-mappings set ` Replace category mappings syncs:write
``redbark syncs rulesets attach ` Attach a ruleset to a sync syncs:write

sync-runs

Command What it does Scope
``redbark sync-runs get ` Retrieve a run syncs:read
``redbark sync-runs cancel ` Cancel a queued run syncs:write

categories

Command What it does Scope
``redbark categories list` List categories categories:read
``redbark categories create` Create a group or category categories:write
``redbark categories reset` Reset the taxonomy categories:write
``redbark categories get ` Retrieve a category categories:read
``redbark categories update ` Update a category categories:write
``redbark categories delete ` Delete a group or category categories:write
``redbark categories sources set ` Replace the claimed sources categories:write

event-destinations

Command What it does Scope
``redbark event-destinations list` List event destinations events:write
``redbark event-destinations create` Create an event destination events:write
``redbark event-destinations get ` Retrieve an event destination events:write
``redbark event-destinations update ` Update an event destination events:write
``redbark event-destinations delete ` Delete an event destination events:write
``redbark event-destinations enable ` Enable an event destination events:write
``redbark event-destinations disable ` Disable an event destination events:write
``redbark event-destinations ping ` Send a ping event events:write
``redbark event-destinations rotate-secret ` Rotate the signing secret events:write

events

Command What it does Scope
``redbark events list` List events events:read
``redbark events get ` Retrieve an event events:read
``redbark events redeliver ` Redeliver an event events:write

link-sessions

Command What it does Scope
``redbark link-sessions create` Create a link session connections:write
``redbark link-sessions get ` Retrieve a link session connections:write

institutions

Command What it does Scope
``redbark institutions list` List institutions connections:read

destination-links

Command What it does Scope
``redbark destination-links create` Create a destination link destinations:write
``redbark destination-links get ` Retrieve a destination link destinations:write

destinations

Command What it does Scope
``redbark destinations list` List destinations destinations:read
``redbark destinations create` Create a webhook destination destinations:write
``redbark destinations get ` Retrieve a destination destinations:read
``redbark destinations update ` Update a destination destinations:write
``redbark destinations delete ` Delete a destination destinations:write
``redbark destinations rotate-secret ` Rotate a webhook signing secret destinations:write
``redbark destinations enable ` Re-enable a disabled destination destinations:write
``redbark destinations resources ` List what a destination offers destinations:read

rulesets

Command What it does Scope
``redbark rulesets list` List rulesets rules:read
``redbark rulesets create` Create a ruleset rules:write
``redbark rulesets get ` Retrieve a ruleset rules:read
``redbark rulesets update ` Update a ruleset rules:write
``redbark rulesets delete ` Delete a ruleset rules:write
``redbark rulesets duplicate ` Duplicate a ruleset rules:write
``redbark rulesets rules list ` List rules in a ruleset rules:read
``redbark rulesets rules create ` Create a rule rules:write
``redbark rulesets reorder-rules ` Reorder rules rules:write
``redbark rulesets preview ` Preview a ruleset rules:read

rules

Command What it does Scope
``redbark rules get ` Retrieve a rule rules:read
``redbark rules update ` Update a rule rules:write
``redbark rules delete ` Delete a rule rules:write

Scripting

  • --json on any command prints the raw API response.
  • --all on paginated lists follows next_page_url and prints one combined list. Without it, a hint shows the --page <token> for the next page.
  • --idempotency-key <key> sets the Idempotency-Key header on writes, so a retried create returns the stored response instead of a duplicate.
  • --dry-run prints the request (method, URL, headers, body) without sending it.
  • --yes skips the confirmation prompt on destructive commands (delete, revoke, reset, rotate, rotate-secret, resync). Prompts are skipped automatically when stdin is not a terminal.
  • Errors print the API message, a hint (which scope a key is missing, when to retry, where the pricing page is) and the request id to quote to support. Exit code 1.
# Every failed run in the last 90 days, for one sync
redbark syncs runs sync_8Pq2Rs4tUv6wXy8zAb1cDe --status failed --all --json

# Create a webhook destination once, safely
redbark destinations create --type webhook --name "Ops" --target '{"url":"https://example.com/hook"}' \
  --idempotency-key ops-hook-1

# Create a restricted key for CI (the secret is printed once)
redbark api-keys create --name CI --scopes syncs:read,syncs:write --allowed-ips 203.0.113.0/24

Version

The CLI pins a Redbark-Version release (2026-10-01.wattle) and sends it on every request. The release is the info.version of the OpenAPI document the command set was generated from. redbark whoami shows it. Commands are generated from https://api.redbark.com/v2/openapi.json with bun run generate; src/generated/operations.ts is checked in.

Development

Built with Bun, Commander, and @clack/prompts.

bun install
bun run dev -- syncs list                 # run from source
bun test                                  # test suite
REDBARK_OPENAPI_SPEC=path/to/v2.json bun test   # also checks the generated file is current
bun run typecheck                         # tsc --noEmit
bun run generate [spec path or URL]       # regenerate src/generated/operations.ts
bun run compile                           # standalone binary at dist/redbark

Security

The CLI sends your API key only to the configured API host over HTTPS and stores it locally with owner-only permissions. Report vulnerabilities per SECURITY.md, never via a public issue.

License

Apache-2.0. "Redbark" is a trademark of Redbark, see NOTICE.

About

Redbark CLI -- Your Aussie banking and brokerage data, in your terminal

Resources

Security policy

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages