Local by construction.
An inference call should not need to ask permission from the internet.
Bring your own artifact.
The Node.js runtime accepts a model object. Load it from a file, bundle it with an application, or fetch it ahead of time. The prediction path itself has no network calls. The browser demos use the same inference implementation.
A common contract.
All six models return a label and ranked scores. The scores are normalized model outputs, not calibrated probabilities that an answer is correct. Unknown text features produce an explicit Unknown result; other out-of-distribution inputs can still produce a confident wrong answer.
Kotlin follows the same format.
The Kotlin implementation reads the same JSON artifact format and implements the same tokenization and feature conventions. Cross-runtime fixtures are included so the two implementations can be checked against the same examples.
Privacy has boundaries.
The demos do not upload input text, audio, or strokes. Loading the website and downloading model files still involves ordinary web requests. If you host the site, your hosting provider may retain request logs; local inference does not erase that separate consideration.