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
gor@, 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bibleit-0.5.4.tar.gz.
File metadata
- Download URL: bibleit-0.5.4.tar.gz
- Upload date:
- Size: 79.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7ec89b0937884b3cf110bde0ecb6c171ddf466ad7e251b67f4c25205ac96b42
|
|
| MD5 |
0143c7d8bd39709db2c29affe47d4e1d
|
|
| BLAKE2b-256 |
ede30c6a4e4a5d88e68072613ca43b1d6cdf477e839c3346a56ffddecc855653
|
File details
Details for the file bibleit-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: bibleit-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 96.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d63cd3dd63716b355b27f1d047a9021e67a9c400e8e00f248a2176f427fd1bc7
|
|
| MD5 |
356bce671213eec3633d927807623872
|
|
| BLAKE2b-256 |
0ed9d2d5c5fc2acd8a6e6bc02ff80c1163049e3a1a2f5ab42a388a8caf591cca
|
File details
Details for the file bibleit-0.5.4-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: bibleit-0.5.4-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 84.1 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae49f29c105258f9f8150d6058d5ea8ae623bca59b0cdfec6730cca303351cb1
|
|
| MD5 |
d85c998f0c4b6c87d5288ac30c2a9fa7
|
|
| BLAKE2b-256 |
235f10d3841d9ef46adefce0f23992dcce1ab010415158f39351d86dae2d083c
|