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.2

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.2
File Size Uploaded
purebible-0.1.2.tar.gz 1.8 MB Details

Built distribution (wheel)

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

Total release size: 3.6 MB

Release files / purebible-0.1.2.tar.gz

Download URL purebible-0.1.2.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
b8975450d58404ac64a58c488350af6a5d3c922d00c7c70e511eb46dc97e1db2
BLAKE2b-256 checksum
How to use checksums
d8acac4246ca4111e47fd58b09dbc0cc4ca595b73984175959d862e866209460
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.2-py3-none-any.whl

Download URL purebible-0.1.2-py3-none-any.whl
Size 1.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7be9ee1b4c21dc8c981a90146b2e41674db2a56f067da939a87f45b5842f22a4
BLAKE2b-256 checksum
How to use checksums
313cfad1f5217913aa3b5d32fc2995512e6438eae0f5553f1f6e4c69be397b0f
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

0.1.3

2 release files

This release

0.1.2 This release

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