Skip to main content

Interactive Bible Reading

Project description

bibleit

Interactive Bible reading for the terminal and browser, built with Python, Textual, and libbibleit.

Features

  • Terminal Bible reader with keyboard-first navigation.
  • Browser access through Textual Web, with mobile-friendly touch controls.
  • Multiple translations open side by side or stacked vertically.
  • Synchronized cursor across open translation panes.
  • Go-to navigation with g, 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 presentation mode 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 browser version:

make serve

Then open:

http://localhost:8000

Run the installed package directly:

python -m bibleit

Keyboard

Shortcut Action
/ Previous / next verse
g Go to verse, chapter, or book reference
Tab Cycle go-to matches
Ctrl+F Find verse text
/ in Find Switch Find translation
Ctrl+T Open translations
Ctrl+G Toggle Strong's
Ctrl+A / Ctrl+E Beginning / end of current chapter
< / > Previous / next chapter
Ctrl+W Close the active translation pane
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 Enter, Esc, q, or ? to dismiss it.

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
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 web server:

make serve

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 loads the interactive Textual app.

Development

Run with Textual development tools:

make run-dev

Run browser version with hot reload:

make serve-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

Install local wheel:

make install-local

Run the local installation test:

make local-install-test

Browser server configuration

The browser server supports the following environment variables:

Variable Default Description
BIBLEIT_SERVE_HOST 0.0.0.0 Bind address
BIBLEIT_SERVE_PORT 8000 Server port
BIBLEIT_SERVE_PUBLIC_URL http://localhost:8000 Public URL used by the browser/websocket client
BIBLEIT_FIND_INDEX_CACHE_SIZE 4 Max number of translation text indexes cached by Find

Example:

export BIBLEIT_SERVE_HOST=0.0.0.0
export BIBLEIT_SERVE_PORT=8000
export BIBLEIT_SERVE_PUBLIC_URL=http://localhost:8000

make serve

Docker

Build the image:

docker build -t bibleit .

Run terminal mode:

docker run -it bibleit

Run browser mode:

docker run -p 8000:8000 bibleit serve

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.3.1.tar.gz (62.7 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.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (72.6 kB view details)

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

bibleit-0.3.1-cp311-cp311-macosx_11_0_arm64.whl (59.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for bibleit-0.3.1.tar.gz
Algorithm Hash digest
SHA256 2806d8cc8b3e6f0272e6593ff04f34ce895597c4d3c238032c762cd9025c5204
MD5 37de9324a6e70764c14d1ce44146a4ac
BLAKE2b-256 d934ac4a509e4827b5118603dddac43c67a0eb2738fec977d08af450280522e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bibleit-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 448e5d3d88a68f95a0958e665fe9cda518e6e6b3526f048f08d909dae6d7c59d
MD5 6d434350d487b696d37776ace695eb71
BLAKE2b-256 e456ca3776930b0ca738c0d75c4efe8fb851f295b0d985d7a2b461cf6431c405

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bibleit-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee6bfbabc0da69509131ddc99530c91b989e80f362acbcfecd8d90bdb67d09e2
MD5 9c4db2cf184df875dafee49ccd211dae
BLAKE2b-256 55455bd2f517f5c525a71d2ad78280a694a8c6e1d6658583b3b6e72b55b89c34

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