work / selah

Selah

A Bible for the terminal, on the same TUI stack as opencode, with an honest reading tracker and an Ask tab that uses your own Claude Code or Codex.

Years
2026
Status
active
Live
selah.hallelx2.com
Source
hallelx2/selah

What it is

Selah is a terminal Bible reader built on OpenTUI and Solid on Bun, the stack opencode uses. Ranked full-text search, a command palette that parses references, parallel translations, Hebrew and Greek word studies with Strong's numbers, Matthew Henry's commentary, and Doré's engravings drawn with kitty graphics, sixel or half-blocks.

Read more

The reading tracker only counts a chapter you spent time on. Gaps between keystrokes count up to three minutes; a chapter is read when you reach its end and your active time passes a minimum set by its word count. Streaks, a 53-week heatmap and reading plans balanced by words come from that.

The Ask tab hands a question to the Claude Code or Codex you are already signed into, with file edits and shell disabled, and gives it Selah's own MCP tools to read passages, search the Bible and Henry, and look up the original words. No API key is stored.

This site borrows its look from selah.hallelx2.com.

Stack

  • TypeScript
  • Bun
  • OpenTUI
  • Solid
  • SQLite
  • FTS5
  • Claude Agent SDK
  • Codex
  • MCP

Counted

  • 76commits
    git rev-list, 2026-10-10 → 10-11
  • 33themes
    src/theme/assets
  • 6reading plans
    src/data/plans
  • 100Doré plates
    src/data/scenes, SHA-256 pinned
  • 19test files
    repo count

How it works

The system as a machine on a bench. Hover or use the arrow keys to drive it.

SELAH025s
Needle: active time, gaps of 3 min or lessPegs: one per chapter counted, per daySplit hand: the gap still openSelah's reading tracker as a lectern: a chapter counts when the guide reaches its end and the clock, which credits gaps between key presses only up to 3 minutes, has passed the chapter's pin (30% of its reading time at 250 words a minute, between 1 and 30 s). Each counted chapter sets one peg in today's hole on a board of 53 weeks; the clock runs three times fast, faster through a gap.

The path through it

  1. InstallPublic-domain translations download once into a local SQLite database with full-text search.
  2. ReadVerse cursor, palette, search with in:psalms or in:ot filters.
  3. TrackEnd of chapter plus enough active time for its length; idle gaps over 3 minutes count zero; one record per chapter per day.
  4. StudyNotes, commentary and concordance follow the current verse.
  5. AskYour own Claude Code or Codex, read-only, calling Selah's MCP tools for grounded, openable references.