LinuxCommandLibrary

hledger-ui

Browse and visualize hledger journal files

TLDR

Start in the main menu screen, reading from the default journal file

$ hledger-ui
copy

Start with a different color theme
$ hledger-ui --theme [terminal|greenterm|dark]
copy

Start in the balance sheet accounts screen, showing hierarchy down to level 3
$ hledger-ui --bs [[-t|--tree]] [[-3|--depth 3]]
copy

Start in this account's screen, showing cleared transactions, and reload on change
$ hledger-ui --register [assets:bank:checking] [[-C|--cleared]] [[-w|--watch]]
copy

Read two journal files, and show amounts as current value when known
$ hledger-ui [[-f|--file]] [path/to/2024.journal] [[-f|--file]] [path/to/2024-prices.journal] --value now
copy

Show the manual in Info format, if possible
$ hledger-ui --info
copy

Display help
$ hledger-ui [[-h|--help]]
copy

SYNOPSIS

hledger ui [OPTIONS] [QUERY]

PARAMETERS

-f, --file FILE
    Use FILE as main journal (default: ~/.*journal)

--register
    Start in transaction register screen (alias: R)

--tree
    Start in tree-mode accounts screen (toggle: T)

-w, --watch
    Watch files for changes and auto-reload

--no-colour, --colour
    (Dis/en)able ANSI colour

--depth N, --max-depth N
    Show accounts/types up to N levels deep

--no-elide
    Show all account/amount digits (toggle: $)

-b, --begin DATE
    Start date (YYYY/MM/DD or period expr)

-e, --end DATE
    End date

-p, --period PERIOD
    Report period (monthly, yearly, etc.)

--today
    Current date (today), not booking date

--auto
    Include auto-generated postings

--real
    Exclude virtual postings

/PATTERN
    Search accounts matching pattern

DESCRIPTION

hledger-ui is a full-screen, keyboard-driven terminal user interface (TUI) for the hledger plain text accounting tool.

It displays hierarchical account lists with running, period, or cumulative balances, allowing interactive browsing, searching, and reporting directly in the terminal using curses. Navigate with arrow keys, vi-style search (/), and single-key commands for common actions like drilling down (Enter), going up (Esc), or switching reports (B for balance sheet, I for income statement, C for cashflow).

Supports all hledger features: multi-currency, commodities, historical/cost prices, forecasting with =future, budgets, custom periods (-p), account aliases, and complex queries on accounts, amounts, dates, payees, tags, etc. Toggle views like tree/flat accounts (T), register of postings/transactions (R), or all accounts (A). Periodic table mode shows changes over time.

Ideal for power users preferring keyboard efficiency over CLI repetition or GUIs. Data stays in plain text files for version control and portability. Integrates with hledger ecosystem for migration from Ledger or Beancount.

CAVEATS

Requires terminal with curses support; resizing may need restart. No mouse support. Complex queries slower on large journals.

KEY BINDINGS

h/? : help  ↑↓←→ : navigate
Enter : drill down  Esc : up
/ : search accounts  ?: search postings
A : all accounts  R : register
B/I/C : bal sheet/income/cashflow
q : quit

SCREENS

Accounts : hierarchy + balances (default)
Register : transactions/postings list
Periodic table : changes over periods
Two-page : split for multi-commodity

HISTORY

Developed by Simon Michael since 2007 as Haskell reimplementation of Plain Text Accounting. hledger-ui added in v0.9 (2011), inspired by ledger's UI. Evolved with Haskell ecosystem (stack/cabal); v1.33+ adds watch mode, better colours.

SEE ALSO

hledger(1), hledger-balance(1), hledger-register(1), ledger(1)

Copied to clipboard