Skip to content

Sensible-Analytics/folio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,508 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Folio

Sensible Folio + Australian Bank Statement Downloader
A community fork of Sensible-Analytics/folio

Download Sensible Folio · Official Repository · Report Issues


Demo

Folio – Bank Connect walkthrough

Tutorial — complete written walkthrough is in the Tutorial section below.


What is this?

This is a community fork of Sensible Folio — the local-first, open-source desktop investment tracker — with one extra feature added:

Bank Connect: automatically download bank statements (PDF) from Australian banks directly inside the Sensible Folio desktop app.

Everything else — portfolio tracking, performance analytics, activities, goals — is the same as the upstream project.


Bank Connect — Australian Bank Statement Downloader

The Bank Connect feature lets you log in to your Australian bank's website inside Sensible Folio and download statements without leaving the app.

Supported Banks

Bank Login URL
ING Australia ing.com.au
CommBank (CBA) netbank.com.au
ANZ anz.com.au
Bank of Melbourne ibanking.bankofmelbourne.com.au
Beyond Bank ibank.beyondbank.com.au

How it works

  1. Go to Bank Connect in the sidebar
  2. Click Open Login for your bank — a browser window opens at the bank's real login page
  3. Log in normally (two-factor, biometrics, whatever your bank requires)
  4. Once logged in, click Start Download — the app collects your statement download links
  5. PDFs are saved to ~/BankStatements/{bank}/ on your computer

Your login session is stored locally (per bank, isolated). No credentials are sent anywhere — the app only talks directly to your bank's website.

Settings

In Settings → Bank Connect you can configure:

  • Download folder (default: ~/BankStatements)
  • How many years back to download (default: 7, max 10)
  • Which banks are enabled
  • Whether to overwrite existing files

Relationship to the upstream project

This fork tracks the main branch of Sensible-Analytics/folio. The only changes on top of upstream are:

Change Description
feat(bank-connect) The Bank Connect feature described above
ci: test suite Multi-layer test suite (property tests, Kani formal proofs, migration integrity, Playwright E2E)
docs(claude) Development notes for AI-assisted development

If you want the base investment tracker without Bank Connect, use the official app: Sensible Folio.


Getting Started

Prerequisites

Build from source

# Clone this fork
git clone https://github.com/Sensible-Analytics/folio.git
cd folio

# Install Node dependencies
pnpm install

# Run in development mode (opens the desktop app)
pnpm tauri dev

Run tests

# TypeScript tests
pnpm test

# Rust tests
cargo test

# Type check
pnpm type-check

Sensible Folio — Original Features

Everything below is from the upstream Sensible Folio project.

Key Features

  • Portfolio Tracking — Track investments across multiple accounts and asset types
  • Performance Analytics — Detailed performance metrics and historical analysis
  • Activity Management — Import and manage all trading activities
  • Goal Planning — Set and track financial goals with allocation management
  • Local Data — All data stored locally with no cloud dependencies
  • Multi-Currency — Support for multiple currencies with exchange rate management
  • Cross-Platform — Available on Windows, macOS, and Linux
  • Extensible — Powerful addon system for custom functionality

Web Mode

Run Sensible Folio in a browser via a local Axum server:

pnpm run dev:web

See the original README for full web mode and Docker documentation.

Folder Structure

folio/
├── apps/frontend/          # React + Vite frontend
├── apps/tauri/             # Tauri desktop app (Rust IPC commands)
│   └── src/banks/          # Bank automation scripts (Bank Connect)
├── apps/server/            # Axum HTTP server (web mode)
├── crates/core/            # Business logic, models, services
│   └── src/bank_connect/   # Bank Connect core logic
├── crates/storage-sqlite/  # SQLite storage (Diesel ORM, migrations)
├── addons/                 # Example addons
├── packages/               # Shared TypeScript packages
└── docs/                   # Documentation
    └── testing/            # Testing strategy and learnings

Tutorial

This tutorial walks you through installing Folio, tracking a portfolio, and downloading Australian bank statements from scratch.

Step 1 — Install

# Prerequisites: Node ≥ 20, pnpm ≥ 9, Rust stable
# https://tauri.app/start/prerequisites/

git clone https://github.com/Sensible-Analytics/folio.git
cd folio
pnpm install
pnpm tauri dev          # opens the desktop app

The first pnpm tauri dev compiles Rust (~2–5 min). Subsequent runs are fast.


Step 2 — Add your first account

App → Accounts → + New Account
  Name:     My Broker
  Type:     Securities
  Currency: AUD

Folio stores everything locally in SQLite — nothing leaves your machine.


Step 3 — Import activities (trades, dividends, …)

Activities → Import
  ↳ Drop a CSV or use "Add Activity" for manual entry

Supported activity types: BUY, SELL, DIVIDEND, INTEREST, DEPOSIT, WITHDRAWAL, FEE, TAX, SPLIT, and more.

After import the Dashboard updates instantly with portfolio value, performance chart, and allocation breakdown.


Step 4 — Download Australian bank statements (Bank Connect)

Sidebar → Bank Connect
┌────────────────────────────────────────────────────────────┐
│  Bank Connect                                              │
├──────────────────────┬─────────────────────────────────────┤
│  [ING]  [CBA]        │  Log                                │
│  [ANZ]  [BOM]        │  10:42  INFO  Opening ING window…   │
│  [Beyond]            │  10:43  INFO  Login detected ✓      │
│                      │  10:43  INFO  Downloading…          │
│                      │  10:44  OK    12 files saved        │
└──────────────────────┴─────────────────────────────────────┘
  1. Click Open Login next to your bank.
  2. A browser window opens at the bank's real login URL — log in normally.
  3. Once logged in, click Start Download.
  4. PDFs land in ~/BankStatements/{bank}/.

Your credentials never touch Folio — the embedded browser talks directly to the bank.


Step 5 — Configure Bank Connect settings

Settings → Bank Connect
  Download folder:  ~/BankStatements   (change to any path)
  Years back:       7                  (1 – 10)
  Enabled banks:    ☑ ING  ☑ CBA  …
  Overwrite files:  off

Step 6 — Track goals

Goals → + New Goal
  Name:       Emergency Fund
  Target:     $20,000 AUD
  Allocate accounts → link Cash accounts

The goal card shows current value vs target and a progress bar that updates whenever new activities are imported.


Keyboard shortcuts

Action Shortcut
Open command palette Cmd/Ctrl + K
New activity Cmd/Ctrl + N
Refresh quotes Cmd/Ctrl + R
Toggle sidebar Cmd/Ctrl + B

Recording your own demo

If you want to record a screen capture and embed it here, a few good tools:

  • macOS: Cmd + Shift + 5 → record screen → upload to YouTube/Loom
  • VHS: terminal-only GIF recorder
  • Loom: quick shareable link, thumbnail embeds in GitHub

Once you have a YouTube or Loom URL, replace the #tutorial link in the Demo badge at the top of this file.


Contributing

This fork is maintained by Sensible Analytics.

For issues with the Bank Connect feature, open an issue here.

For issues with the core investment tracker, consider contributing upstream to Sensible-Analytics/folio.


License

Code is licensed under AGPL-3.0 — same as the upstream project. See LICENSE.

Sensible Folio and the Sensible Folio logo are trademarks of Sensible Analytics. See TRADEMARKS.md.

About

Wealthfolio + Australian bank statement downloader

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors