esv: tools for reading the Bible

June 11, 2026


esv is a program I developed back in 2023 to display Bible passages on my terminal. It is now a suite of four programs which facilitate finding text, audio and HTML passages, searching the Bible for a phrase, and there is now even a neat web interface.

$ esv Romans 5:6-11
Romans 5:6-11

  [6] For while we were still weak, at the right time Christ died for
the ungodly. [7] For one will scarcely die for a righteous person-though
perhaps for a good person one would dare even to die-[8] but God shows
his love for us in that while we were still sinners, Christ died for us.
[9] Since, therefore, we have now been justified by his blood, much more
shall we be saved by him from the wrath of God. [10] For if while we
were enemies we were reconciled to God by the death of his Son, much
more, now that we are reconciled, shall we be saved by his life. [11]
More than that, we also rejoice in God through our Lord Jesus Christ,
through whom we have now received reconciliation. (ESV)

overview

Excluding the web interface, there are three programs distributed with esv.

esv either displays passages in text format, or plays audio passages. To use esv, pass it a book and a verse, such as esv Ephesians 2:8-9. Book names are case-insensitive. Pass the -a option to play an audio passage. Audio will be played through mpg123 by default, but you can play audio through another program by setting ESV_PLAYER.

esvhtml has a largely identical interface as esv, with the exception that there are no options to format text.

esvsearch searches the Bible for a given query. esvsearch "dog" brings up a list of passages containing, loosely, the word or phrase “dog”. Exact matches can be obtained by passing the -e option.

web interface

esvweb is a wrapper over esvhtml that provides access to the Bible over a lightweight web interface with a clean design. It is implemented differently to the esv suite of tools and calls upon the command line tool rather than using the underlying esv libraries directly. This means you will also need the esv tools installed to run the web interface.

I provide a hosted instance of this web interface at esv.janksystems.org.

implementation

These programs make use of the esv.org API to retrieve passages and search results, rather than storing an entire copy of the Word on your system. There are other translations in the public domain which you could easily use to build an offline software Bible; however, the English Standard Version is my translation of choice. This shouldn’t be an issue for those who already have a physical Bible.

download

The latest release is esv-0.3.0, released on 1 May 2025.

However, 0.3.0 does not contain the program esvhtml. To build the latest esv, you will need git and make installed, and a copy of the LDC compiler available.

Get the source from the repository:

git clone https://git.janksystems.org/jeremy/esv.git

Now, build and install:

cd esv
./configure
make
sudo make install

documentation

esv, esvhtml, and esvsearch are each documented in detail in their respective man pages. The configuration file is also documented in its own man page, esv.conf(5).

esvweb is also documented in its manual page, which is kept in its repository separate from the other esv tools. Its setup is fairly straightforward, provided the esvhtml tool is accessible and has a configuration file set up.

git repository

The source code repository for esv, esvhtml and esvsearch can be found at git.janksystems.org. The source code for esvweb can be found at the esvweb repository, and there you can find instructions on how to use it.