Skip to main content

purebible (Python) — for people who live in nvim, btop & the terminal

Zero-dependency Python remake of the purebible terminal client. Vim keys. btop-style bars. Pipes like a good Unix citizen. No Qt, no build.

Stateless by design: no daemon, no server, no background state. Every invocation reads the KJV text fresh and exits; the TUI keeps results in memory only and writes nothing.

purebible "God | Jesus"        # OR search
purebible "God Jesus"          # exact phrase
purebible "James* & John*"     # AND in same verse (new: old CLI gave 0 rows)
purebible "John 3:16"          # smart-dispatch → lookup
purebible lookup "Rom 12:1-2"  # ranges + whole chapters ("John 3")
purebible tui "love*"          # fullscreen: j/k, /, :, n/N, y, q

Install (PyPI)

sudo pacman -S python-pipx      # isolated CLI installs, the Arch-friendly way
pipx install purebible
purebible "John 3:16"           # verify
purebible tui                   # full-screen mode

The KJV text (9 MB, public domain) ships bundled inside the package — no setup needed. To use a different transcription instead, point at it explicitly (--text, PUREBIBLE_TEXT) or drop it in ~/.local/share/purebible/SW1769Bible_both.txt, which takes precedence over the bundled copy. Bundled transcription from the KingJamesPureBibleSearch project.

pipx keeps it off system python — Arch is externally-managed, so plain pip would need --break-system-packages. Zero runtime dependencies either way (curses ships with Arch's python).

From GitHub instead: pipx install git+https://github.com/ripekern/purebible-py.git.

No AUR package yet — new AUR registrations are currently paused for spam, so it can't be submitted right now. Planned once they reopen.

Install for development

cd ~/Work/purebible-py
pip install -e . --break-system-packages   # gives `purebible` + short alias `pb`
# or without install:
python3 -m purebible "John 3:16"

The KJV text ships bundled (purebible/data/), so a checkout works out of the box — to use a different copy instead, one-time setup:

mkdir -p ~/.local/share/purebible
ln -s ~/Work/purebiblesearch/text/complete/SW1769Bible_both.txt \
      ~/.local/share/purebible/SW1769Bible_both.txt
# alternatives: export PUREBIBLE_TEXT=/path/to/SW1769Bible_both.txt,
# or copy it to ./data/ or ~/.config/purebible/

Why this exists

purebible-cli (C++/Qt) is exact but heavy: CMake, Qt6, daemon sockets, 30 MB servers. This is the same terminal client rewritten in pure Python for terminal-first users:

  • nvim: purebible prints ref: text, one per line — :r !pb "Rom 12:1-2", quickfix-friendly, --refs-only + fzf ready, --no-color for pipes.
  • btop: purebible tui is a live dashboard — header stats bar, reverse-video statusline, instant ms timings.
  • terminal: nvim-style NORMAL/INSERT/COMMAND modes (/ fresh search, i caret before current query, a caret after it, arrows + C-u/C-w editing, : for commands, Esc drops back to NORMAL and never quits — quitting is q, ZZ/ZQ or :q, NORMAL mode only), : opens a centered noice-style popup in the upper third, and the bar stays minimal — mode tag + current search only (confirmations flash briefly). Jumplist (Enter opens a chapter, C-o jumps back), / prompt history, C-u/C-w line editing, even :w politely refuses. Lualine-style mode tags and refs colored for your system theme (auto-detected, PUREBIBLE_THEME=dark|light to override), :help opens a scrollable screen with the key list + every search and lookup pattern, :clear to clear results, NO_COLOR respected, works over SSH with zero deps.

Query language

syntax meaning example
a b phrase (consecutive) "God said" → 9 hits
a | b OR (union) "God | Jesus"
a & b AND (same verse) "James* & John*"
a & -b NOT (verse must lack b) "love & -loved"
love* ?eth [a-z] wildcards per word "four*"
\c / \C vim case override (\C sensitive) "Amen\C" → 77
bare * any single word gap "God * heaven"

Flags mirror the old client: -c/--case, -A/--abbrev, -w/--no-wordindex, -d/--no-dup, --comma, --refs-only, --book/--chapter/--verse (scope for &), plus --count, --limit N.

License

Open source. Code is GPL-3.0-or-later (same as the project it was ported from) — see LICENSE; the King James Bible text itself is public domain.

Notes / differences

  • Native build ships KJV 1769 only (bibles1). Asking for another id prints a note and maps to 1 (the old Qt backend had 40+).
  • Search runs on the whole-Bible word stream like KJPBS (phrases may span verse boundaries); * inside a phrase is a single-word skip. Hyphenated compounds (Bar-jesus), ligatures (CæsarCaesar), psalm superscriptions and Pauline colophons all match the C++ concordance — verified identical counts and word indexes on a battery of queries (Jesus 973, God 4444, David 930 deduped, …). -y enables hyphen-sensitive mode.
  • & is new (old CLI treated it as a literal word → always 0). | and phrase/wildcard semantics match the original.

Release files for purebible 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for purebible 0.1.4
File Size Uploaded
purebible-0.1.4.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for purebible 0.1.4
File Interpreter ABI Platform
purebible-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 3.6 MB

Release files / purebible-0.1.4.tar.gz

Download URL purebible-0.1.4.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
72999b9a67d54e0ba52c2aab89f8a6d2733879b57c5e077dfbbd94423d1bb968
BLAKE2b-256 checksum
How to use checksums
5e3225968e5e534f51b3ee2acbc43a028790141e5d88801db7ca6f9fece60ec8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / purebible-0.1.4-py3-none-any.whl

Download URL purebible-0.1.4-py3-none-any.whl
Size 1.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d99bde102c42668b78235bb430be9005fd4ec1347bf58b4d94b6add5ff3351f8
BLAKE2b-256 checksum
How to use checksums
c0ead24afae8ad132aace159c44c5cb003851324ff7c125fc7b72426d5123469
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page