About

What this is

Nabu is personal research infrastructure: one scholar’s local library of ancient-text corpora, built to serve that scholar’s reading and research first, and shared because the approach — local, license-honest, citation native, rebuildable — may be useful to others: the readers it pictures wear one of 30 scholarly hats, the research desks from the Classicist to the Assyriologist, each with its own shelves and recipes. It is a young project: versioned releases begin with v1.0.0 (July 2026), there is no packaged gem or versioned API, and command-line flags may still change between releases; the documentation aims to be more honest than polished.

The name is that of the Mesopotamian god of scribes and writing, divine custodian of the library of Ashurbanipal at Nineveh — a fitting patron for a project whose founding dream included holding the tablets themselves (the ORACC shelf now does).

The project family

Nabu is the eldest of five siblings, each with one job; where a sibling produces something the library can use, Nabu consumes it back as an ordinary optional module — the same ingestion door every external source walks through.

Why it exists

Three convictions, stated plainly:

  1. Scholars should be able to hold their sources. The great digital corpora live on institutional servers with uncertain funding horizons. A local, plain-file copy under version control, with derived databases that can always be regenerated, is the difference between using a service and owning a library.
  2. Citations are the unit of scholarship. A search result that cannot be cited to a verse, a folio line, or a tablet surface is a curiosity. Everything in Nabu resolves to a stable URN.
  3. License terms are data. Aggregating 327 sources under dozens of different licenses is workable only if every text’s terms are recorded per document and consulted mechanically — especially once AI tools can quote from the collection.

How it is built

Nabu is a Ruby command-line application (Ruby 3.3+), developed and tested on macOS, with a deliberately small dependency set and no cloud requirements at runtime. Storage is plain files, git, and SQLite — nothing that cannot be restored from a file copy.

The central engineering guarantee is the derivability law: everything permanent lives in three plain-file folders — the canonical texts (the universal asset), the project configuration, and the local instance (the owner’s rulings, annotations, and operational ledger) — and every database is derived from them: nabu rebuild regenerates the entire catalog offline, proven byte-identical by test, and a dedicated drill proves the stronger claim by restoring ONLY those three folders and re-deriving the rest from scratch. Around that guarantee sit the retention mechanisms: files an upstream deletes are preserved and remain searchable, honestly labelled; the run-history ledger rides in the permanent set and survives rebuild and restore alike; backups are exercised by the actual restore drill, not assumed; and a standing verification command re-parses every canonical file against the catalog’s content hashes.

Development proceeds by a documented agent loop — work packets executed by Claude language models under test-driven ground rules, with owner-reviewed phase gates — described in docs/dev-loop.md. The full test suite (network-blocked, fast) and a linter run in continuous integration on every push; the repository README and this site are refreshed at every gate to reflect what actually works.

What is deliberately out of scope, for now

The original concept’s enrichment layer has been landing piece by piece, always on-box: ingestion of one’s own PDFs and scans shipped in July 2026 (nabu ingest), September 2026 brought semantic search over a local vector store (nabu embed, search --similar) and local lemmatization campaigns that project machine-suggested lemmas, honestly labelled silver, onto passages without gold annotation (nabu lemma-enrich), and October 2026 added the research-export surface (nabu export, every table shipped with a license manifest), lemma attestation profiles from precompiled rollups (nabu lemma), and a parallel shelf for machine-suggested datings under the same silver discipline (nabu silver-dates). What still waits — on local inference hardware and on demand — is on-demand glossing and text recognition for image-only scans; no paid cloud service is ever a runtime requirement. A public read-only query endpoint is a distant possibility for which the MCP server is the rehearsal: the tool contract that would face outward runs locally first, against the real corpus, under the same license gates. The register of candidate capabilities, each argued with the case against, is docs/improvements.md.

Licensing

Contributing

The project is early and personal — expect the backlog to be driven by the maintainer’s research needs — but contributions are genuinely welcome: a well-argued source proposal that leads with license evidence, a report of a passage where the library’s text departs from the source, a feature request stated as the scholarly question it would answer, or a small clean adapter patch with real trimmed upstream fixtures. The house rules — TDD, fixture discipline, license honesty, the DCO sign-off — are stated in CONTRIBUTING.md.

Requests go straight to a prepared issue form:

Anything else fits a new issue of any shape.

Cite it: concept DOI 10.5281/zenodo.21361956, which always resolves to the latest release (v1.6.0, September 2026, as of this writing; v1.0.0 is 10.5281/zenodo.21361957); see the FAQ for the full citation form.

Contact

Questions, corrections, and conversation are welcome through GitHub issues. The maintainer is Ar Vicco <arvicco@nabu.ac> — an independent private researcher; who is behind Nabu says more.