Skip to main content

Interactive Bible Reading

Project description

bibleit

Interactive Bible reading for the terminal, plus a lightweight live web viewer, built with Python, Textual, and libbibleit.

Features

  • Terminal Bible reader with keyboard-first navigation.
  • Multiple translations open side by side or stacked vertically.
  • Synchronized cursor across open translation panes.
  • Go-to navigation with g or @, supporting verse, chapter/verse, and fuzzy book names.
  • Text Find with Ctrl+F, result browsing, and visual translation toggles.
  • Strong's references with linked entries via Ctrl+G.
  • Live web viewer for sharing the active verse with viewers.
  • Live viewer controls for light/dark theme, font size, presentation mode, and translation selection.
  • Persistent local config for live URL/token and theme.
  • Docker and Fly.io deployment support.

Requirements

  • Python 3.11+
  • GNU Make

Installation

Clone the repository:

git clone https://github.com/mittel-labs/bibleit.git
cd bibleit/python

Install development dependencies:

make install

Install the package locally:

make local-install-test

Usage

Run the terminal application:

make run

Run the live web viewer:

make live

Then open:

http://localhost:8000

Run the installed package directly:

python -m bibleit

Read a verse from the command line:

bibleit -t NVIPT dani 9.2
python -m bibleit -t KJV "john 3:16"
python -m bibleit -t NVIPT,KJV dani 9:2-15
bibleit -t KJV --strongs genesis 1.1

With no arguments, bibleit and python -m bibleit open the terminal app. With a reference, they print matching verse text to stdout. Set a default translation with BIBLEIT_DEFAULT_TRANSLATION, BIBLEIT_TRANSLATION, or DEFAULT_TRANSLATION in ~/.bibleit/config.

Keyboard

Shortcut Action
/ Previous / next verse
g / G / @ Go to verse, chapter, or book reference
Tab / Shift+Tab Next / previous open translation
Tab in Go To Cycle go-to matches
Ctrl+F Find verse text
/ in Find Switch Find translation
Ctrl+T Open translations
Ctrl+G Toggle Strong's
Ctrl+H Open history
Ctrl+A / Ctrl+E Beginning / end of current chapter
< / > Previous / next chapter
Ctrl+W Close the active translation pane
Ctrl+M Maximize / restore the active translation pane
Ctrl+Tab Rotate translations
Ctrl+1-Ctrl+9 Select a translation while maximized
Esc Restore panes when a translation is maximized
F2 Toggle split layout
Ctrl+L Toggle live mode
Ctrl+D Toggle theme
Ctrl+P Open config
? Show shortcuts

At startup bibleit shows a small welcome screen with the most useful shortcuts. Press any shortcut to dismiss it and continue.

Configuration

bibleit reads configuration from ~/.bibleit/config as TOML. Environment variables with the BIBLEIT_ prefix take precedence.

Config Environment variable Description
LIVE_URL BIBLEIT_LIVE_URL Live server URL used by the terminal app
LIVE_TOKEN BIBLEIT_LIVE_TOKEN Optional token used to protect live control requests
DEFAULT_TRANSLATION BIBLEIT_DEFAULT_TRANSLATION Default translation slug for CLI verse lookup
THEME BIBLEIT_THEME light or dark

Open the config screen with Ctrl+P.

Example:

LIVE_URL = "https://bibleit.example.com"
THEME = "dark"

Empty values are not written to the config file.

Live Mode

Start the live web server:

make live

Run the terminal app and point it at the live server:

BIBLEIT_LIVE_URL=http://localhost:8000 make run

Press Ctrl+L in the terminal app to publish the active verse to the web viewer. When live mode is off, the browser shows a waiting splash screen.

Development

Run with Textual development tools:

make run-dev

Open a Python shell inside the virtual environment:

make shell

Run tests:

make test

Run lint:

make lint

Format code:

make lint-fix

Build distribution packages:

make build

bibleit package versions are derived from Git tags via hatch-vcs. To publish a release, create a tag such as v0.5.1 and build from that tag instead of editing pyproject.toml.

Install local wheel:

make install-local

Run the local installation test:

make local-install-test

Live server configuration

The live server supports the following environment variables:

Variable Default Description
BIBLEIT_LIVE_HOST 0.0.0.0 Bind address
BIBLEIT_LIVE_PORT 8000 Server port
BIBLEIT_LIVE_URL unset Public live server URL used by the terminal app
BIBLEIT_LIVE_TOKEN unset Optional token used to protect live control requests
BIBLEIT_LIVE_TITLE bibleit live Browser page title
BIBLEIT_FIND_INDEX_CACHE_SIZE 4 Max number of translation text indexes cached by Find

Example:

export BIBLEIT_LIVE_HOST=0.0.0.0
export BIBLEIT_LIVE_PORT=8000
export BIBLEIT_LIVE_URL=http://localhost:8000

make live

Docker

Build the image:

docker build -t bibleit .

Run terminal mode:

docker run -it bibleit

Run live web mode:

docker run -p 8000:8000 bibleit live

Then open:

http://localhost:8000

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bibleit-0.6.0.tar.gz (79.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bibleit-0.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (97.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

bibleit-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (84.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file bibleit-0.6.0.tar.gz.

File metadata

  • Download URL: bibleit-0.6.0.tar.gz
  • Upload date:
  • Size: 79.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bibleit-0.6.0.tar.gz
Algorithm Hash digest
SHA256 dded303e3519ddb2b8294a16e85c70f53a6c2820d1a75e5f33a45a04ae475c27
MD5 355ca9e81184c213928f00ef977fec32
BLAKE2b-256 a2f7bd0f7b933c219a16ad4cc80fff4cb688c77ceb2cf6c5e277b65a9afe7ac9

See more details on using hashes here.

File details

Details for the file bibleit-0.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bibleit-0.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bed2d8b88f0656816e3c3d0b007fae7198a96662b01f7ccb62efa244bf87fbdf
MD5 415d472bda9e84b2b28c60b13ac638a4
BLAKE2b-256 196dbb18eaf5824526c93e7fc52c4d58f4935192b7156057eec9daff28b5f1eb

See more details on using hashes here.

File details

Details for the file bibleit-0.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bibleit-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5eca062e74a7a8d128cbb365deeaf954e24e1a532db7a8fd4480bf7b3394ec5d
MD5 86e46476bcd62367bc8dc8d9e4b76ad4
BLAKE2b-256 f1bb73d29b5fff0334b0b9447869b4b908e16079358ef912898c5f9b9c12741a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page