Team Sunplaza • Developer Documentation & Architecture Reference

Emebala Documentation

Authentic technical reference for the Emebala sovereign language AI ecosystem: Emebala Chat C++20 / llama.cpp GGUF in-place keystroke replacement, Emebala Reader on-device EPUB / PDF translation with the HY-MT1.5 GGUF model (in development), Hy-MT2 33 world languages specification, per-user configuration, and zero-telemetry verification.

01 Overview & Philosophy

In ancient Sumer around 2000 BCE, translators bridging diverse dialects, cuneiform clay tablets, and trade languages were revered as Eme-bala (literally: "those who turn language to bridge worlds"). Modern digital tools, however, have increasingly compromised individual liberty by routing confidential communications and literary manuscripts through remote corporate cloud servers.

Team Sunplaza engineered the Emebala ecosystem to restore absolute sovereignty to the reader and writer: C++20 powers the ultra-low-latency Windows desktop flagship (Emebala Chat), and every application executes its AI models directly on your own hardware.

Core Engineering Axiom Zero bytes of your text, keystrokes, clipboard buffers, or reading annotations ever leave your physical computer. There are no tracking telemetry servers, no mandatory cloud subscriptions, and no remote dependencies for offline operation.
The Two Dedicated Implementations
  • Emebala Chat (C++20 Desktop Flagship): Native Win32 / Direct2D client powered by an embedded llama.cpp runtime executing quantized GGUF weights (Hy-MT2-1.8B-Q8_0.gguf). Intercepts input buffers in any application to replace what you typed in-place, accompanied by double-Ctrl+C drag-to-translate and zero-latency Windows Speech Platform audio.
  • Emebala Reader (In Development): Windows reading sanctuary for EPUB and PDF with on-device translation powered by the HY-MT1.5-1.8B GGUF model. Every page is processed locally, and nothing leaves your computer.

02 Quickstart Installation

Both Emebala Chat and Emebala Reader are distributed as self-contained standalone Windows applications. Emebala Chat installs like a standard Windows application: your configuration file (%LOCALAPPDATA%\Emebalachat\config.json) and the shared AI model (%LOCALAPPDATA%\Emebala\Common\models\) live in your own user profile, and no account, sign-in, or telemetry of any kind is required.

Step 1: Download & Extract

Obtain the latest setup binary from the GitHub release distribution:

Download Emebala Chat (.exe) Download Emebala Reader (GitHub) ↗
Latest Release: What's New in v0.10.2 Current Stable
v0.10.2 Release Notes
  • Long Texts Translate Whole: a user-selected .gguf model no longer loses the middle of a long text. Input past the engine's single-pass limit is split at paragraph boundaries, translated piece by piece, and reassembled in the original order. The built-in Hy-MT2 model was never affected.
  • No More Silent Stalls After Speech Errors: when the Emebala speech engine (Listener) reports a failed session on the shared host, the next translation request is answered normally instead of being dropped — the connection used to hang for 90 seconds.
  • Cleaner Uninstalls Across the Family: removing the last Emebala app now also removes the bundled CUDA runtime libraries from the shared engine folder, and the translation worker carries one unified filename no matter which Emebala product installed it, so updates and uninstalls always find it.
  • GPU Acceleration Out of the Box: the installer now bundles the shared engine's GPU libraries (CUDA runtime) and the speech-recognition worker shared by all Emebala apps, so a fresh install gets GPU acceleration immediately instead of silently falling back to slower CPU-only translation.
  • Honest Download Size: the installer is now about 700 MB. Nothing is slower — app and translation speed are exactly the same as before; only the one-time download is bigger, and upgrading from any previous build is fully supported.
Step 2: Windows SmartScreen Verification
Because Emebala is an independent patron-funded open-source release without an annual commercial enterprise certificate, Windows Defender SmartScreen may display: "Windows protected your PC". Click "More info" and select "Run anyway". You can verify the SHA256 checksum in PowerShell before execution.
PowerShell (Cryptographic Integrity Verification)
Get-FileHash .\Emebalachat_Setup_0.10.2.exe -Algorithm SHA256

03 System Requirements

Hardware Subsystem Minimum Requirements Recommended (Optimal Latency)
Operating System Windows 10 64-bit (Build 19041+) Windows 11 64-bit (22H2+)
CPU Instruction Sets x86_64 with AVX2 & FMA3 Modern 8+ Core (AVX2 / AVX-512 supported)
System RAM 8 GB RAM 16 GB+ Dual-Channel (Fast DDR4/DDR5)
GPU Acceleration Integrated Intel UHD / AMD Vega NVIDIA GeForce RTX (CUDA sm_75+ Turing or newer)
Storage I/O SATA SSD (1.5 GB for Q8_0 weights) NVMe SSD (enables sub-second mmap paging)
Audio Subsystem DirectSound compatible audio Windows Speech Platform with installed language packs

04 In-Place Send-and-Replace Mechanics

In Emebalachat/src/hook.hpp, Emebala Chat implements a revolutionary keystroke replacement workflow: you simply type naturally in your native tongue inside Slack, Discord, WeChat, Teams, WhatsApp, or any browser input, and press the key you normally press to send messages.

Key Combination Hook Predicate & Code Rule Exact Resulting Behavior
Enter EnterSendReplaceAllowed() In-Place Send-and-Replace: Intercepts typed buffer, translates it into the active target language, replaces text in-place, and sends.
Shift + Enter Shift modifier check (!shift) Pass-Through Newline: Bypasses translation entirely; passes straight to target application to insert a multiline carriage return.
F9 hotkey_toggle handler Global Toggle: Instantly toggles translation engine between Active (Green) and Paused (Grey) states.
Ctrl + F9 hotkey_lang handler Cycle Target Language: Rotates target language through the active language list with sound confirmation.
Ctrl + Shift + Enter hotkey_mode handler Toggle Auto-Send: Switches between replacing text only vs replacing-and-submitting automatically.
IME Composition Awareness (REQ-R17) When typing with an East Asian Input Method Editor (Hangul, Japanese Romaji/Kana, Chinese Pinyin), keys in active composition arrive as VK_PROCESSKEY (0xE5). The hook's internal ImeMirrorNext state machine guarantees that unfinished compositions are never accidentally truncated or corrupted.

05 Floating Rosetta Badge & Drag Gestures

Emebala Chat renders a lightweight hardware-accelerated Direct2D badge widget directly on the screen (Emebalachat/src/ui/badge.cpp):

  • Single Left-Click: Toggles engine between Active and Paused translation state.
  • Double-Click: Instantly swaps source and target translation direction (e.g. English ↔ Korean).
  • Click & Drag: Freely repositions the floating status pill anywhere across single or multi-monitor desktop setups. Coordinates persist in badge_x and badge_y.
  • Double Ctrl + C Trigger ("double_ctrl_c"): Highlighting any text on screen and pressing Ctrl+C twice quickly summons the Floating Translation Tooltip right at your cursor.

06 Windows Speech Platform (Chat TTS)

In Emebala Chat (src/sound.cpp), speech synthesis is powered directly by the native Windows Speech Platform (Windows 내장 언어팩) through the ISpVoice COM interface and WinRT Windows.Media.SpeechSynthesis.

Zero External Audio Models & Zero Cloud Voice Transmission Chat uses the voice packs already installed in your Windows operating system (e.g. Microsoft Heami, David, Zira, Haruka, Hedda). Pronunciation audio is synthesized with 0ms network latency and absolute privacy.

07 Low-Level Keyboard Hook Safety Model

Emebala Chat's keyboard hook architecture (src/hook.cpp) was engineered under stringent safety constraints:

  • LowLevelHooksTimeout Prevention (REQ-R06): The hook callback performs zero blocking I/O, zero network calls, and zero model inference on the hook thread. Heavy workloads are dispatched asynchronously to a dedicated pipeline worker thread (src/worker.cpp).
  • Zero Cloud Clipboard Leakage: When capturing and restoring text selections, the Windows flag CanIncludeInClipboardHistory = 0 is applied, preventing transient translation strings from polluting Windows 10/11 cloud clipboard synchronization history.
  • Zero Telemetry Logging: Keystrokes that are not the intercepted action keys are never logged, buffered, or stored to disk.

08 Emebala Reader: Reading Experience

Emebala Reader, currently in active development, delivers a Windows sanctuary for long-form literature and scholarship:

  • EPUB & PDF Import: Open standard EPUB and PDF books in a focused, distraction-free reading environment.
  • Continuous-Scroll Reading: The current build presents books in a fast continuous scroll, optimized for skimming, reference reading, and long chapters.
  • On-Device Translation: Page translation runs through the HY-MT1.5-1.8B GGUF model entirely on your own hardware — no page, paragraph, or note ever leaves your computer.

09 Hy-MT2 33 World Languages Specification

The core translation engine supports 33 World Languages (1,056 bidirectional translation pairs) organized across five major geographical and linguistic families:

Direct Bidirectional Translation All 33 languages translate directly into any other supported language without routing through an intermediate English pivot, maintaining nuanced cultural and grammatical fidelity.
# Language Family Language Name ISO 639-1 Native Script Local Execution Status
1East AsianKorean (한국어)koHangulActive Production
2East AsianJapanese (日本語)jaKanji / KanaActive Production
3East AsianChinese Simplified (简体中文)zh-CNSimplified HanziActive Production
4East AsianChinese Traditional (繁體中文)zh-TWTraditional HanziActive Production
5EuropeanEnglishenLatinActive Production
6EuropeanGerman (Deutsch)deLatinActive Production
7EuropeanFrench (Français)frLatinActive Production
8EuropeanSpanish (Español)esLatinActive Production
9EuropeanPortuguese (Português)ptLatinActive Production
10EuropeanItalian (Italiano)itLatinActive Production
11EuropeanDutch (Nederlands)nlLatinActive Production
12EuropeanRussian (Русский)ruCyrillicActive Production
13EuropeanUkrainian (Українська)ukCyrillicActive Production
14EuropeanPolish (Polski)plLatinActive Production
15EuropeanCzech (Čeština)csLatinActive Production
16Middle EasternArabic (العربية)arArabic (RTL)Active Production
17Middle EasternHebrew (עברית)heHebrew (RTL)Active Production
18Middle EasternPersian / Farsi (فارسی)faPerso-Arabic (RTL)Active Production
19Middle EasternTurkish (Türkçe)trLatinActive Production
20South Asian / IndicHindi (हिन्दी)hiDevanagariActive Production
21South Asian / IndicBengali (বাংলা)bnBengaliActive Production
22South Asian / IndicUrdu (اردو)urNastaliq (RTL)Active Production
23South Asian / IndicTelugu (తెలుగు)teTeluguActive Production
24South Asian / IndicTamil (தமிழ்)taTamilActive Production
25South Asian / IndicMarathi (मराठी)mrDevanagariActive Production
26South Asian / IndicGujarati (ગુજરાતી)guGujaratiActive Production
27Southeast AsianVietnamese (Tiếng Việt)viLatin (Quốc ngữ)Active Production
28Southeast AsianThai (ไทย)thThaiActive Production
29Southeast AsianIndonesian (Bahasa Indonesia)idLatinActive Production
30Southeast AsianMalay (Bahasa Melayu)msLatinActive Production
31Southeast AsianTagalog / FilipinotlLatinActive Production
32Southeast AsianKhmer (ភាសាខ្មែរ)kmKhmerActive Production
33Southeast AsianBurmese (မြန်မာစာ)myMyanmarActive Production

10 5 Regional Dialects & Indigenous Heritages

Beyond the 33 major world languages, Emebala safeguards 5 regional dialects and indigenous tongues often neglected by commercial translation cloud providers:

Dialect / Indigenous Heritage ISO 639 Cultural Geography Engine Specialization
Cantonese (粵語 / 廣東話) yue Hong Kong, Macau, Guangdong, Diaspora Preserves colloquial Cantonese characters, particles & Jyutping syntax
Tibetan (བོད་སྐད།) bo Tibetan Plateau, Himalayan Regions Syllabic tsheg delimiter parsing, Buddhist canon terminology
Uyghur (ئۇيغۇرچە) ug Central Asia, Xinjiang Basin Perso-Arabic RTL, vowel harmony adaptation, classical Chagatai roots
Mongolian (Монгол хэл / ᠮᠣᠩᠭᠣᠯ) mn Mongolia, Inner Mongolia Dual mapping for Traditional Vertical Script and Modern Cyrillic
Kazakh (Қазақ тілі / Qazaqşa) kk Kazakhstan, Central Asian Steppe Support across Cyrillic, Latin reforms, and Arabic (Tote Jazu) scripts

11 On-Device Inference Architecture (GGUF)

Emebala tailors its neural execution layer to the operational demands of each application:

Emebala Chat: Embedded llama.cpp (C++20)

Emebala Chat embeds llama.cpp directly via CMake FetchContent. It executes quantized GGUF weights (models/Hy-MT2-1.8B-Q8_0.gguf) with hardware acceleration:

  • Zero Dynamic Allocations during Translation: The context and KV cache are pinned in memory for instantaneous keystroke response (~40ms).
  • WinHTTP Cloud Fallback Client (src/google_translate.cpp): When cloud_fallback_enabled: true is explicitly configured by the user, Chat includes a native WinHTTP client for fallback translation. When false (default), zero external traffic is ever permitted.
Emebala Reader: HY-MT1.5 On-Device Translation (In Development)

Emebala Reader is a Windows application in active development. Its translation engine runs entirely on your own hardware:

  • HY-MT1.5-1.8B GGUF (hy-mt1.5-1.8b.gguf): The quantized Tencent HY-MT1.5 translation model executes fully offline — no page, paragraph, or reading note ever leaves your computer.

12 Zero-Telemetry Verification Protocol

Verify Emebala's zero-cloud guarantee using your preferred network monitoring tool (Wireshark, Fiddler, or Windows Resource Monitor):

PowerShell (Audit Outbound Connections of Emebala)
Get-NetTCPConnection | Where-Object { (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName -like "*Emebala*" }

The output is completely empty. No outbound socket connects, no telemetry pings, and no background analytics ever leave your device.

13 Global Hotkeys & Keyboard Shortcuts Matrix

The definitive shortcuts verified directly against Emebalachat/src/hook.hpp and src/config.hpp:

Target Action Trigger Key / Gesture Code Reference Behavior Details
In-Place Send & Replace Enter EnterSendReplaceAllowed Translates typed input buffer in any chatbox and replaces it in-place.
Pass-Through Newline Shift + Enter !shift predicate Inserts multiline carriage return without triggering translation.
Toggle Active / Paused F9 hotkey_toggle Toggles translation between active (green) and paused (grey) state.
Cycle Target Language Ctrl + F9 hotkey_lang Advances target language forward through the 33 supported world languages.
Toggle Auto-Send Mode Ctrl + Shift + Enter hotkey_mode Toggles whether translated text is automatically submitted on Enter.
Drag-to-Translate Tooltip Double Ctrl + C "double_ctrl_c" Pressing Ctrl+C twice quickly summons translation tooltip at cursor.
Badge Toggle State Left-Click Badge badge.cpp Single click on floating Direct2D pill toggles pause/active.
Badge Swap Languages Double-Click Badge badge.cpp Double click on floating Direct2D pill flips source and target language.
Badge Reposition Drag Badge badge.cpp Click and drag floating pill to any monitor; coordinates persist in config.

14 Emebala Chat config.json Schema

The canonical configuration file is %LOCALAPPDATA%\Emebalachat\config.json (on first launch, missing keys fall back to compiled-in defaults, and a legacy config found next to the executable is migrated once). Below is the verbatim default template shipped in the v0.10.2 repository (config.example.json, 25 keys):

config.json (verbatim template from the v0.10.2 repository)
{
  "ui_language": "auto",
  "engine_type": "auto",
  "model_path": "models/Hy-MT2-1.8B-Q8_0.gguf",
  "source_language": "Auto Detect",
  "target_language": "English",
  "auto_send": false,
  "sound_enabled": true,
  "drag_to_translate": true,
  "cloud_fallback_enabled": false,
  "engine_host": { "enabled": true, "spawn": true, "idle_exit_ms": 600000 },
  "openai": { "base_url": "", "model": "", "api_key_dpapi": "", "api_key_sha256": "", "http_consent_given": false },
  "_openai_doc": "OpenAI Compatible cloud engine (engine_type: \"openai\"). base_url/model are user-supplied; api_key_dpapi is the Windows-encrypted (DPAPI) API key and api_key_sha256 its integrity digest - both are written by the in-app settings dialog, never enter the key by hand in cleartext. http_consent_given records the explicit consent the app requires before sending your key to a plaintext http:// endpoint. The app serializes this block unconditionally, so an untouched round trip writes it back as the empty defaults above.",
  "diag_log_enabled": false,
  "_diag_log_enabled_doc": "MASTER switch for the diagnostic log file. Default false: the app never creates a log file (privacy-by-default release posture). Set true (and restart) to write logs to %LOCALAPPDATA%\\Emebalachat\\logs\\ for debugging; the whole logs folder is capped at 200MB (oldest files pruned at startup). Only enable while actively troubleshooting.",
  "diag_log_content": false,
  "_diag_log_content_doc": "Only has an effect when diag_log_enabled is true. Logs are shape-only by default (key codes, window class, lengths, timings). Set true to ALSO record user content: typed characters, foreground window titles, captured text and translation output. Privacy decision: only enable while actively troubleshooting, and restart the app after changing this value.",
  "privacy_notice_shown": false,
  "_privacy_notice_shown_doc": "One-shot privacy notice record (app-managed). Set false (or delete the key) to see the first-run privacy popup again on the next start: the popup is blocking and no translation is served until it is dismissed. The app sets this to true before showing the popup, so it appears exactly once per install; full privacy details live in README.md.",
  "drag_hotkey": "double_ctrl_c",
  "hotkey_toggle": "F9",
  "hotkey_lang": "Ctrl+F9",
  "hotkey_mode": "Ctrl+Shift+Enter",
  "_hotkeys_doc": "hotkey_toggle/lang/mode accept 'Mod+Key' (Ctrl/Shift/Alt/Win + F1-F24, Enter, Esc, Tab, Space, arrows, A-Z, 0-9). Invalid values fall back to defaults. drag_hotkey supports only 'double_ctrl_c'. Overlapping combos fire one action in order: toggle > lang > mode.",
  "user_model_id": "",
  "_user_model_id_doc": "Registry id of the .gguf model you registered yourself (tray > Translation engine > User-selected (.gguf)); engine_type \"user_gguf\" serves it through the shared engine host. Written by the app; leave empty unless you know the registered id.",
  "temperature": 0.0,
  "top_p": 0.6,
  "top_k": 20,
  "repetition_penalty": 1.05,
  "badge_x": -1,
  "badge_y": -1
}
cloud_fallback_enabled Privacy Gate Defaults to false. When false, your text is strictly kept on local silicon and never dispatched to any external HTTP fallback under any condition.

15 Troubleshooting & Frequently Asked Questions

Q1: Why does in-place replacement not trigger inside Administrator command prompts?

Windows User Interface Privilege Isolation (UIPI) restricts standard user applications from sending synthetic keyboard events to elevated processes. If you wish to translate inside elevated terminals, run Emebala Chat as Administrator.

Q2: How do I enable additional TTS voices in Emebala Chat?

Navigate to Windows Settings > Time & Language > Speech > Manage Voices > Add voices. Install your preferred language pack. Emebala Chat's COM enumerator detects new voices immediately without requiring a restart.

Q3: How do I perform a completely clean uninstallation?

Exit the application via the system tray, then uninstall it from Windows Settings > Apps. The uninstaller removes the program along with your per-user configuration (%LOCALAPPDATA%\Emebalachat\). The shared AI model and engine under %LOCALAPPDATA%\Emebala\Common\ are preserved while any other Emebala app remains installed; when you remove the last one, the uninstaller asks before deleting them.

GitHub Organization ↗ Sponsor on Gumroad ↗ Contact Founder Team →