Local-first personal finance tracker for with a Rust CLI/TUI, SQLite ledger, budgets, recurring bills, reconciliation, and cashflow forecasting.
198
stars
44
commits
Rust
primary language
Aug 19, 2026
updated
Latest Release | Quick Start | Wiki
Helius is a local first personal finance tracker with a Rust CLI/TUI and SQLite storage. It runs as a single binary and keeps data in one local database file.
Supported targets: Windows x86_64 and Linux x86_64.
camt.053 XML import; see the Bank Import guidehelius-v1.4.2-windows-x86_64.ziphelius-v1.4.1-2inux-x86_64.tar.gz.\helius.exe
./helius
On first run, if no database exists, Helius prompts for a 3-letter currency code and initializes the default database for the current platform.
Requirements:
Clone the repository, then build:
cargo build --release
The compiled binary is written to one of:
target\release\helius.exe
target/release/helius
cargo install --path .
The container stores its database at /data/tracker.db.
Build the image locally:
docker build -t helius .
Create a named volume and start Helius:
docker volume create helius-data
docker run --rm -it -v helius-data:/data helius
Run direct commands the same way:
docker run --rm -v helius-data:/data helius balance
docker run --rm -v helius-data:/data helius tx list --limit 20
Use -it for the TUI or interactive shell.
Start the terminal UI:
helius
Open the guided shell:
helius shell
Run direct commands:
helius init --currency USD
helius balance
helius tx list --limit 20
Import bank data with presets (full bank list):
helius import csv --list-presets
helius import csv --input .\chase.csv --account Checking --preset chase-us --dry-run
helius import csv --input .\alpha-bank.csv --account Checking --preset alpha-bank-gr
helius import camt053 --input .\statement.xml --account Checking --dry-run
If you are launching a binary directly instead of using PATH:
.\helius.exe init --currency USD
.\helius.exe balance
./helius init --currency USD
./helius balance
On first run, helius can initialize the database automatically. You can also set it up explicitly:
helius init --currency USD
helius account add Checking --type checking --opening-balance 1000.00
helius category add Salary --kind income
helius category add Groceries --kind expense
helius tx add --type income --amount 2500.00 --date 2026-03-01 --account Checking --category Salary --payee Employer
helius tx add --type expense --amount 42.50 --date 2026-03-02 --account Checking --category Groceries --payee Market
Tab / Shift+Tab: switch top-level panelsj / k or arrows: move selectionn: create a new item in the active panele: edit the selected itemd: archive, delete, reset, or restore depending on panel contextEnter: open, activate, or post the selected entry?: toggle helpq: quitForms:
Tab / Shift+Tab: move between fieldsEnter, Ctrl+S, or F2: saveEsc: cancelAccounts and categories:
helius account add "Cash" --type cash
helius account list
helius category add "Housing" --kind expense
helius category list
Transactions:
helius tx add --type expense --amount 290.00 --date 2026-03-06 --account Cash --category Housing --payee Rent
helius tx list --limit 25
helius tx edit 12 --note "corrected note"
helius tx delete 12
helius tx restore 12
Budgets and summaries:
helius budget set Groceries --month 2026-03 --amount 300.00 --account Checking
helius budget status 2026-03
helius summary month 2026-03
helius summary range --from 2026-03-01 --to 2026-03-31
Recurring rules:
helius recurring add "Monthly Rent" --type expense --amount 290.00 --account Cash --category Housing --cadence monthly --day-of-month 6 --start-on 2026-03-17
helius recurring list
helius recurring run
Imports:
helius import csv --input .\bank.csv --account Checking --preset revolut-csv --dry-run
helius import csv --input .\bank.csv --account Checking --date-column Date --amount-column Amount --description-column Description --expense-category Groceries
helius import camt053 --input .\statement.xml --account Checking --income-category Salary --expense-category Bills
Planning:
helius forecast show
helius forecast bills
helius scenario add "Recovery Plan"
helius goal add "Cash Floor" --kind balance-target --account Checking --minimum-balance 100.00
Default database locations:
%LOCALAPPDATA%\Helius\tracker.db
~/.local/share/helius/tracker.db
Notes:
%LOCALAPPDATA%\Helius\tracker.db.directories::ProjectDirs, commonly ~/.local/share/helius/tracker.db.Overrides:
--db <path>HELIUS_DB_PATHcargo test
cargo build --release
Copyright 2026 Kostas. This project is released under the GNU Affero General Public License v3.0. See LICENSE.
44 commits
Rust
97.5%
PowerShell
2.4%
Local-first personal finance tracker for with a Rust CLI/TUI, SQLite ledger, budgets, recurring bills, reconciliation, and cashflow forecasting.
198
stars
44
commits
Rust
primary language
Aug 19, 2026
updated
Latest Release | Quick Start | Wiki
Helius is a local first personal finance tracker with a Rust CLI/TUI and SQLite storage. It runs as a single binary and keeps data in one local database file.
Supported targets: Windows x86_64 and Linux x86_64.
camt.053 XML import; see the Bank Import guidehelius-v1.4.2-windows-x86_64.ziphelius-v1.4.1-2inux-x86_64.tar.gz.\helius.exe
./helius
On first run, if no database exists, Helius prompts for a 3-letter currency code and initializes the default database for the current platform.
Requirements:
Clone the repository, then build:
cargo build --release
The compiled binary is written to one of:
target\release\helius.exe
target/release/helius
cargo install --path .
The container stores its database at /data/tracker.db.
Build the image locally:
docker build -t helius .
Create a named volume and start Helius:
docker volume create helius-data
docker run --rm -it -v helius-data:/data helius
Run direct commands the same way:
docker run --rm -v helius-data:/data helius balance
docker run --rm -v helius-data:/data helius tx list --limit 20
Use -it for the TUI or interactive shell.
Start the terminal UI:
helius
Open the guided shell:
helius shell
Run direct commands:
helius init --currency USD
helius balance
helius tx list --limit 20
Import bank data with presets (full bank list):
helius import csv --list-presets
helius import csv --input .\chase.csv --account Checking --preset chase-us --dry-run
helius import csv --input .\alpha-bank.csv --account Checking --preset alpha-bank-gr
helius import camt053 --input .\statement.xml --account Checking --dry-run
If you are launching a binary directly instead of using PATH:
.\helius.exe init --currency USD
.\helius.exe balance
./helius init --currency USD
./helius balance
On first run, helius can initialize the database automatically. You can also set it up explicitly:
helius init --currency USD
helius account add Checking --type checking --opening-balance 1000.00
helius category add Salary --kind income
helius category add Groceries --kind expense
helius tx add --type income --amount 2500.00 --date 2026-03-01 --account Checking --category Salary --payee Employer
helius tx add --type expense --amount 42.50 --date 2026-03-02 --account Checking --category Groceries --payee Market
Tab / Shift+Tab: switch top-level panelsj / k or arrows: move selectionn: create a new item in the active panele: edit the selected itemd: archive, delete, reset, or restore depending on panel contextEnter: open, activate, or post the selected entry?: toggle helpq: quitForms:
Tab / Shift+Tab: move between fieldsEnter, Ctrl+S, or F2: saveEsc: cancelAccounts and categories:
helius account add "Cash" --type cash
helius account list
helius category add "Housing" --kind expense
helius category list
Transactions:
helius tx add --type expense --amount 290.00 --date 2026-03-06 --account Cash --category Housing --payee Rent
helius tx list --limit 25
helius tx edit 12 --note "corrected note"
helius tx delete 12
helius tx restore 12
Budgets and summaries:
helius budget set Groceries --month 2026-03 --amount 300.00 --account Checking
helius budget status 2026-03
helius summary month 2026-03
helius summary range --from 2026-03-01 --to 2026-03-31
Recurring rules:
helius recurring add "Monthly Rent" --type expense --amount 290.00 --account Cash --category Housing --cadence monthly --day-of-month 6 --start-on 2026-03-17
helius recurring list
helius recurring run
Imports:
helius import csv --input .\bank.csv --account Checking --preset revolut-csv --dry-run
helius import csv --input .\bank.csv --account Checking --date-column Date --amount-column Amount --description-column Description --expense-category Groceries
helius import camt053 --input .\statement.xml --account Checking --income-category Salary --expense-category Bills
Planning:
helius forecast show
helius forecast bills
helius scenario add "Recovery Plan"
helius goal add "Cash Floor" --kind balance-target --account Checking --minimum-balance 100.00
Default database locations:
%LOCALAPPDATA%\Helius\tracker.db
~/.local/share/helius/tracker.db
Notes:
%LOCALAPPDATA%\Helius\tracker.db.directories::ProjectDirs, commonly ~/.local/share/helius/tracker.db.Overrides:
--db <path>HELIUS_DB_PATHcargo test
cargo build --release
Copyright 2026 Kostas. This project is released under the GNU Affero General Public License v3.0. See LICENSE.
44 commits
Rust
97.5%
PowerShell
2.4%