bible-cli
Offline command-line toolkit for biblical study, allowing AI agents to access original-language texts, perform morphological searches, cross-references, and more, with all results traceable to queries.
README
Bible CLI
A Bible study operating system for AI agents — and the humans working with them.
bible is an offline command-line toolkit that lets any coding agent (Claude Code,
Codex, opencode, or anything with a shell) do serious biblical study from the text
itself: plain reading, original-language word study, morphology search,
cross-translation comparison, and canon-wide pattern analysis — with every claim
traceable to a query instead of to training data.
$ bible interlinear "John 3:16" | head -6
John 3:16
Οὕτως Houtōs G3779 Adv so
γὰρ gar G1063 Conj For
ἠγάπησεν ēgapēsen G0025 V-AIA-3S loved
ὁ ho G3588 Art-NMS -
Θεὸς Theos G2316 N-NMS God
$ bible grep-morph --stem niphal --tense participle --book Isaiah --count
98 matching words
H0539 אָמַן 8
H5375 נָשָׂא 7
...
$ bible freq --strongs H1285 --by-book # where does "covenant" concentrate?
$ bible xref "Isa 53:5" --text # how does the canon take this verse up?
$ bible compare "Rom 8:1" -t all # where do translations diverge?
Everything is offline, deterministic, and open-licensed: two SQLite databases built from public-domain and CC-BY scholarly sources (see Data), downloaded once on first run.
Why
LLMs already "know" the Bible — approximately, unverifiably, and shaped by
whatever their training data emphasized. Bible CLI gives an agent the opposite:
a set of precise instruments over the actual text, so study becomes
evidence-based. The agent reads the passage it cites, checks what a Greek or
Hebrew word actually means by how it is actually used, counts patterns instead
of gesturing at them, and reports what the text says as distinct from what it
concludes. The bundled methodology (bible agent-setup) teaches exactly that
discipline — a biblical theology workflow: plain reading → lexical analysis →
context → canonical patterns → labeled synthesis.
Install
npm install -g @divine-creative-ministries/bible-cli
That's it — the scripture databases download automatically on first use
(~90 MB, checksummed; set BIBLE_CLI_NO_AUTO_DOWNLOAD=1 to manage them
manually with bible db download). Or try it with zero install:
npx @divine-creative-ministries/bible-cli passage "John 3:16"
For agents, add the study methodology to your project:
bible agent-setup claude # writes .claude/skills/bible-study/SKILL.md
bible agent-setup generic # appends a section to AGENTS.md (codex, opencode, …)
Or run it as an MCP server: bible mcp (stdio) exposes all commands as tools.
Commands
Every command supports --json (machine-readable output), forgiving references
(John 3:16-18, jn 3 16, 1jn2:5, Psalm 23, Gen 1:1-2:3), scoping
(--book Isaiah, --book Gen-Deu, --book ot), and helpful errors
(Unknown book 'Pslams'. Did you mean: Psalms…).
| Command | What it does |
|---|---|
survey <query> |
One-call corpus dossier — the discovery-first entry point for studies |
passage <ref> |
Read a passage (default BSB; -t WEB,KJV,ASV,BSB, --context N) |
search <query> |
FTS5 full-text search (--phrase, --stem, --count, AND/OR/NOT) |
compare <ref> |
Side-by-side translations — divergence marks interpretive decisions |
interlinear <ref> |
Word-by-word Hebrew/Greek with translit, Strong's, morphology, gloss |
original <ref> |
Original text; Greek editions: --edition na28|sbl|tr|byz|wh|treg |
lemma <H2617|ἀγάπη> |
Every occurrence of a lemma/Strong's across the canon |
word <query> |
Word study: lexicons, usage stats, gloss range, derivations; English reverse lookup |
morph <ref> |
Full grammatical parse of each word in a verse |
grep-morph |
Search by grammar: --stem niphal --tense participle --book Isaiah |
xref <ref> |
Ranked cross-references (--text, --reverse, --min-votes) |
quotes <ref> |
OT-in-NT parallels in confidence tiers, at surface and lemma level |
freq |
Distribution of a Strong's/lemma/word across books or testaments |
cooccur |
Verses containing multiple lemmas together; passage vocabulary profiling |
similar <ref> |
Passages sharing distinctive vocabulary (idf-weighted lemma overlap) |
name <query> |
Who/what is this? Disambiguated persons & places (which of the ~30 Zechariahs) |
books · translations · editions · morph-codes · licenses |
Introspection (agents discover capabilities at runtime) |
ref <text> |
Normalize any reference string |
db · mcp · agent-setup |
Data management, MCP server, agent onboarding |
The data
All redistributable, all attributed (see bible licenses):
| Layer | Source | License |
|---|---|---|
| English translations | WEB, KJV, ASV (eBible.org), BSB | Public domain |
| Hebrew OT + morphology | STEPBible TAHOT (WLC, dStrongs, ETCBC morphology, Ketiv/Qere) | CC BY 4.0 |
| Greek NT + morphology | STEPBible TAGNT (NA/TR/Byz/SBL words with edition markers) | CC BY 4.0 |
| Lexicons | BDB Enhanced (full Brown-Driver-Briggs), STEPBible TBESG (ext. Abbott-Smith), Dodson | PD + CC BY / CC BY 4.0 / CC0 |
| Cross-references | OpenBible.info (~345k, vote-ranked) | CC BY |
| Proper nouns | STEPBible TIPNR (individualised persons/places) | CC BY 4.0 |
| Septuagint† | Swete edition + computed NT quotation links | CC BY-SA 4.0 |
† The LXX ships as a separate optional artifact (bible db download-lxx) because
its digitization carries CC BY-SA; the core and study databases stay public
domain + CC BY only.
The databases are built by a reproducible pipeline in this repo
(npm run pipeline) with a verification stage that checks canonical verse
counts, versification edge cases (Psalm titles, Malachi 3/4, Joel 2/3),
Ketiv/Qere handling, and morphology-code coverage — the build fails loudly
rather than shipping silently wrong data.
Design notes
- Verse IDs are integers (
BBCCCVVV; Gen 1:1 =1001001) on a KJV-English spine; Hebrew/Greek versification differences are mapped at build time and preserved for display. Psalm superscriptions are verse 0. - One row per morpheme: Hebrew prefixes/suffixes and Greek crasis
components are individually tagged, so
grep-morphand frequency counts are exact. Analytics default to the default text stream (Qere; NA-stream Greek) so textual variants never inflate counts. - The CLI is the single source of truth; the MCP server shells into it, so both interfaces always agree.
- Quotation detection is computed, not curated, in three labeled confidence
tiers — quotation (5+ identical words in a row), allusion (4+ word or
lemma run), echo (gated 3-lemma runs or shared rare vocabulary; speculative
by design and excluded from default output) — at two match levels: surface
(verbatim) and lemma (inflection-independent, via a dictionary derived from
the tagged NT; marked ≈). The lemma level is what catches Rev 1:7 ⇐ Dan 7:13.
Purely thematic connections remain
bible xref's domain. - The methodology is a text-first protocol: three lanes matching evidence
to the claim (lookup / word-passage / study), discovery-before-thesis via
survey, mandatory falsification attempts, and provenance tags separating what is OBSERVED, what is PATTERN, and what is INFERENCE — with anything from outside the corpus labeled as interpretive tradition.
Known limitations (honest edges)
--editionGreek texts are reconstructed from TAGNT's word-set + variant apparatus — accurate wording, but not a facsimile of a printed edition's punctuation or orthography.- ~80 Aramaic Strong's numbers lack formal lexicon entries (gaps in the BDB mapping); their entries are synthesized from the tagged text's own glosses and labeled as such.
- English reverse lookup (
bible word lovingkindness) is heuristic: lexicon glosses first, then which original words underlie verses containing the English word. - The Swete LXX digitization lacks Ecclesiastes; Daniel uses Theodotion (which the NT normally follows).
Roadmap
Semantic similarity via local embeddings, pericope/discourse boundaries, versification traditions beyond Hebrew/Greek (Vulgate), additional open translations (non-English included), and syntax-aware search (MACULA trees). PRs welcome.
License
Code: MIT. Data: see docs/DATA-SOURCES.md and
bible licenses — public domain, CC BY 4.0, and CC0 in the core/study
databases; the optional LXX artifact is CC BY-SA 4.0.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.