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.