npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

biblialibera

v0.4.0

Published

Structured Bible text (formal and simple registers) from the Biblia Libera open translation, one entrypoint per language (biblialibera/pt), plus the original-language source texts (biblialibera/original).

Readme

Biblia Libera

An open, transparent, AI-assisted Bible translation from the original languages into modern language.

biblialibera.org

What this is

Biblia Libera translates the Scriptures directly from the public domain source texts in Hebrew and Greek into contemporary language, using large language models as the translation engine and an open, verifiable pipeline as the methodology.

Everything is published in this repository: the source texts, the translation prompts, the consistency glossary, the automated cross-checks against reference translations, and the review status of every book. The goal is that anyone can inspect how every verse was produced, flag problems, and reproduce the process.

The first target language is Brazilian Portuguese, in two registers:

  • formal: contemporary formal Portuguese, balancing fidelity to the original form with fluid reading
  • simple: accessible vocabulary and short sentences, prioritizing immediate comprehension

Both registers are generated from the same source texts and the same exegetical base, so they differ in register, not in interpretation.

Using the text in code (biblialibera)

Pre-release (0.x): complete, but not human-reviewed. All 66 books are bundled in Portuguese, and every one is at status: checked (passed the automated audit) but has not completed human review. Expect corrections; the public API may still change before 1.0. Each book carries its status so you can filter. Do not treat 0.x as a final, authoritative text.

The text is published to npm as structured JSON with a small, dependency-free API. One package, one entrypoint per language: import biblialibera/<lang> (biblialibera/pt today). Verse text comes clean (footnote markers and italic markup removed), with footnotes in a separate array.

npm install biblialibera
const pt = require('biblialibera/pt');
// or: import pt, { getVerse } from 'biblialibera/pt';

pt.getVerse('Jonah.1.1', { register: 'formal' });
// {
//   id: 'Jonah.1.1', chapter: 1, verse: 1,
//   text: 'A palavra do SENHOR veio a Jonas, filho de Amitai:',
//   footnotes: ['Hebraico: YHWH, o nome pessoal de Deus. ...']
// }

pt.getChapter('Jonah', 1, { register: 'simple' }); // { chapter, verses: [...] }
pt.getBook('Jonah', { register: 'formal' });        // full book with chapters
pt.books();                                          // per-book summary + status

Pass withOriginal: true to get the matching original-language verse alongside the translation, looked up by osisID:

pt.getVerse('Jonah.1.1', { register: 'formal', withOriginal: true });
// {
//   id: 'Jonah.1.1', chapter: 1, verse: 1,
//   text: 'A palavra do SENHOR veio a Jonas, filho de Amitai:',
//   footnotes: [...],
//   original: { id: 'Jonah.1.1', chapter: '1', verse: 1, text: 'וַֽיְהִי֙ דְּבַר־יְהוָ֔ה ...' }
// }

withOriginal works on getBook/getChapter/getVerse alike (every verse in the result gets an original field) and has no cost when omitted: the original-texts bundle is only read, and only for the books actually requested, when withOriginal is set.

The root biblialibera is a registry over what is bundled:

const bl = require('biblialibera');
bl.languages();        // -> ['pt']
bl.lang('pt').books(); // same API object as require('biblialibera/pt')

Per-language API: books(), getBook(book, opts?), getChapter(book, chapter, opts?), getVerse('Book.chapter.verse', opts?), registers(), language(). Books are identified by OSIS code (Gen, Jonah, Matt, ...); opts.register is "formal" (default) or "simple". Lookups return null when a book, chapter, or verse is not bundled. Only books that have passed the automated audit are shipped; each carries its status so consumers can filter. The bundle is built from the translation sources by pipeline/build-package.js.

Original-language source texts

biblialibera/original bundles the texts every translation is made from (Hebrew WLC, Greek Nestle 1904, Greek Septuagint/Swete), in the same chapters-of-verses JSON shape as the translations, so the two line up by osisID. No registers here, just the source text:

const original = require('biblialibera/original');

original.getVerse('Gen.1.1');
// { id: 'Gen.1.1', chapter: '1', verse: 1, text: 'בְּרֵאשִׁ֖ית בָּרָ֣א ...' }

original.corpora(); // -> [{ code: 'wlc', name: 'Westminster Leningrad Codex', license: ... }, ...]
original.books();   // per-text summary (osis, corpus, chapters, verses)

API: corpora(), books(), getBook(osis), getChapter(osis, chapter), getVerse('Book.chapter.verse'). Built by pipeline/build-original.js from sources/canon.json, so it stays in lockstep with which texts are classified there. See Source texts below for licensing per corpus.

Why

The principles behind this project are not new: translation from the original Hebrew and Greek, contemporary language, honest footnotes where the original is ambiguous, and free access for everyone. They are the common ground of five centuries of Bible translation, and the Second Vatican Council stated them explicitly in Dei Verbum (22, 25): translations "especially from the original texts", made accessible to all, "provided with suitable footnotes". What is new here is the engine and the transparency of the process. See docs/why.md for the full rationale, including what this project does and does not claim.

Source texts

| Testament | Text | Language | License | |-----------|------|----------|---------| | Old Testament | Westminster Leningrad Codex (WLC) | Hebrew | Public domain | | New Testament | Nestle 1904 (Eberhard Nestle, Novum Testamentum Graece) | Greek | Public domain | | Deuterocanon | Septuagint (Swete 1891-1912) | Greek | Public domain (transcription data: GPLv3) |

Canon and editions

The project is ecumenical: one translation, usable by all Christians. Every book is classified in sources/canon.json (protocanonical, deuterocanonical, New Testament), and editions are assembled from that classification rather than hardcoded:

  • catholic: 73 books, deuterocanon interleaved in the traditional order, Greek additions to Esther and Daniel
  • protestant: 66 books (also the Lutheran order)
  • new-testament: the 27 New Testament books, for pocket editions

Same translated text, same footnotes, different assembly. The deuterocanonical books are declared in the canon file with a planned Septuagint source corpus; see sources/README.md.

Repository layout

sources/        Normalized source texts, one file per book, verse per line
  canon.json    Book classification and edition definitions (catholic, protestant, NT)
  wlc/          Hebrew Old Testament
  n4/           Greek New Testament
languages/      Per-language guidelines the AI translator follows
  pt/           Style guide, glossary, book names, review status
translations/   Translated books, strict Markdown, one file per book
  pt/
    formal/     Portuguese, contemporary formal register
    simple/     Portuguese, accessible register
pipeline/       Scripts: normalization, parsing, validation, cross-checks
docs/
  why.md                Rationale and the tradition this project stands in
  format.md             Translation file format (Markdown grammar, conversion)
  adding-a-language.md  Checklist to add a new target language

Translations are stored as strict, pandoc-compatible Markdown: reviewers read and correct them as plain text or rendered PDF, and the pipeline parses them into JSON/USFM/XML. See docs/format.md.

Methodology

  1. Normalization: the source texts are converted to a verse-per-line format with stable book/chapter/verse identifiers.
  2. Style guide and glossary: per-language decisions are fixed in languages/<lang>/style-guide.md and key recurring terms in languages/<lang>/glossary.md, keeping voice and terminology consistent across all 31,000+ verses.
  3. Translation: each passage is translated from the original language with a documented prompt, producing every register of the language plus translator notes where the original is ambiguous. Output follows docs/format.md.
  4. Audit: every generated verse (both registers) is compared semantically against versioned public-domain reference translations with alignment computed in code, and validated structurally against the source (pipeline/validate-translation.js). Relevant divergences are flagged and consolidated before release.
  5. Review: flagged verses and whole books go through human review, tracked in languages/<lang>/review-status.md.

Ambiguities and textual variants are surfaced as footnotes, never silently resolved.

Reproducing and contributing

The repository is self-contained: clone it, open Claude Code inside it and ask for a batch; the versioned project instructions (CLAUDE.md), the translate skill and the pipeline reproduce the same process on any machine. Translated books are committed as the canonical text; the highest-value contribution is human review. See CONTRIBUTING.md.

Status

Portuguese translation complete, human review pending. All 66 books are translated in both registers (1,189 chapters, 31,156 verses per register) and have passed the automated audit, the project's single quality gate. No book has completed human review yet, so no book is publishable by the project's own criterion: that is the whole of the remaining work in Portuguese, and the highest-value way to contribute.

The live per-book status is in languages/pt/review-status.md; the suggested review order and what was decided per book are in languages/pt/roadmap.md and languages/pt/decisions/.

Author and license

Created and maintained by Lucas Merencia.

The translated texts and all pipeline code are released under the Creative Commons Attribution 4.0 International license (CC BY 4.0), unless noted otherwise. When sharing or adapting, attribute to "Biblia Libera, Lucas Merencia and contributors" with a link to this repository; see LICENSE.