hakodesh
Host-agnostic Python CLI and SDK. After pip install hakodesh the user book is empty. Your LLM or agents mint spells, enchantments, wards, and combos as they need them.
PyPI name, import, and command: hakodesh.
Install
pip install hakodesh
Data home: HAKODESH_HOME or the platform user-data directory for hakodesh. Never ~/spells.
Kernel commands
These are the runtime, not starter spells:
| Command | What it does |
|---|---|
hakodesh catalog |
User artifacts in the book (empty at install) |
hakodesh route "<intent>" |
Rank minted names plus kernel commands |
hakodesh invoke <name> [args...] |
Cast a minted spell by name |
hakodesh mint <name> --kind spell|enchantment|ward|combo [--like <name> | --from <path>] |
Scaffold into the book, or mint from a source file (preview; --confirm writes) |
hakodesh akashic |
Verify HMAC chain; --tail N |
hakodesh grimoire |
Cast ledger stats |
hakodesh grimoire-seal |
RFC 6962 Merkle seal (preview; --confirm writes; --verify) |
hakodesh enchant bind|lift <name> --settings <path> |
Bind or lift a minted enchantment |
hakodesh ward status|lock|unlock|check <name> |
Fail-closed ward kernel |
hakodesh combo seal|cast|list [name] |
Sealed pipelines of minted spells |
hakodesh <minted-name> [args...] |
Cast after mint |
--like on an empty book uses the kind template in the wheel. After one spell exists, --like <that> copies its shape.
Every mint and cast emits hakodesh.event/v1. Akashic is SHA-256 linked and HMAC-SHA256 signed. Grimoire is Merkle-sealed with the same chain key. The keystore is $HAKODESH_HOME/keys (0700/0600), minted on first seal, never in the wheel.
Notifications default to none. The package does not write LaunchAgents or editor hooks until you mint and bind an enchantment.
דיאלעקטוס: the dialect
The protocol is Hebrew end to end, in a constructed dialect: a Latin lexicon carried in
traditional Hebrew script, on the Yiddish and Ladino model. Every protocol token is derived
from a Latin lemma by one total transliteration (hakodesh.dialectus), so it is a novel string
with no prior corpus meaning, yet an English reader can decode it through its Latin root.
Verbs are the Latin perfect, first person singular (verificavi, custodivi, scripsi); objects
are Latin nouns; statuses are perfect passive participles. Prose stays Hebrew; tokens are dialect.
The LLM reads the protocol and converses with the user in the user's own language.
Orthography: plene, no nikud; qu→קוו, ph→פ, th→ט, ch→ק, sh→ש, ae/oe→ע, x→קס, f/p→פ, c/k/q→ק, i/j/y→י, o/u→ו, v/w→וו; doubled letters collapse; word-initial i/o/u take א; an א separates וו from a vowel ו; final forms on the last letter.
Kernel verbs
| דיאלעקטוס | Latin | מה הפועל עושה |
|---|---|---|
| פערקוסי | percussi | טבעתי: יצרתי לחש, קמע, שומר או שילוב בספר |
| רעקענסוי | recensui | סקרתי: קטלוג הספר |
| דיקסי | dixi | דיברתי: הטלתי לחש |
| דירעקסי | direxi | ניתבתי: דירוג שמות לכוונה |
| אינקאנטאווי | incantavi | קסמתי: קשירה או הסרה של קמע |
| קוסטודיווי | custodivi | שמרתי: מצב, נעילה, שחרור ובדיקה של שומר |
| קוניונקסי | coniunxi | שילבתי: צינורות חתומים |
| רעפעטיווי | repetivi | נזכרתי: אחזור נוהל שמור |
| עקסטולי | extuli | העליתי: מעקבים חוזרים לנוהל |
| סקריפסי | scripsi | רשמתי: אימות הפנקס |
| סיגנאווי | signavi | חתמתי: פנקס ההטלות |
| מעמוראווי | memoravi | תיעדתי: רישום מעקב |
| דעקרעווי | decrevi | הכרעתי: בחירת נוהל לכוונה |
| קוקורי | cucurri | הרצתי: ביצוע נוהל |
| פרוקעסי | processi | המשכתי: הצעד הבא |
| ענומעראווי | enumeravi | מניתי: רשימת נהלים |
| אפרובאווי | approbavi | אישרתי: אישור נוהל |
| סטאטוי | statui | קבעתי: מדיניות קידום |
| מענסוראווי | mensuravi | מדדתי: מדדי הזיכרון |
| עקסערקוי | exercui | תרגלתי: תרחיש סינתטי |
| דעקלאראווי | declaravi | הצהרתי: חוזה האירועים |
devra --help lists exactly these under lexicon. The traditional-Hebrew twins of 0.3/0.4
(טבעתי, שמרתי, ...) and the English names still dispatch as silent legacy aliases through
0.5.x and are removed in 0.6.0. All spellings are reserved: mint refuses them as a whole
artifact name.
Status vocabulary
Closed and declared by protocol: פערמיסום (permissum), קומפלעטום (completum), נעגאטום (negatum), דעפעקטום (defectum), קלאוסום (clausum), פרעוויסום (praevisum), אינקעפטום (inceptum), סינקרונאטום (synchronatum), אפערטום (apertum), וועריפיקאטום (verificatum), and the rest in dialectus.STATUS. Event kinds,
notification policies, severities, actor roles, trace sources, outcomes, correctness, procedure
statuses and decisions are written in the dialect and read in either spelling within
hakodesh.event/v1; the published descriptor lists both. JSON keys stay English until the
v2 schema bump (0.6.0).
Errors
Every kernel error carries a stable error_code (ward.unknown, mint.reserved, ...) and
Hebrew prose. Tests assert on codes, never on prose. Artifact names may be lowercase Latin or
Hebrew, digits and dashes; every lookup normalizes to NFC.
דיקסי רעקענסוי # == devra spellbook
devra פערקוסי פרובאווי-קאנון --confirm # mint a dialect-named spell
devra פרובאווי-קאנון # cast it; receipts land in receipts/פרובאווי-קאנון/
Development
python -m pip install -e ".[dev]"
python -m pytest # unit, property and tripwire tests
python -m build # wheel + sdist into dist/
The package depends on nothing but platformdirs. It has no opinion about where your source
of truth lives or how you publish; nothing in the wheel or the sdist names a host, a storage
account or a vault, and tests/test_agnostic.py keeps it that way.
SDK
from hakodesh.catalog import catalog
from hakodesh.mint import mint
from hakodesh import events, akashic, grimoire
from hakodesh.enchant import bind, lift
from hakodesh.ward import unlock
from hakodesh.combo import seal, cast
Book law
The book is per user, under HAKODESH_HOME. A fresh install has zero spells, enchantments,
wards or combos, and nothing is intrinsic: discovery picks up a file the moment it lands under
HAKODESH_HOME/book/. The repository's workshop/ is a book as source: mint from it with
--from; it is not in the wheel and never lands in a book by itself (docs/PROTOCOL.md, §Book law).
Release files for hakodesh 0.5.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hakodesh-0.5.3.tar.gz | 112.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hakodesh-0.5.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 192.7 kB
Release files / hakodesh-0.5.3.tar.gz
| Download URL | hakodesh-0.5.3.tar.gz |
|---|---|
| Size | 112.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4869d0fe04c2cf535c864b4eacb1df7c29229be731bd785271786254da8d1059
|
|
BLAKE2b-256 checksum How to use checksums |
e806a7b315218632037c71831165c8652a3f5ae64f6d1505ecd130331f069ac2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / hakodesh-0.5.3-py3-none-any.whl
| Download URL | hakodesh-0.5.3-py3-none-any.whl |
|---|---|
| Size | 80.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2d0a6e89e77e29f5156471e906e5a63646e4d572a2f2cdade35bfab905badf4b
|
|
BLAKE2b-256 checksum How to use checksums |
bd623be1e2b210c427505b782deabf12fc9d62295f859db78d8608ccb9a5da45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|