About
To gaze into an opaque script and see its hidden reading.
The name
secryst is coined from scrying + crystal. Scrying is the old word for gazing into a crystal ball to see what is hidden; secryst is a family of crystals — small runtime gems and packages — that gaze into opaque scripts and reveal their hidden readings.
What secryst is
Secryst is a family of runtimes that recover linguistic information a writing system withholds: the short vowels of written Arabic, the nikud of unpointed Hebrew, the phonemes behind Khmer and Thai orthography. It does this with byte-level sequence-to-sequence models (the ByT5 family, exported to ONNX) running in-process — no cloud, no LLM, no telemetry.
Every artifact is a zip you can hash, inspect, and pin, resolved through a single versioned models.yaml index implementing the interscript-ml contract v1. Same input, same model version, same output — forever. The primer walks through the problem and the approach in depth.
The crystal family
Three implementations of one contract with identical behavior — the crystal reference carries the API details:
| Crystal | Package | Born |
|---|---|---|
| Ruby | gem 'secryst' — the original: a seq2seq transformer gem first cut in 2020 | 2020 |
| Python | pip install secryst — the reference: generates the golden sets the others are diffed against | the v1 line |
| TypeScript | npm i secryst — the embeddable one for the interscript-js ecosystem | the v1 line |
Teachers are trained in secryst-train; distilled students that pass the export gate are published into the interscript-ml zoo. The model catalogue lists every id with its measured quality.
Relation to Interscript
Interscript publishes deterministic transliteration maps — but maps assume vocalized input; undiacritized text cannot be transliterated unambiguously. Secryst is the phonological layer underneath: maps that need it declare a vocalization step and dispatch to the host runtime’s crystal. The crystals themselves have no interscript dependency — related by contract, not by captivity.
Principles
- Local & deterministic — no network at inference; artifacts download once, sha256-verified, then load from cache; every cache hit re-verifies.
- Never LLMs as teachers — large language models hallucinate vocalization; a single systematic hallucination distilled into a student becomes a permanent error. Every label is gold human text or deterministic rule output.
- Parity over promises — the reference crystal generates golden sets; the others must reproduce them byte-for-byte in CI before any release. A model that behaves differently across runtimes never ships.
License & source
BSD-3-Clause / MIT per repository, all source on GitHub under the secryst organization. Issues and pull requests are welcome.