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.0.tar.gz (61.4 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.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (71.9 kB view details)

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

bibleit-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (59.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: bibleit-0.3.0.tar.gz
  • Upload date:
  • Size: 61.4 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.0.tar.gz
Algorithm Hash digest
SHA256 8e20dda9fda285e119b8b6327c8878bb802c7d669e412e0f46d53ff89dc3b9ab
MD5 d98989da3a9111e42badaf5d53461b6f
BLAKE2b-256 173c921c3646c96da20526d796c5039bc4bbdef8ebcc03d165ffe168bc139743

See more details on using hashes here.

File details

Details for the file bibleit-0.3.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.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc55cfebe0fe983d5f1e9adf84278ac5fdf0362743415136a9046af59881a524
MD5 7e1854ffe25728af39def5fcd02fcc2b
BLAKE2b-256 7c3f2384338218f624692ef2a328aea276d2c7810ba68107c7aa5f41b86a0487

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bibleit-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 88955010af6bc4b7b6b4f5547e82af990b65233fee645613ea43287bceb4ed1f
MD5 549edb188eae07165c8eeec9d680c434
BLAKE2b-256 fe4523ccb46bc84cd9085ad30338ad621ae7ba1412bbf94be75b8f9ffe88ace3

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