repl

Start an interactive prompt, where you can run any of hledger's
commands. Data files are parsed just once, so the commands run faster.

Flags:
no command-specific flags

This command is experimental and could change in the future.

hledger repl starts a read-eval-print loop (REPL) where you can enter
commands interactively. As with the run command, each input file (or
each input file/input options combination) is parsed just once, so
commands will run more quickly than if you ran them individually at the
command line.

Also like run, the input file(s) specified for the repl command will be
the default input for all interactive commands. You can override this
temporarily by specifying an -f option in particular commands. But note
that commands will not see any changes made to input files (eg by add)
until you exit and restart the REPL.

The command syntax is the same as with run:

-   enter one hledger command at a time, without the usual hledger first
    word
-   empty lines and comment text from # to end of line are ignored
-   use single or double quotes to quote arguments when needed
-   type exit or quit or control-D to exit the REPL.

While it is running, the REPL remembers your command history, and you
can navigate in the usual ways:

-   Keypad or Emacs navigation keys to edit the current command line
-   UP/DOWN or control-P/control-N to step back/forward through history
-   control-R to search for a past command
-   TAB to complete file paths.

Generally repl command lines should feel much like the normal hledger
CLI, but you may find differences. repl is a little stricter; eg it
requires full command names or official abbreviations (as seen in the
commands list).

The commands and help commands, and the command help flags (CMD --tldr,
CMD -h/--help, CMD --info, CMD --man), can be useful.

You can type control-C to cancel a long-running command (but only once;
typing it a second time will exit the REPL).

And in most shells you can type control-Z to temporarily exit to the
shell (and then fg to return to the REPL).

Examples

Start the REPL and enter some commands:

$ hledger repl 
Enter hledger commands. To exit, enter 'quit' or 'exit', or send EOF.
% stats
Main file           : .../2025.journal
...
% stats -f 2024/2024.journal 
Main file           : .../2024.journal
...
% stats
Main file           : .../2025.journal
...

or:

$ hledger repl -f some.journal
Enter hledger commands. To exit, enter 'quit' or 'exit', or send EOF.
% bs
...
% print -b 'last week'
...
% bs -f other.journal
...
