diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -7,12 +7,12 @@
 
 Breaking changes
 
-Fixes
-
 Features
 
 Improvements
 
+Fixes
+
 Docs
 
 API
@@ -21,13 +21,35 @@
 User-visible changes in hledger-ui.
 See also the hledger changelog.
 
+
+# 1.34 2024-06-01
+
+Features
+
+- You can now get a quick list of example command lines by running with `--tldr` (or just `--tl`).
+  For best appearance, install the [`tldr`][tldr] client, though it's not required.
+
+Improvements
+
+- The general flags in `--help` have been updated and grouped,
+  consistent with hledger.
+
+- When built with the `ghcdebug` flag and started with `--debug=-1`,
+  hledger-ui can be controlled by [ghc-debug] clients like
+  ghc-debug-brick or a ghc-debug query script, for analysing
+  memory/profile info.
+
+[tldr]: https://tldr.sh
+[ghc-debug]: https://gitlab.haskell.org/ghc/ghc-debug
+
+
 # 1.33.1 2024-05-02
 
 - Require vty-windows-0.2.0.2+ to avoid display problems in recent
   MS Terminal on Windows.
 
-- process >=1.6.19.0 seems not strictly needed and is no longer required,
-  improving installability.
+- We no longer require process >=1.6.19.0, as it hurt installability
+  and seems not strictly needed.
   [#2149]
 
 [#2149]: https://github.com/simonmichael/hledger/issues/2149
diff --git a/Hledger/UI/ErrorScreen.hs b/Hledger/UI/ErrorScreen.hs
--- a/Hledger/UI/ErrorScreen.hs
+++ b/Hledger/UI/ErrorScreen.hs
@@ -188,8 +188,8 @@
   | ui^.ignore_assertions = ui
   | otherwise =
     case journalCheckBalanceAssertions j of
-      Nothing  -> ui
-      Just err ->
+      Right () -> ui
+      Left err ->
         case ui of
           UIState{aScreen=ES sst} -> ui{aScreen=ES sst{_essError=err}}
           _                        -> pushScreen (esNew err) ui
diff --git a/Hledger/UI/Main.hs b/Hledger/UI/Main.hs
--- a/Hledger/UI/Main.hs
+++ b/Hledger/UI/Main.hs
@@ -58,7 +58,9 @@
 
 
 hledgerUiMain :: IO ()
-hledgerUiMain = withProgName "hledger-ui.log" $ do  -- force Hledger.Utils.Debug.* to log to hledger-ui.log
+hledgerUiMain = withGhcDebug' $ withProgName "hledger-ui.log" $ do  -- force Hledger.Utils.Debug.* to log to hledger-ui.log
+  when (ghcDebugMode == GDPauseAtStart) $ ghcDebugPause'
+
   traceLogAtIO 1 "\n\n\n\n==== hledger-ui start"
   dbg1IO "args" progArgs
   dbg1IO "debugLevel" debugLevel
@@ -73,12 +75,15 @@
   let copts' = copts{inputopts_=iopts{forecast_=forecast_ iopts <|> Just nulldatespan}}
 
   case True of
-    _ | boolopt "help"    rawopts -> pager (showModeUsage uimode)
+    _ | boolopt "help"    rawopts -> pager $ showModeUsage uimode ++ "\n"
+    _ | boolopt "tldr"    rawopts -> runTldrForPage "hledger-ui"
     _ | boolopt "info"    rawopts -> runInfoForTopic "hledger-ui" Nothing
     _ | boolopt "man"     rawopts -> runManForTopic  "hledger-ui" Nothing
     _ | boolopt "version" rawopts -> putStrLn prognameandversion
     -- _ | boolopt "binary-filename" rawopts -> putStrLn (binaryfilename progname)
     _                                         -> withJournalDo copts' (runBrickUi opts)
+
+  when (ghcDebugMode == GDPauseAtEnd) $ ghcDebugPause'
 
 runBrickUi :: UIOpts -> Journal -> IO ()
 runBrickUi uopts0@UIOpts{uoCliOpts=copts@CliOpts{inputopts_=_iopts,reportspec_=rspec@ReportSpec{_rsReportOpts=ropts}}} j =
diff --git a/Hledger/UI/UIOptions.hs b/Hledger/UI/UIOptions.hs
--- a/Hledger/UI/UIOptions.hs
+++ b/Hledger/UI/UIOptions.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE CPP #-}
+{-# LANGUAGE TemplateHaskell #-}
 {-|
 
 -}
@@ -10,6 +11,7 @@
 import Data.List (intercalate)
 import qualified Data.Map as M
 import Data.Maybe (fromMaybe)
+import GitHash (tGitInfoCwdTry)
 import Lens.Micro (set)
 import System.Environment (getArgs)
 
@@ -29,9 +31,21 @@
 progname :: ProgramName
 progname = "hledger-ui"
 
-prognameandversion :: VersionString
-prognameandversion = versionString progname packageversion
+-- | Generate the version string for this program.
+-- The template haskell call is here rather than in Hledger.Cli.Version to avoid wasteful recompilation.
+prognameandversion :: String
+prognameandversion =
+  versionStringWith
+  $$tGitInfoCwdTry
+#ifdef GHCDEBUG
+  True
+#else
+  False
+#endif
+  progname
+  packageversion
 
+
 uiflags = [
   -- flagNone ["debug-ui"] (setboolopt "rules-file") "run with no terminal output, showing console"
    flagNone ["watch","w"] (setboolopt "watch") "watch for data and date changes and reload automatically"
@@ -55,22 +69,23 @@
   -- ,flagNone ["no-elide"] (setboolopt "no-elide") "don't compress empty parent accounts on one line"
 
 --uimode :: Mode RawOpts
-uimode =  (mode "hledger-ui" (setopt "command" "ui" def)
-            "browse accounts, postings and entries in a full-window TUI"
-            (argsFlag "[--cash|--bs|--is|--all|--register=ACCT] [QUERY]") []){
-              modeGroupFlags = Group {
-                                groupUnnamed = uiflags
-                               ,groupHidden = hiddenflags
-                                 ++
-                                 [flagNone ["future"] (setboolopt "forecast") "old flag, use --forecast instead"
-                                 ,flagNone ["menu"] (setboolopt "menu") "old flag, menu screen is now the default"
-                                 ]
-                               ,groupNamed = [(generalflagsgroup1)]
-                               }
-             ,modeHelpSuffix=[
-                  -- "Reads your ~/.hledger.journal file, or another specified by $LEDGER_FILE or -f, and starts the full-window TUI."
-                 ]
-           }
+uimode =
+  (mode "hledger-ui" (setopt "command" "ui" def)
+    "browse accounts, postings and entries in a full-window TUI"
+    (argsFlag "[--cash|--bs|--is|--all|--register=ACCT] [QUERY]") [])
+  {modeGroupFlags = Group {
+       groupUnnamed = uiflags
+      ,groupHidden = hiddenflags
+        ++
+        [flagNone ["future"] (setboolopt "forecast") "old flag, use --forecast instead"
+        ,flagNone ["menu"] (setboolopt "menu") "old flag, menu screen is now the default"
+        ]
+      ,groupNamed = mkgeneralflagsgroups1 helpflags
+      }
+  ,modeHelpSuffix=[
+    -- "Reads your ~/.hledger.journal file, or another specified by $LEDGER_FILE or -f, and starts the full-window TUI."
+  ]
+  }
 
 -- hledger-ui options, used in hledger-ui and above
 data UIOpts = UIOpts
diff --git a/hledger-ui.1 b/hledger-ui.1
--- a/hledger-ui.1
+++ b/hledger-ui.1
@@ -1,18 +1,23 @@
 
-.TH "HLEDGER\-UI" "1" "May 2024" "hledger-ui-1.33.1 " "hledger User Manuals"
+.TH "HLEDGER\-UI" "1" "June 2024" "hledger-ui-1.34 " "hledger User Manuals"
 
 
 
 .SH NAME
-hledger\-ui \- robust, friendly plain text accounting (TUI version)
+hledger\-ui \- terminal interface (TUI) for \f[CR]hledger\f[R], a
+robust, friendly plain text accounting app.
 .SH SYNOPSIS
 \f[CR]hledger\-ui    [OPTS] [QUERYARGS]\f[R]
 .PD 0
 .P
 .PD
+or
+.PD 0
+.P
+.PD
 \f[CR]hledger ui \-\- [OPTS] [QUERYARGS]\f[R]
 .SH DESCRIPTION
-This manual is for hledger\[aq]s terminal interface, version 1.33.1.
+This manual is for hledger\[aq]s terminal interface, version 1.34.
 See also the hledger manual for common concepts and file formats.
 .PP
 hledger is a robust, user\-friendly, cross\-platform set of programs for
@@ -41,203 +46,110 @@
 transactions, by pressing the F key (or starting with \-\-forecast) to
 enable \[dq]forecast mode\[dq].
 .SH OPTIONS
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-.PP
+Any arguments are interpreted as a hledger query which filters the data.
 hledger\-ui provides the following options:
-.TP
-\f[CR]\-w \-\-watch\f[R]
-watch for data and date changes and reload automatically
-.TP
-\f[CR]\-\-theme=default|terminal|greenterm|dark\f[R]
-use this custom display theme
-.TP
-\f[CR]\-\-menu\f[R]
-start in the menu screen
-.TP
-\f[CR]\-\-cash\f[R]
-start in the cash accounts screen
-.TP
-\f[CR]\-\-bs\f[R]
-start in the balance sheet accounts screen
-.TP
-\f[CR]\-\-is\f[R]
-start in the income statement accounts screen
-.TP
-\f[CR]\-\-all\f[R]
-start in the all accounts screen
-.TP
-\f[CR]\-\-register=ACCTREGEX\f[R]
-start in the (first) matched account\[aq]s register screen
-.TP
-\f[CR]\-\-change\f[R]
-show period balances (changes) at startup instead of historical balances
-.TP
-\f[CR]\-l \-\-flat\f[R]
-show accounts as a flat list (default)
-.TP
-\f[CR]\-t \-\-tree\f[R]
-show accounts as a tree
-.PP
-hledger\-ui also supports many of hledger\[aq]s general options (and the
-hledger manual\[aq]s command line tips also apply here):
-.SS General help options
-.TP
-\f[CR]\-h \-\-help\f[R]
-show general or COMMAND help
-.TP
-\f[CR]\-\-man\f[R]
-show general or COMMAND user manual with man
-.TP
-\f[CR]\-\-info\f[R]
-show general or COMMAND user manual with info
-.TP
-\f[CR]\-\-version\f[R]
-show general or ADDONCMD version
-.TP
-\f[CR]\-\-debug[=N]\f[R]
-show debug output (levels 1\-9, default: 1)
-.SS General input options
-.TP
-\f[CR]\-f FILE \-\-file=FILE\f[R]
-use a different input file.
-For stdin, use \- (default: \f[CR]$LEDGER_FILE\f[R] or
-\f[CR]$HOME/.hledger.journal\f[R])
-.TP
-\f[CR]\-\-rules\-file=RULESFILE\f[R]
-Conversion rules file to use when reading CSV (default: FILE.rules)
-.TP
-\f[CR]\-\-separator=CHAR\f[R]
-Field separator to expect when reading CSV (default: \[aq],\[aq])
-.TP
-\f[CR]\-\-alias=OLD=NEW\f[R]
-rename accounts named OLD to NEW
-.TP
-\f[CR]\-\-pivot FIELDNAME\f[R]
-use some other field or tag for the account name
-.TP
-\f[CR]\-I \-\-ignore\-assertions\f[R]
-disable balance assertion checks (note: does not disable balance
-assignments)
-.TP
-\f[CR]\-s \-\-strict\f[R]
-do extra error checking (check that all posted accounts are declared)
-.SS General reporting options
-.TP
-\f[CR]\-b \-\-begin=DATE\f[R]
-include postings/txns on or after this date (will be adjusted to
-preceding subperiod start when using a report interval)
-.TP
-\f[CR]\-e \-\-end=DATE\f[R]
-include postings/txns before this date (will be adjusted to following
-subperiod end when using a report interval)
-.TP
-\f[CR]\-D \-\-daily\f[R]
-multiperiod/multicolumn report by day
-.TP
-\f[CR]\-W \-\-weekly\f[R]
-multiperiod/multicolumn report by week
-.TP
-\f[CR]\-M \-\-monthly\f[R]
-multiperiod/multicolumn report by month
-.TP
-\f[CR]\-Q \-\-quarterly\f[R]
-multiperiod/multicolumn report by quarter
-.TP
-\f[CR]\-Y \-\-yearly\f[R]
-multiperiod/multicolumn report by year
-.TP
-\f[CR]\-p \-\-period=PERIODEXP\f[R]
-set start date, end date, and/or reporting interval all at once using
-period expressions syntax
-.TP
-\f[CR]\-\-date2\f[R]
-match the secondary date instead (see command help for other effects)
-.TP
-\f[CR]\-\-today=DATE\f[R]
-override today\[aq]s date (affects relative smart dates, for
-tests/examples)
-.TP
-\f[CR]\-U \-\-unmarked\f[R]
-include only unmarked postings/txns (can combine with \-P or \-C)
-.TP
-\f[CR]\-P \-\-pending\f[R]
-include only pending postings/txns
-.TP
-\f[CR]\-C \-\-cleared\f[R]
-include only cleared postings/txns
-.TP
-\f[CR]\-R \-\-real\f[R]
-include only non\-virtual postings
-.TP
-\f[CR]\-NUM \-\-depth=NUM\f[R]
-hide/aggregate accounts or postings more than NUM levels deep
-.TP
-\f[CR]\-E \-\-empty\f[R]
-show items with zero amount, normally hidden (and vice\-versa in
-hledger\-ui/hledger\-web)
-.TP
-\f[CR]\-B \-\-cost\f[R]
-convert amounts to their cost/selling amount at transaction time
-.TP
-\f[CR]\-V \-\-market\f[R]
-convert amounts to their market value in default valuation commodities
-.TP
-\f[CR]\-X \-\-exchange=COMM\f[R]
-convert amounts to their market value in commodity COMM
-.TP
-\f[CR]\-\-value\f[R]
-convert amounts to cost or market value, more flexibly than \-B/\-V/\-X
-.TP
-\f[CR]\-\-infer\-equity\f[R]
-infer conversion equity postings from costs
-.TP
-\f[CR]\-\-infer\-costs\f[R]
-infer costs from conversion equity postings
-.TP
-\f[CR]\-\-infer\-market\-prices\f[R]
-use costs as additional market prices, as if they were P directives
-.TP
-\f[CR]\-\-forecast\f[R]
-generate transactions from periodic rules,
-between the latest recorded txn and 6 months from today,
-or during the specified PERIOD (= is required).
-Auto posting rules will be applied to these transactions as well.
-Also, in hledger\-ui make future\-dated transactions visible.
-.TP
-\f[CR]\-\-auto\f[R]
-generate extra postings by applying auto posting rules to all txns (not
-just forecast txns)
-.TP
-\f[CR]\-\-verbose\-tags\f[R]
-add visible tags indicating transactions or postings which have been
-generated/modified
-.TP
-\f[CR]\-\-commodity\-style\f[R]
-Override the commodity style in the output for the specified commodity.
-For example \[aq]EUR1.000,00\[aq].
-.TP
-\f[CR]\-\-color=WHEN (or \-\-colour=WHEN)\f[R]
-Should color\-supporting commands use ANSI color codes in text output.
-\[aq]auto\[aq] (default): whenever stdout seems to be a
-color\-supporting terminal.
-\[aq]always\[aq] or \[aq]yes\[aq]: always, useful eg when piping output
-into \[aq]less \-R\[aq].
-\[aq]never\[aq] or \[aq]no\[aq]: never.
-A NO_COLOR environment variable overrides this.
-.TP
-\f[CR]\-\-pretty[=WHEN]\f[R]
-Show prettier output, e.g.
-using unicode box\-drawing characters.
-Accepts \[aq]yes\[aq] (the default) or \[aq]no\[aq] (\[aq]y\[aq],
-\[aq]n\[aq], \[aq]always\[aq], \[aq]never\[aq] also work).
-If you provide an argument you must use \[aq]=\[aq], e.g.
-\[aq]\-\-pretty=yes\[aq].
+.IP
+.EX
+Flags:
+  \-w \-\-watch                watch for data and date changes and reload
+                            automatically
+     \-\-theme=THEME          use this custom display theme (default,
+                            greenterm, terminal, dark)
+     \-\-cash                 start in the cash accounts screen
+     \-\-bs                   start in the balance sheet accounts screen
+     \-\-is                   start in the income statement accounts screen
+     \-\-all                  start in the all accounts screen
+     \-\-register=ACCTREGEX   start in the (first matched) account\[aq]s register
+     \-\-change               show period balances (changes) at startup instead
+                            of historical balances
+  \-l \-\-flat                 show accounts as a flat list (default)
+  \-t \-\-tree                 show accounts as a tree
+.EE
 .PP
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
+and also supports many of hledger\[aq]s general options:
+.IP
+.EX
+General input/data transformation flags:
+  \-f \-\-file=FILE            Read data from FILE, or from stdin if \-. Can be
+                            specified more than once. If not specified, reads
+                            from $LEDGER_FILE or $HOME/.hledger.journal.
+     \-\-rules\-file=RULEFILE  Use conversion rules from this file for
+                            converting subsequent CSV/SSV/TSV files. If not
+                            specified, uses FILE.rules for each such FILE.
+     \-\-alias=A=B|/RGX/=RPL  transform account names from A to B, or by
+                            replacing regular expression matches
+     \-\-auto                 generate extra postings by applying auto posting
+                            rules (\[dq]=\[dq]) to all transactions
+     \-\-forecast[=PERIOD]    Generate extra transactions from periodic rules
+                            (\[dq]\[ti]\[dq]), from after the latest ordinary transaction
+                            until 6 months from now. Or, during the specified
+                            PERIOD (the equals is required). Auto posting rules
+                            will also be applied to these transactions. In
+                            hledger\-ui, also make future\-dated transactions
+                            visible at startup.
+  \-I \-\-ignore\-assertions    don\[aq]t check balance assertions by default
+     \-\-infer\-costs          infer conversion equity postings from costs
+     \-\-infer\-equity         infer costs from conversion equity postings
+     \-\-infer\-market\-prices  infer market prices from costs
+     \-\-pivot=TAGNAME        use a different field or tag as account names
+  \-s \-\-strict               do extra error checks (and override \-I)
+     \-\-verbose\-tags         add tags indicating generated/modified data
+
+General output/reporting flags (supported by some commands):
+  \-b \-\-begin=DATE           include postings/transactions on/after this date
+  \-e \-\-end=DATE             include postings/transactions before this date
+                            (with a report interval, will be adjusted to
+                            following subperiod end)
+  \-D \-\-daily                multiperiod report with 1 day interval
+  \-W \-\-weekly               multiperiod report with 1 week interval
+  \-M \-\-monthly              multiperiod report with 1 month interval
+  \-Q \-\-quarterly            multiperiod report with 1 quarter interval
+  \-Y \-\-yearly               multiperiod report with 1 year interval
+  \-p \-\-period=PERIODEXP     set begin date, end date, and/or report interval,
+                            with more flexibility
+     \-\-today=DATE           override today\[aq]s date (affects relative dates)
+     \-\-date2                match/use secondary dates instead (deprecated)
+  \-U \-\-unmarked             include only unmarked postings/transactions
+  \-P \-\-pending              include only pending postings/transactions
+  \-C \-\-cleared              include only cleared postings/transactions
+                            (\-U/\-P/\-C can be combined)
+  \-R \-\-real                 include only non\-virtual postings
+     \-\-depth=NUM            or \-NUM: show only top NUM levels of accounts
+  \-E \-\-empty                Show zero items, which are normally hidden.
+                            In hledger\-ui & hledger\-web, do the opposite.
+  \-B \-\-cost                 show amounts converted to their cost/sale amount
+  \-V \-\-market               Show amounts converted to their value at period
+                            end(s) in their default valuation commodity.
+                            Equivalent to \-\-value=end.
+  \-X \-\-exchange=COMM        Show amounts converted to their value at period
+                            end(s) in the specified commodity.
+                            Equivalent to \-\-value=end,COMM.
+     \-\-value=WHEN[,COMM]    show amounts converted to their value on the
+                            specified date(s) in their default valuation
+                            commodity or a specified commodity. WHEN can be:
+                            \[aq]then\[aq]:     value on transaction dates
+                            \[aq]end\[aq]:      value at period end(s)
+                            \[aq]now\[aq]:      value today
+                            YYYY\-MM\-DD: value on given date
+  \-c \-\-commodity\-style=S    Override a commodity\[aq]s display style.
+                            Eg: \-c \[aq].\[aq] or \-c \[aq]1.000,00 EUR\[aq]
+     \-\-color=YN \-\-colour    Use ANSI color codes in text output? Can be
+                            \[aq]y\[aq]/\[aq]yes\[aq]/\[aq]always\[aq], \[aq]n\[aq]/\[aq]no\[aq]/\[aq]never\[aq] or \[aq]auto\[aq].
+     \-\-pretty[=YN]          Use box\-drawing characters in text output? Can be
+                            \[aq]y\[aq]/\[aq]yes\[aq] or \[aq]n\[aq]/\[aq]no\[aq].
+                            If YN is specified, the equals is required.
+     \-\-debug=[1\-9]          show this level of debug output (default: 1)
+
+General help flags:
+  \-h \-\-help                 show command line help
+     \-\-tldr                 show command examples with tldr
+     \-\-info                 show the manual with info
+     \-\-man                  show the manual with man
+     \-\-version              show version information
+.EE
 .PP
-Some reporting options can also be written as query arguments.
+With hledger\-ui, the \f[CR]\-\-debug\f[R] option sends debug output to
+a \f[CR]hledger\-ui.log\f[R] file in the current directory.
 .SH MOUSE
 In most modern terminals, you can navigate through the screens with a
 mouse or touchpad:
@@ -375,32 +287,32 @@
 You can also use a command line flag to specific a different startup
 screen (\f[CR]\-\-cs\f[R], \f[CR]\-\-bs\f[R], \f[CR]\-\-is\f[R],
 \f[CR]\-\-all\f[R], or \f[CR]\-\-register=ACCT\f[R]).
-.SS Menu
+.SS Menu screen
 This is the top\-most screen.
 From here you can navigate to several screens listing accounts of
 various types.
 Note some of these may not show anything until you have configured
 account types.
-.SS Cash accounts
+.SS Cash accounts screen
 This screen shows \[dq]cash\[dq] (ie, liquid asset) accounts (like
 \f[CR]hledger balancesheet type:c\f[R]).
 It always shows balances (historical ending balances on the date shown
 in the title line).
-.SS Balance sheet accounts
+.SS Balance sheet accounts screen
 This screen shows asset, liability and equity accounts (like
 \f[CR]hledger balancesheetequity\f[R]).
 It always shows balances.
-.SS Income statement accounts
+.SS Income statement accounts screen
 This screen shows revenue and expense accounts (like
 \f[CR]hledger incomestatement\f[R]).
 It always shows changes (balance changes in the period shown in the
 title line).
-.SS All accounts
+.SS All accounts screen
 This screen shows all accounts in your journal (unless filtered by a
 query; like \f[CR]hledger balance\f[R]).
 It shows balances by default; you can toggle showing changes with the
 \f[CR]H\f[R] key.
-.SS Register
+.SS Register screen
 This screen shows the transactions affecting a particular account.
 Each line represents one transaction, and shows:
 .IP \[bu] 2
@@ -454,7 +366,7 @@
 unlike command\-line hledger).
 .PP
 Press \f[CR]RIGHT\f[R] to view the selected transaction in detail.
-.SS Transaction
+.SS Transaction screen
 This screen shows a single transaction, as a general journal entry,
 similar to hledger\[aq]s print command and journal format
 (hledger_journal(5)).
@@ -485,14 +397,13 @@
 editor, returning to hledger\-ui \- press \f[CR]g\f[R] to reload the
 file (or use \f[CR]\-w/\-\-watch\f[R] mode) \- press \f[CR]LEFT\f[R]
 then \f[CR]RIGHT\f[R] to exit and re\-enter the transaction screen.
-.SS Error
+.SS Error screen
 This screen will appear if there is a problem, such as a parse error,
 when you press g to reload.
 Once you have fixed the problem, press g again to reload and resume
 normal operation.
 (Or, you can press escape to cancel the reload attempt.)
-.SH TIPS
-.SS Watch mode
+.SH WATCH MODE
 One of hledger\-ui\[aq]s best features is the auto\-reloading
 \f[CR]\-w/\-\-watch\f[R] mode.
 With this flag, it will update the display automatically whenever
@@ -532,12 +443,6 @@
 .PP
 If you are viewing files mounted from another machine, the system clocks
 on both machines should be roughly in agreement.
-.SS Debug output
-You can add \f[CR]\-\-debug[=N]\f[R] to the command line to log debug
-output.
-This will be logged to the file \f[CR]hledger\-ui.log\f[R] in the
-current directory.
-N ranges from 1 (least output, the default) to 9 (maximum output).
 .SH ENVIRONMENT
 \f[B]COLUMNS\f[R] The screen width to use.
 Default: the full terminal width.
diff --git a/hledger-ui.cabal b/hledger-ui.cabal
--- a/hledger-ui.cabal
+++ b/hledger-ui.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           hledger-ui
-version:        1.33.1
+version:        1.34
 synopsis:       Terminal interface for the hledger accounting system
 description:    A simple terminal user interface for the hledger accounting system.
                 It can be a more convenient way to browse your accounts than the CLI.
@@ -39,6 +39,11 @@
   type: git
   location: https://github.com/simonmichael/hledger
 
+flag ghcdebug
+  description: Build with support for attaching a ghc-debug client
+  manual: True
+  default: False
+
 flag threaded
   description: Build with support for multithreaded execution
   manual: False
@@ -68,7 +73,7 @@
   hs-source-dirs:
       ./
   ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures -Wno-orphans -Wno-type-defaults -Wno-unused-do-bind
-  cpp-options: -DVERSION="1.33.1" -DVERSION="1.33.1"
+  cpp-options: -DVERSION="1.34" -DVERSION="1.34"
   build-depends:
       ansi-terminal >=0.9
     , async
@@ -82,8 +87,9 @@
     , extra >=1.6.3
     , filepath
     , fsnotify ==0.4.*
-    , hledger >=1.33.1 && <1.34
-    , hledger-lib >=1.33.1 && <1.34
+    , githash >=0.1.6.2
+    , hledger ==1.34.*
+    , hledger-lib ==1.34.*
     , megaparsec >=7.0.0 && <9.7
     , microlens >=0.4
     , microlens-platform >=0.2.3.1
@@ -99,6 +105,10 @@
     , vty >=6.1 && <6.3
     , vty-crossplatform >=0.4.0.0 && <0.5.0.0
   default-language: Haskell2010
+  if (flag(ghcdebug))
+    cpp-options: -DGHCDEBUG
+    build-depends:
+        ghc-debug-stub >=0.6.0.0 && <0.7
   if os(windows)
     build-depends:
         vty-windows >=0.2.0.1 && <0.3.0.0
@@ -113,10 +123,14 @@
   hs-source-dirs:
       app
   ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures -Wno-orphans -Wno-type-defaults -Wno-unused-do-bind
-  cpp-options: -DVERSION="1.33.1"
+  cpp-options: -DVERSION="1.34"
   build-depends:
       base >=4.14 && <4.20
     , hledger-ui
   default-language: Haskell2010
+  if (flag(ghcdebug))
+    cpp-options: -DGHCDEBUG
+    build-depends:
+        ghc-debug-stub >=0.6.0.0 && <0.7
   if flag(threaded)
     ghc-options: -threaded -with-rtsopts=-T
diff --git a/hledger-ui.info b/hledger-ui.info
--- a/hledger-ui.info
+++ b/hledger-ui.info
@@ -11,12 +11,14 @@
 hledger-ui(1)
 *************
 
-hledger-ui - robust, friendly plain text accounting (TUI version)
+hledger-ui - terminal interface (TUI) for 'hledger', a robust, friendly
+plain text accounting app.
 
    'hledger-ui [OPTS] [QUERYARGS]'
+or
 'hledger ui -- [OPTS] [QUERYARGS]'
 
-   This manual is for hledger's terminal interface, version 1.33.1.  See
+   This manual is for hledger's terminal interface, version 1.34.  See
 also the hledger manual for common concepts and file formats.
 
    hledger is a robust, user-friendly, cross-platform set of programs
@@ -48,7 +50,7 @@
 * MOUSE::
 * KEYS::
 * SCREENS::
-* TIPS::
+* WATCH MODE::
 * ENVIRONMENT::
 * BUGS::
 
@@ -58,228 +60,106 @@
 1 OPTIONS
 *********
 
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-   hledger-ui provides the following options:
-
-'-w --watch'
-
-     watch for data and date changes and reload automatically
-'--theme=default|terminal|greenterm|dark'
-
-     use this custom display theme
-'--menu'
-
-     start in the menu screen
-'--cash'
-
-     start in the cash accounts screen
-'--bs'
-
-     start in the balance sheet accounts screen
-'--is'
-
-     start in the income statement accounts screen
-'--all'
-
-     start in the all accounts screen
-'--register=ACCTREGEX'
-
-     start in the (first) matched account's register screen
-'--change'
-
-     show period balances (changes) at startup instead of historical
-     balances
-'-l --flat'
-
-     show accounts as a flat list (default)
-'-t --tree'
-
-     show accounts as a tree
-
-   hledger-ui also supports many of hledger's general options (and the
-hledger manual's command line tips also apply here):
-
-* Menu:
-
-* General help options::
-* General input options::
-* General reporting options::
-
-
-File: hledger-ui.info,  Node: General help options,  Next: General input options,  Up: OPTIONS
-
-1.1 General help options
-========================
-
-'-h --help'
-
-     show general or COMMAND help
-'--man'
-
-     show general or COMMAND user manual with man
-'--info'
-
-     show general or COMMAND user manual with info
-'--version'
-
-     show general or ADDONCMD version
-'--debug[=N]'
-
-     show debug output (levels 1-9, default: 1)
-
-
-File: hledger-ui.info,  Node: General input options,  Next: General reporting options,  Prev: General help options,  Up: OPTIONS
-
-1.2 General input options
-=========================
-
-'-f FILE --file=FILE'
-
-     use a different input file.  For stdin, use - (default:
-     '$LEDGER_FILE' or '$HOME/.hledger.journal')
-'--rules-file=RULESFILE'
-
-     Conversion rules file to use when reading CSV (default: FILE.rules)
-'--separator=CHAR'
-
-     Field separator to expect when reading CSV (default: ',')
-'--alias=OLD=NEW'
-
-     rename accounts named OLD to NEW
-'--pivot FIELDNAME'
-
-     use some other field or tag for the account name
-'-I --ignore-assertions'
-
-     disable balance assertion checks (note: does not disable balance
-     assignments)
-'-s --strict'
-
-     do extra error checking (check that all posted accounts are
-     declared)
-
-
-File: hledger-ui.info,  Node: General reporting options,  Prev: General input options,  Up: OPTIONS
-
-1.3 General reporting options
-=============================
-
-'-b --begin=DATE'
-
-     include postings/txns on or after this date (will be adjusted to
-     preceding subperiod start when using a report interval)
-'-e --end=DATE'
-
-     include postings/txns before this date (will be adjusted to
-     following subperiod end when using a report interval)
-'-D --daily'
-
-     multiperiod/multicolumn report by day
-'-W --weekly'
-
-     multiperiod/multicolumn report by week
-'-M --monthly'
-
-     multiperiod/multicolumn report by month
-'-Q --quarterly'
-
-     multiperiod/multicolumn report by quarter
-'-Y --yearly'
-
-     multiperiod/multicolumn report by year
-'-p --period=PERIODEXP'
-
-     set start date, end date, and/or reporting interval all at once
-     using period expressions syntax
-'--date2'
-
-     match the secondary date instead (see command help for other
-     effects)
-'--today=DATE'
-
-     override today's date (affects relative smart dates, for
-     tests/examples)
-'-U --unmarked'
-
-     include only unmarked postings/txns (can combine with -P or -C)
-'-P --pending'
-
-     include only pending postings/txns
-'-C --cleared'
-
-     include only cleared postings/txns
-'-R --real'
-
-     include only non-virtual postings
-'-NUM --depth=NUM'
-
-     hide/aggregate accounts or postings more than NUM levels deep
-'-E --empty'
-
-     show items with zero amount, normally hidden (and vice-versa in
-     hledger-ui/hledger-web)
-'-B --cost'
-
-     convert amounts to their cost/selling amount at transaction time
-'-V --market'
-
-     convert amounts to their market value in default valuation
-     commodities
-'-X --exchange=COMM'
-
-     convert amounts to their market value in commodity COMM
-'--value'
-
-     convert amounts to cost or market value, more flexibly than
-     -B/-V/-X
-'--infer-equity'
-
-     infer conversion equity postings from costs
-'--infer-costs'
-
-     infer costs from conversion equity postings
-'--infer-market-prices'
-
-     use costs as additional market prices, as if they were P directives
-'--forecast'
-
-     generate transactions from periodic rules, between the latest
-     recorded txn and 6 months from today, or during the specified
-     PERIOD (= is required).  Auto posting rules will be applied to
-     these transactions as well.  Also, in hledger-ui make future-dated
-     transactions visible.
-'--auto'
-
-     generate extra postings by applying auto posting rules to all txns
-     (not just forecast txns)
-'--verbose-tags'
+Any arguments are interpreted as a hledger query which filters the data.
+hledger-ui provides the following options:
 
-     add visible tags indicating transactions or postings which have
-     been generated/modified
-'--commodity-style'
+Flags:
+  -w --watch                watch for data and date changes and reload
+                            automatically
+     --theme=THEME          use this custom display theme (default,
+                            greenterm, terminal, dark)
+     --cash                 start in the cash accounts screen
+     --bs                   start in the balance sheet accounts screen
+     --is                   start in the income statement accounts screen
+     --all                  start in the all accounts screen
+     --register=ACCTREGEX   start in the (first matched) account's register
+     --change               show period balances (changes) at startup instead
+                            of historical balances
+  -l --flat                 show accounts as a flat list (default)
+  -t --tree                 show accounts as a tree
 
-     Override the commodity style in the output for the specified
-     commodity.  For example 'EUR1.000,00'.
-'--color=WHEN (or --colour=WHEN)'
+   and also supports many of hledger's general options:
 
-     Should color-supporting commands use ANSI color codes in text
-     output.  'auto' (default): whenever stdout seems to be a
-     color-supporting terminal.  'always' or 'yes': always, useful eg
-     when piping output into 'less -R'. 'never' or 'no': never.  A
-     NO_COLOR environment variable overrides this.
-'--pretty[=WHEN]'
+General input/data transformation flags:
+  -f --file=FILE            Read data from FILE, or from stdin if -. Can be
+                            specified more than once. If not specified, reads
+                            from $LEDGER_FILE or $HOME/.hledger.journal.
+     --rules-file=RULEFILE  Use conversion rules from this file for
+                            converting subsequent CSV/SSV/TSV files. If not
+                            specified, uses FILE.rules for each such FILE.
+     --alias=A=B|/RGX/=RPL  transform account names from A to B, or by
+                            replacing regular expression matches
+     --auto                 generate extra postings by applying auto posting
+                            rules ("=") to all transactions
+     --forecast[=PERIOD]    Generate extra transactions from periodic rules
+                            ("~"), from after the latest ordinary transaction
+                            until 6 months from now. Or, during the specified
+                            PERIOD (the equals is required). Auto posting rules
+                            will also be applied to these transactions. In
+                            hledger-ui, also make future-dated transactions
+                            visible at startup.
+  -I --ignore-assertions    don't check balance assertions by default
+     --infer-costs          infer conversion equity postings from costs
+     --infer-equity         infer costs from conversion equity postings
+     --infer-market-prices  infer market prices from costs
+     --pivot=TAGNAME        use a different field or tag as account names
+  -s --strict               do extra error checks (and override -I)
+     --verbose-tags         add tags indicating generated/modified data
 
-     Show prettier output, e.g.  using unicode box-drawing characters.
-     Accepts 'yes' (the default) or 'no' ('y', 'n', 'always', 'never'
-     also work).  If you provide an argument you must use '=', e.g.
-     '-pretty=yes'.
+General output/reporting flags (supported by some commands):
+  -b --begin=DATE           include postings/transactions on/after this date
+  -e --end=DATE             include postings/transactions before this date
+                            (with a report interval, will be adjusted to
+                            following subperiod end)
+  -D --daily                multiperiod report with 1 day interval
+  -W --weekly               multiperiod report with 1 week interval
+  -M --monthly              multiperiod report with 1 month interval
+  -Q --quarterly            multiperiod report with 1 quarter interval
+  -Y --yearly               multiperiod report with 1 year interval
+  -p --period=PERIODEXP     set begin date, end date, and/or report interval,
+                            with more flexibility
+     --today=DATE           override today's date (affects relative dates)
+     --date2                match/use secondary dates instead (deprecated)
+  -U --unmarked             include only unmarked postings/transactions
+  -P --pending              include only pending postings/transactions
+  -C --cleared              include only cleared postings/transactions
+                            (-U/-P/-C can be combined)
+  -R --real                 include only non-virtual postings
+     --depth=NUM            or -NUM: show only top NUM levels of accounts
+  -E --empty                Show zero items, which are normally hidden.
+                            In hledger-ui & hledger-web, do the opposite.
+  -B --cost                 show amounts converted to their cost/sale amount
+  -V --market               Show amounts converted to their value at period
+                            end(s) in their default valuation commodity.
+                            Equivalent to --value=end.
+  -X --exchange=COMM        Show amounts converted to their value at period
+                            end(s) in the specified commodity.
+                            Equivalent to --value=end,COMM.
+     --value=WHEN[,COMM]    show amounts converted to their value on the
+                            specified date(s) in their default valuation
+                            commodity or a specified commodity. WHEN can be:
+                            'then':     value on transaction dates
+                            'end':      value at period end(s)
+                            'now':      value today
+                            YYYY-MM-DD: value on given date
+  -c --commodity-style=S    Override a commodity's display style.
+                            Eg: -c '.' or -c '1.000,00 EUR'
+     --color=YN --colour    Use ANSI color codes in text output? Can be
+                            'y'/'yes'/'always', 'n'/'no'/'never' or 'auto'.
+     --pretty[=YN]          Use box-drawing characters in text output? Can be
+                            'y'/'yes' or 'n'/'no'.
+                            If YN is specified, the equals is required.
+     --debug=[1-9]          show this level of debug output (default: 1)
 
-   When a reporting option appears more than once in the command line,
-the last one takes precedence.
+General help flags:
+  -h --help                 show command line help
+     --tldr                 show command examples with tldr
+     --info                 show the manual with info
+     --man                  show the manual with man
+     --version              show version information
 
-   Some reporting options can also be written as query arguments.
+   With hledger-ui, the '--debug' option sends debug output to a
+'hledger-ui.log' file in the current directory.
 
 
 File: hledger-ui.info,  Node: MOUSE,  Next: KEYS,  Prev: OPTIONS,  Up: Top
@@ -399,7 +279,7 @@
    Additional screen-specific keys are described below.
 
 
-File: hledger-ui.info,  Node: SCREENS,  Next: TIPS,  Prev: KEYS,  Up: Top
+File: hledger-ui.info,  Node: SCREENS,  Next: WATCH MODE,  Prev: KEYS,  Up: Top
 
 4 SCREENS
 *********
@@ -415,69 +295,69 @@
 
 * Menu:
 
-* Menu::
-* Cash accounts::
-* Balance sheet accounts::
-* Income statement accounts::
-* All accounts::
-* Register::
-* Transaction::
-* Error::
+* Menu screen::
+* Cash accounts screen::
+* Balance sheet accounts screen::
+* Income statement accounts screen::
+* All accounts screen::
+* Register screen::
+* Transaction screen::
+* Error screen::
 
 
-File: hledger-ui.info,  Node: Menu,  Next: Cash accounts,  Up: SCREENS
+File: hledger-ui.info,  Node: Menu screen,  Next: Cash accounts screen,  Up: SCREENS
 
-4.1 Menu
-========
+4.1 Menu screen
+===============
 
 This is the top-most screen.  From here you can navigate to several
 screens listing accounts of various types.  Note some of these may not
 show anything until you have configured account types.
 
 
-File: hledger-ui.info,  Node: Cash accounts,  Next: Balance sheet accounts,  Prev: Menu,  Up: SCREENS
+File: hledger-ui.info,  Node: Cash accounts screen,  Next: Balance sheet accounts screen,  Prev: Menu screen,  Up: SCREENS
 
-4.2 Cash accounts
-=================
+4.2 Cash accounts screen
+========================
 
 This screen shows "cash" (ie, liquid asset) accounts (like 'hledger
 balancesheet type:c').  It always shows balances (historical ending
 balances on the date shown in the title line).
 
 
-File: hledger-ui.info,  Node: Balance sheet accounts,  Next: Income statement accounts,  Prev: Cash accounts,  Up: SCREENS
+File: hledger-ui.info,  Node: Balance sheet accounts screen,  Next: Income statement accounts screen,  Prev: Cash accounts screen,  Up: SCREENS
 
-4.3 Balance sheet accounts
-==========================
+4.3 Balance sheet accounts screen
+=================================
 
 This screen shows asset, liability and equity accounts (like 'hledger
 balancesheetequity').  It always shows balances.
 
 
-File: hledger-ui.info,  Node: Income statement accounts,  Next: All accounts,  Prev: Balance sheet accounts,  Up: SCREENS
+File: hledger-ui.info,  Node: Income statement accounts screen,  Next: All accounts screen,  Prev: Balance sheet accounts screen,  Up: SCREENS
 
-4.4 Income statement accounts
-=============================
+4.4 Income statement accounts screen
+====================================
 
 This screen shows revenue and expense accounts (like 'hledger
 incomestatement').  It always shows changes (balance changes in the
 period shown in the title line).
 
 
-File: hledger-ui.info,  Node: All accounts,  Next: Register,  Prev: Income statement accounts,  Up: SCREENS
+File: hledger-ui.info,  Node: All accounts screen,  Next: Register screen,  Prev: Income statement accounts screen,  Up: SCREENS
 
-4.5 All accounts
-================
+4.5 All accounts screen
+=======================
 
 This screen shows all accounts in your journal (unless filtered by a
 query; like 'hledger balance').  It shows balances by default; you can
 toggle showing changes with the 'H' key.
 
 
-File: hledger-ui.info,  Node: Register,  Next: Transaction,  Prev: All accounts,  Up: SCREENS
+File: hledger-ui.info,  Node: Register screen,  Next: Transaction screen,  Prev: All accounts screen,  Up: SCREENS
 
-4.6 Register
-============
+4.6 Register screen
+===================
 
 This screen shows the transactions affecting a particular account.  Each
 line represents one transaction, and shows:
@@ -529,10 +409,10 @@
    Press 'RIGHT' to view the selected transaction in detail.
 
 
-File: hledger-ui.info,  Node: Transaction,  Next: Error,  Prev: Register,  Up: SCREENS
+File: hledger-ui.info,  Node: Transaction screen,  Next: Error screen,  Prev: Register screen,  Up: SCREENS
 
-4.7 Transaction
-===============
+4.7 Transaction screen
+======================
 
 This screen shows a single transaction, as a general journal entry,
 similar to hledger's print command and journal format
@@ -564,10 +444,10 @@
 to exit and re-enter the transaction screen.
 
 
-File: hledger-ui.info,  Node: Error,  Prev: Transaction,  Up: SCREENS
+File: hledger-ui.info,  Node: Error screen,  Prev: Transaction screen,  Up: SCREENS
 
-4.8 Error
-=========
+4.8 Error screen
+================
 
 This screen will appear if there is a problem, such as a parse error,
 when you press g to reload.  Once you have fixed the problem, press g
@@ -575,21 +455,10 @@
 to cancel the reload attempt.)
 
 
-File: hledger-ui.info,  Node: TIPS,  Next: ENVIRONMENT,  Prev: SCREENS,  Up: Top
-
-5 TIPS
-******
-
-* Menu:
-
-* Watch mode::
-* Debug output::
-
-
-File: hledger-ui.info,  Node: Watch mode,  Next: Debug output,  Up: TIPS
+File: hledger-ui.info,  Node: WATCH MODE,  Next: ENVIRONMENT,  Prev: SCREENS,  Up: Top
 
-5.1 Watch mode
-==============
+5 WATCH MODE
+************
 
 One of hledger-ui's best features is the auto-reloading '-w/--watch'
 mode.  With this flag, it will update the display automatically whenever
@@ -626,17 +495,7 @@
 clocks on both machines should be roughly in agreement.
 
 
-File: hledger-ui.info,  Node: Debug output,  Prev: Watch mode,  Up: TIPS
-
-5.2 Debug output
-================
-
-You can add '--debug[=N]' to the command line to log debug output.  This
-will be logged to the file 'hledger-ui.log' in the current directory.  N
-ranges from 1 (least output, the default) to 9 (maximum output).
-
-
-File: hledger-ui.info,  Node: ENVIRONMENT,  Next: BUGS,  Prev: TIPS,  Up: Top
+File: hledger-ui.info,  Node: ENVIRONMENT,  Next: BUGS,  Prev: WATCH MODE,  Up: Top
 
 6 ENVIRONMENT
 *************
@@ -671,46 +530,36 @@
 
 Tag Table:
 Node: Top221
-Node: OPTIONS1830
-Ref: #options1928
-Node: General help options2956
-Ref: #general-help-options3105
-Node: General input options3387
-Ref: #general-input-options3572
-Node: General reporting options4229
-Ref: #general-reporting-options4393
-Node: MOUSE7783
-Ref: #mouse7878
-Node: KEYS8115
-Ref: #keys8208
-Node: SCREENS12863
-Ref: #screens12961
-Node: Menu13541
-Ref: #menu13634
-Node: Cash accounts13829
-Ref: #cash-accounts13971
-Node: Balance sheet accounts14155
-Ref: #balance-sheet-accounts14336
-Node: Income statement accounts14456
-Ref: #income-statement-accounts14642
-Node: All accounts14806
-Ref: #all-accounts14952
-Node: Register15134
-Ref: #register15258
-Node: Transaction17542
-Ref: #transaction17665
-Node: Error19082
-Ref: #error19176
-Node: TIPS19420
-Ref: #tips19519
-Node: Watch mode19561
-Ref: #watch-mode19668
-Node: Debug output21127
-Ref: #debug-output21238
-Node: ENVIRONMENT21450
-Ref: #environment21560
-Node: BUGS21751
-Ref: #bugs21834
+Node: OPTIONS1870
+Ref: #options1968
+Node: MOUSE8148
+Ref: #mouse8243
+Node: KEYS8480
+Ref: #keys8573
+Node: SCREENS13228
+Ref: #screens13332
+Node: Menu screen13968
+Ref: #menu-screen14089
+Node: Cash accounts screen14284
+Ref: #cash-accounts-screen14461
+Node: Balance sheet accounts screen14645
+Ref: #balance-sheet-accounts-screen14861
+Node: Income statement accounts screen14981
+Ref: #income-statement-accounts-screen15202
+Node: All accounts screen15366
+Ref: #all-accounts-screen15547
+Node: Register screen15729
+Ref: #register-screen15888
+Node: Transaction screen18172
+Ref: #transaction-screen18330
+Node: Error screen19747
+Ref: #error-screen19869
+Node: WATCH MODE20113
+Ref: #watch-mode20230
+Node: ENVIRONMENT21689
+Ref: #environment21805
+Node: BUGS21996
+Ref: #bugs22079
 
 End Tag Table
 
diff --git a/hledger-ui.txt b/hledger-ui.txt
--- a/hledger-ui.txt
+++ b/hledger-ui.txt
@@ -2,231 +2,142 @@
 HLEDGER-UI(1)                hledger User Manuals                HLEDGER-UI(1)
 
 NAME
-       hledger-ui - robust, friendly plain text accounting (TUI version)
+       hledger-ui  -  terminal interface (TUI) for hledger, a robust, friendly
+       plain text accounting app.
 
 SYNOPSIS
        hledger-ui    [OPTS] [QUERYARGS]
+       or
        hledger ui -- [OPTS] [QUERYARGS]
 
 DESCRIPTION
-       This  manual  is for hledger's terminal interface, version 1.33.1.  See
+       This manual is for hledger's terminal  interface,  version  1.34.   See
        also the hledger manual for common concepts and file formats.
 
-       hledger is a robust, user-friendly, cross-platform set of programs  for
-       tracking  money,  time,  or any other commodity, using double-entry ac-
-       counting and a simple, editable file format.  hledger  is  inspired  by
-       and  largely  compatible  with  ledger(1), and largely interconvertible
+       hledger  is a robust, user-friendly, cross-platform set of programs for
+       tracking money, time, or any other commodity,  using  double-entry  ac-
+       counting  and  a  simple, editable file format.  hledger is inspired by
+       and largely compatible with  ledger(1),  and  largely  interconvertible
        with beancount(1).
 
-       hledger-ui is hledger's  terminal  interface,  providing  an  efficient
-       full-window  text  UI  for  viewing accounts and transactions, and some
-       limited data entry  capability.   It  is  easier  than  hledger's  com-
+       hledger-ui  is  hledger's  terminal  interface,  providing an efficient
+       full-window text UI for viewing accounts  and  transactions,  and  some
+       limited  data  entry  capability.   It  is  easier  than hledger's com-
        mand-line interface, and sometimes quicker and more convenient than the
        web interface.
 
-       Like  hledger,  it reads from (and appends to) a journal file specified
-       by   the    LEDGER_FILE    environment    variable    (defaulting    to
-       $HOME/.hledger.journal);  or you can specify files with -f options.  It
-       can also read timeclock files, timedot files, or any  CSV/SSV/TSV  file
+       Like hledger, it reads from (and appends to) a journal  file  specified
+       by    the    LEDGER_FILE    environment    variable    (defaulting   to
+       $HOME/.hledger.journal); or you can specify files with -f options.   It
+       can  also  read timeclock files, timedot files, or any CSV/SSV/TSV file
        with a date field.  (See hledger(1) -> Input for details.)
 
-       Unlike  hledger,  hledger-ui hides all future-dated transactions by de-
-       fault.  They can be revealed, along with  any  rule-generated  periodic
-       transactions,  by  pressing  the F key (or starting with --forecast) to
+       Unlike hledger, hledger-ui hides all future-dated transactions  by  de-
+       fault.   They  can  be revealed, along with any rule-generated periodic
+       transactions, by pressing the F key (or starting  with  --forecast)  to
        enable "forecast mode".
 
 OPTIONS
-       Any QUERYARGS are interpreted as a hledger search query  which  filters
-       the data.
-
-       hledger-ui provides the following options:
-
-       -w --watch
-              watch for data and date changes and reload automatically
-
-       --theme=default|terminal|greenterm|dark
-              use this custom display theme
-
-       --menu start in the menu screen
-
-       --cash start in the cash accounts screen
-
-       --bs   start in the balance sheet accounts screen
-
-       --is   start in the income statement accounts screen
-
-       --all  start in the all accounts screen
-
-       --register=ACCTREGEX
-              start in the (first) matched account's register screen
-
-       --change
-              show  period balances (changes) at startup instead of historical
-              balances
-
-       -l --flat
-              show accounts as a flat list (default)
-
-       -t --tree
-              show accounts as a tree
-
-       hledger-ui also supports many of hledger's  general  options  (and  the
-       hledger manual's command line tips also apply here):
-
-   General help options
-       -h --help
-              show general or COMMAND help
-
-       --man  show general or COMMAND user manual with man
-
-       --info show general or COMMAND user manual with info
-
-       --version
-              show general or ADDONCMD version
-
-       --debug[=N]
-              show debug output (levels 1-9, default: 1)
-
-   General input options
-       -f FILE --file=FILE
-              use  a  different  input  file.   For  stdin,  use  -  (default:
-              $LEDGER_FILE or $HOME/.hledger.journal)
-
-       --rules-file=RULESFILE
-              Conversion  rules  file  to  use  when  reading  CSV   (default:
-              FILE.rules)
-
-       --separator=CHAR
-              Field separator to expect when reading CSV (default: ',')
-
-       --alias=OLD=NEW
-              rename accounts named OLD to NEW
-
-       --pivot FIELDNAME
-              use some other field or tag for the account name
-
-       -I --ignore-assertions
-              disable balance assertion checks (note: does not disable balance
-              assignments)
-
-       -s --strict
-              do  extra error checking (check that all posted accounts are de-
-              clared)
-
-   General reporting options
-       -b --begin=DATE
-              include postings/txns on or after this date (will be adjusted to
-              preceding subperiod start when using a report interval)
-
-       -e --end=DATE
-              include postings/txns before this date (will be adjusted to fol-
-              lowing subperiod end when using a report interval)
-
-       -D --daily
-              multiperiod/multicolumn report by day
-
-       -W --weekly
-              multiperiod/multicolumn report by week
-
-       -M --monthly
-              multiperiod/multicolumn report by month
-
-       -Q --quarterly
-              multiperiod/multicolumn report by quarter
-
-       -Y --yearly
-              multiperiod/multicolumn report by year
-
-       -p --period=PERIODEXP
-              set start date, end date, and/or reporting interval all at  once
-              using period expressions syntax
-
-       --date2
-              match the secondary date instead (see command help for other ef-
-              fects)
-
-       --today=DATE
-              override   today's  date  (affects  relative  smart  dates,  for
-              tests/examples)
-
-       -U --unmarked
-              include only unmarked postings/txns (can combine with -P or -C)
-
-       -P --pending
-              include only pending postings/txns
-
-       -C --cleared
-              include only cleared postings/txns
-
-       -R --real
-              include only non-virtual postings
-
-       -NUM --depth=NUM
-              hide/aggregate accounts or postings more than NUM levels deep
-
-       -E --empty
-              show items with zero amount, normally hidden (and vice-versa  in
-              hledger-ui/hledger-web)
-
-       -B --cost
-              convert amounts to their cost/selling amount at transaction time
-
-       -V --market
-              convert  amounts to their market value in default valuation com-
-              modities
-
-       -X --exchange=COMM
-              convert amounts to their market value in commodity COMM
-
-       --value
-              convert amounts to cost or  market  value,  more  flexibly  than
-              -B/-V/-X
-
-       --infer-equity
-              infer conversion equity postings from costs
-
-       --infer-costs
-              infer costs from conversion equity postings
-
-       --infer-market-prices
-              use  costs as additional market prices, as if they were P direc-
-              tives
-
-       --forecast
-              generate transactions from periodic rules,  between  the  latest
-              recorded  txn  and  6 months from today, or during the specified
-              PERIOD (= is required).  Auto posting rules will be  applied  to
-              these  transactions  as  well.   Also,  in  hledger-ui  make fu-
-              ture-dated transactions visible.
-
-       --auto generate extra postings by applying auto posting  rules  to  all
-              txns (not just forecast txns)
+       Any  arguments  are  interpreted  as  a hledger query which filters the
+       data.  hledger-ui provides the following options:
 
-       --verbose-tags
-              add  visible tags indicating transactions or postings which have
-              been generated/modified
+              Flags:
+                -w --watch                watch for data and date changes and reload
+                                          automatically
+                   --theme=THEME          use this custom display theme (default,
+                                          greenterm, terminal, dark)
+                   --cash                 start in the cash accounts screen
+                   --bs                   start in the balance sheet accounts screen
+                   --is                   start in the income statement accounts screen
+                   --all                  start in the all accounts screen
+                   --register=ACCTREGEX   start in the (first matched) account's register
+                   --change               show period balances (changes) at startup instead
+                                          of historical balances
+                -l --flat                 show accounts as a flat list (default)
+                -t --tree                 show accounts as a tree
 
-       --commodity-style
-              Override the commodity style in the  output  for  the  specified
-              commodity.  For example 'EUR1.000,00'.
+       and also supports many of hledger's general options:
 
-       --color=WHEN (or --colour=WHEN)
-              Should  color-supporting  commands  use ANSI color codes in text
-              output.   'auto'  (default):  whenever  stdout  seems  to  be  a
-              color-supporting terminal.  'always' or 'yes': always, useful eg
-              when  piping  output into 'less -R'.  'never' or 'no': never.  A
-              NO_COLOR environment variable overrides this.
+              General input/data transformation flags:
+                -f --file=FILE            Read data from FILE, or from stdin if -. Can be
+                                          specified more than once. If not specified, reads
+                                          from $LEDGER_FILE or $HOME/.hledger.journal.
+                   --rules-file=RULEFILE  Use conversion rules from this file for
+                                          converting subsequent CSV/SSV/TSV files. If not
+                                          specified, uses FILE.rules for each such FILE.
+                   --alias=A=B|/RGX/=RPL  transform account names from A to B, or by
+                                          replacing regular expression matches
+                   --auto                 generate extra postings by applying auto posting
+                                          rules ("=") to all transactions
+                   --forecast[=PERIOD]    Generate extra transactions from periodic rules
+                                          ("~"), from after the latest ordinary transaction
+                                          until 6 months from now. Or, during the specified
+                                          PERIOD (the equals is required). Auto posting rules
+                                          will also be applied to these transactions. In
+                                          hledger-ui, also make future-dated transactions
+                                          visible at startup.
+                -I --ignore-assertions    don't check balance assertions by default
+                   --infer-costs          infer conversion equity postings from costs
+                   --infer-equity         infer costs from conversion equity postings
+                   --infer-market-prices  infer market prices from costs
+                   --pivot=TAGNAME        use a different field or tag as account names
+                -s --strict               do extra error checks (and override -I)
+                   --verbose-tags         add tags indicating generated/modified data
 
-       --pretty[=WHEN]
-              Show prettier output, e.g.  using  unicode  box-drawing  charac-
-              ters.   Accepts 'yes' (the default) or 'no' ('y', 'n', 'always',
-              'never' also work).  If you provide an  argument  you  must  use
-              '=', e.g.  '--pretty=yes'.
+              General output/reporting flags (supported by some commands):
+                -b --begin=DATE           include postings/transactions on/after this date
+                -e --end=DATE             include postings/transactions before this date
+                                          (with a report interval, will be adjusted to
+                                          following subperiod end)
+                -D --daily                multiperiod report with 1 day interval
+                -W --weekly               multiperiod report with 1 week interval
+                -M --monthly              multiperiod report with 1 month interval
+                -Q --quarterly            multiperiod report with 1 quarter interval
+                -Y --yearly               multiperiod report with 1 year interval
+                -p --period=PERIODEXP     set begin date, end date, and/or report interval,
+                                          with more flexibility
+                   --today=DATE           override today's date (affects relative dates)
+                   --date2                match/use secondary dates instead (deprecated)
+                -U --unmarked             include only unmarked postings/transactions
+                -P --pending              include only pending postings/transactions
+                -C --cleared              include only cleared postings/transactions
+                                          (-U/-P/-C can be combined)
+                -R --real                 include only non-virtual postings
+                   --depth=NUM            or -NUM: show only top NUM levels of accounts
+                -E --empty                Show zero items, which are normally hidden.
+                                          In hledger-ui & hledger-web, do the opposite.
+                -B --cost                 show amounts converted to their cost/sale amount
+                -V --market               Show amounts converted to their value at period
+                                          end(s) in their default valuation commodity.
+                                          Equivalent to --value=end.
+                -X --exchange=COMM        Show amounts converted to their value at period
+                                          end(s) in the specified commodity.
+                                          Equivalent to --value=end,COMM.
+                   --value=WHEN[,COMM]    show amounts converted to their value on the
+                                          specified date(s) in their default valuation
+                                          commodity or a specified commodity. WHEN can be:
+                                          'then':     value on transaction dates
+                                          'end':      value at period end(s)
+                                          'now':      value today
+                                          YYYY-MM-DD: value on given date
+                -c --commodity-style=S    Override a commodity's display style.
+                                          Eg: -c '.' or -c '1.000,00 EUR'
+                   --color=YN --colour    Use ANSI color codes in text output? Can be
+                                          'y'/'yes'/'always', 'n'/'no'/'never' or 'auto'.
+                   --pretty[=YN]          Use box-drawing characters in text output? Can be
+                                          'y'/'yes' or 'n'/'no'.
+                                          If YN is specified, the equals is required.
+                   --debug=[1-9]          show this level of debug output (default: 1)
 
-       When a reporting option appears more than once in the command line, the
-       last one takes precedence.
+              General help flags:
+                -h --help                 show command line help
+                   --tldr                 show command examples with tldr
+                   --info                 show the manual with info
+                   --man                  show the manual with man
+                   --version              show version information
 
-       Some reporting options can also be written as query arguments.
+       With  hledger-ui,  the  --debug  option  sends  debug   output   to   a
+       hledger-ui.log file in the current directory.
 
 MOUSE
        In  most  modern terminals, you can navigate through the screens with a
@@ -345,31 +256,31 @@
        You can also use a command line flag to specific  a  different  startup
        screen (--cs, --bs, --is, --all, or --register=ACCT).
 
-   Menu
+   Menu screen
        This  is  the  top-most  screen.  From here you can navigate to several
        screens listing accounts of various types.  Note some of these may  not
        show anything until you have configured account types.
 
-   Cash accounts
+   Cash accounts screen
        This screen shows "cash" (ie, liquid asset) accounts (like hledger bal-
        ancesheet  type:c).   It  always shows balances (historical ending bal-
        ances on the date shown in the title line).
 
-   Balance sheet accounts
+   Balance sheet accounts screen
        This screen shows asset, liability and equity  accounts  (like  hledger
        balancesheetequity).  It always shows balances.
 
-   Income statement accounts
+   Income statement accounts screen
        This  screen  shows revenue and expense accounts (like hledger incomes-
        tatement).  It always shows changes  (balance  changes  in  the  period
        shown in the title line).
 
-   All accounts
+   All accounts screen
        This  screen  shows  all accounts in your journal (unless filtered by a
        query; like hledger balance).  It shows balances by  default;  you  can
        toggle showing changes with the H key.
 
-   Register
+   Register screen
        This  screen  shows  the  transactions  affecting a particular account.
        Each line represents one transaction, and shows:
 
@@ -418,7 +329,7 @@
 
        Press RIGHT to view the selected transaction in detail.
 
-   Transaction
+   Transaction screen
        This screen shows a single transaction, as  a  general  journal  entry,
        similar  to  hledger's  print command and journal format (hledger_jour-
        nal(5)).
@@ -447,14 +358,13 @@
        file  (or  use  -w/--watch  mode)  -  press LEFT then RIGHT to exit and
        re-enter the transaction screen.
 
-   Error
+   Error screen
        This screen will appear if there is a problem, such as a  parse  error,
        when  you  press g to reload.  Once you have fixed the problem, press g
        again to reload and resume normal operation.  (Or, you can press escape
        to cancel the reload attempt.)
 
-TIPS
-   Watch mode
+WATCH MODE
        One of hledger-ui's best  features  is  the  auto-reloading  -w/--watch
        mode.   With  this flag, it will update the display automatically when-
        ever changes are saved to the data files.
@@ -489,11 +399,6 @@
        If you are viewing files  mounted  from  another  machine,  the  system
        clocks on both machines should be roughly in agreement.
 
-   Debug output
-       You  can add --debug[=N] to the command line to log debug output.  This
-       will be logged to the file hledger-ui.log in the current directory.   N
-       ranges from 1 (least output, the default) to 9 (maximum output).
-
 ENVIRONMENT
        COLUMNS The screen width to use.  Default: the full terminal width.
 
@@ -535,4 +440,4 @@
 SEE ALSO
        hledger(1), hledger-ui(1), hledger-web(1), ledger(1)
 
-hledger-ui-1.33.1                  May 2024                      HLEDGER-UI(1)
+hledger-ui-1.34                    June 2024                     HLEDGER-UI(1)
