Releases: AurielSolaris/NekoChat
Release list
v0.1.2
NekoChat v0.1.2
Quantization, a memory indicator, UI/model thread separation, and two themes.
New
A. Quantization (FP16 / FP8 / FP4)
A new Weight precision setting. Any FP16/BF16 checkpoint is converted when the model loads (2–3 seconds); changing the setting reloads the model. Official FP8 checkpoints (such as Qwen3-1.7B-FP8) are supported. Both CPU and GPU (Vulkan and OpenGL ES) run all three formats. The GPU start-up self-test covers the new code, and all three backends produce the same text for each format.
Qwen3-0.6B on CPU (Samsung Galaxy M31):
| Precision | Memory | Speed | Perplexity (↓ better) | Same next word as FP16 |
|---|---|---|---|---|
| FP16 | 1137 MB | 6.7 tok/s | 16.37 | 100% |
| FP8 | 604 MB | 6.9 tok/s | 16.47 | 93% |
| FP4 | 320 MB | 11.5 tok/s | 20.75 | 76% |
- FP8 is nearly lossless and halves memory. It isn't faster on the M31, whose older CPU cores can't unpack it quickly; newer phones should be faster.
- FP4 is 1.7× faster on CPU, but answers from a model this small get noticeably worse. It should hurt less on 1.7B and up.
- On the M31's GPU, FP8 and FP4 save memory but not time (4–4.8 tok/s either way).
B. Memory Indicator
- Settings shows the model's total memory, split into weights (with precision), chat memory, working buffers, and the whole app's RAM.
- The chat header now shows backend, precision, speed, and memory (e.g.
CPU · FP8 · 612 MB). - Updates every second without waiting on the model.
C. Themes
A new Theme page (Settings → Appearance) with two options:
- NekoChat Rose (default) — the original pastel-pink glass design.
- NekoChat Ocean — Solarized Dark base with light and dark pastel blues.
Each option shows a small chat preview, and switching applies instantly. In Ocean, error and delete colours stay a soft red so destructive actions still read as dangerous.
Fixed
UI/Model Thread Separation
Cause of the freeze: on some phones (such as the OnePlus), the app counted slow cores as fast ones and ran busy threads on all 8 cores, starving the UI and keyboard.
Fix:
- Model threads now run at lower priority than the UI and keyboard.
- Fast and slow cores are detected correctly.
- Two cores are always left free.
Result on CPU: frame times while typing during generation match typing with no model running.
GPU backends: work is now sent to the GPU one layer at a time so the UI can get in between. This didn't fully remove the stutter on Mali GPUs (~250 ms per frame on Vulkan while generating), and it costs Vulkan about 15% speed (5.1 → 4.4 tok/s on Qwen3-0.6B FP16). OpenGL ES was roughly the same before and after (4.3–4.8 tok/s). The engine is already built with -O3, and the remaining stutter isn't a compiler issue — it comes from GPU work delaying the UI's frames.
If the freeze happens on a GPU backend, switching to CPU is the practical fix today. On the M31, the CPU backend is also faster than GPU. A proper fix would run the model in a separate process — planned for the 0.2.0 refactor.
Notes
- Updating from v0.1.0 or v0.1.1 keeps your chats, settings, and unfinished downloads.
- Requirements are unchanged: Android 5.0+ on 64-bit ARM (
arm64-v8a).
Verify Your Download
| Version | 0.1.2 (versionCode 3) |
| Size | 4,185,188 bytes |
| APK SHA-256 | f3e8925c25b4942f05206c16a67a7d0d84de6185c7f96270fc809e3e12bcd745 |
| Signing certificate SHA-256 | 6B:3C:CD:1A:34:07:7C:71:23:A8:AA:5C:AC:7E:4C:FA:E9:BE:44:83:70:34:B1:10:C8:D6:96:76:AD:D4:9F:BA |
Same signing key as v0.1.0 and v0.1.1 — installs as an update.
License
GPL-3.0. Bundles aria2 1.37.0 (GPL-2.0-or-later). License texts are in Settings → About.
v0.1.1
NekoChat v0.1.1
A fix-and-choice update: model downloads now work, and you can pick how they're downloaded.
Fixed
- Downloads stopped right after the small files with "The downloader stopped unexpectedly." The built-in downloader was shutting itself down because Android's app sandbox made it think NekoChat had closed. It now runs for as long as NekoChat does. Tested with GPT-2 (548 MB); the file's checksum matches Hugging Face's.
- A briefly busy downloader no longer fails the whole download.
- Download errors are now one short, readable message.
New
- Choose your downloader in Settings → Downloads:
- aria2 (multi-thread): 8 connections per file, the fastest (default).
- aria2 (single-thread): 1 connection per file, for networks that dislike parallel connections.
- Fetch (single-thread): Android's own HTTP client. Resumes interrupted downloads too.
Each download keeps the downloader it started with.
- Blocked-network detection. Some Android ROMs switch off internet access for newly installed apps. NekoChat now tells you when that's happening and offers Open network settings. Turn on Mobile data & Wi-Fi → Allow network access, then tap Retry.
- The downloads list shows which downloader each download uses.
- The DNS choice (System or Built-in) now applies to aria2. Fetch always uses your phone's DNS.
Notes
- Updating from v0.1.0 keeps your chats, settings, and unfinished downloads.
- Requirements are unchanged: Android 5.0+ on 64-bit ARM (
arm64-v8a).
Verify Your Download
| Hash | |
|---|---|
| APK SHA-256 | 5f28fc6044b4882c4afd8e37c7d3f2dca30047ae3c24438c92c7c610e4f46335 |
| Signing certificate SHA-256 | 6B:3C:CD:1A:34:07:7C:71:23:A8:AA:5C:AC:7E:4C:FA:E9:BE:44:83:70:34:B1:10:C8:D6:96:76:AD:D4:9F:BA |
Same signing key as v0.1.0 — installs as an update.
License
GPL-3.0. Bundles aria2 1.37.0 (GPL-2.0-or-later). License texts are in Settings → About.
v0.1.0
NekoChat v0.1.0
Private, on-device AI chat for Android. NekoChat runs language models on your phone with its own C++ engine — no cloud servers, no accounts, no ML framework. Your chats and models never leave the device.
Highlights
- Two model types: GPT-2 and Qwen3. Loads
.safetensorsor PyTorch.ptmodels. Qwen3 chats in its proper chat format. - Verified output. On CPU, Vulkan, and OpenGL ES, replies are token-for-token identical to Hugging Face
transformersfor both GPT-2 and Qwen3-0.6B. - GPU or CPU, chosen for you. Auto mode tries Vulkan, then OpenGL ES 3.1, then CPU — and only trusts a GPU after a built-in self-test passes.
- Download models in-app. Settings → Download models has one-tap Qwen3-0.6B and GPT-2, or enter any Hugging Face
owner/model.- Only GPT-2 and Qwen3 models are accepted, and each is validated before anything downloads.
- Downloads use multiple connections, resume after interruptions, and show a progress notification.
- Choose between System DNS or aria2's built-in DNS.
- Bring your own models. Pick a folder with the system folder picker — new models appear automatically.
App
- First launch asks only for your name and a model. After that, NekoChat opens on your chats; everything else lives in Settings and About.
- Keep as many chats as you like, each with its own settings: temperature, top-k, top-p, repetition penalty, reply length up to 4096 tokens, seed, and persona.
- Deleting or clearing a chat, and cancelling a download, always prompt for confirmation.
- One Dark and pastel-pink glass design with the maneki-neko mascot, built to stay light on battery.
Performance
Measured on a Samsung Galaxy M31 (Exynos 9611, Mali-G72):
| Model | CPU | Vulkan | OpenGL ES |
|---|---|---|---|
| GPT-2 small (124M) | ~31 tok/s | ~20 tok/s | ~20 tok/s |
| Qwen3-0.6B | ~6.1 tok/s | ~5.0 tok/s | ~4.7 tok/s |
Requirements
- Android 5.0 or newer (API 21), on a 64-bit ARM (
arm64-v8a) device. - ~1.5 GB free storage and RAM for Qwen3-0.6B, or ~0.5 GB for GPT-2.
- Internet access is only needed for downloading models. If downloads fail, check that NekoChat is allowed to use mobile data and Wi-Fi in Android's app settings.
Known Limitations
- Qwen3 "thinking" mode is always off.
- Context length: GPT-2 — 1,024 tokens; Qwen3 — 8,192 tokens on CPU, 4,096 on GPU.
- Only public Hugging Face models can be downloaded; gated and private repos aren't supported.
Verify Your Download
| Hash | |
|---|---|
| APK SHA-256 | c317caf714c361e0af6010741e981fb1b8a2290e7ee141ef2ecdd78c71f |
| Signing certificate SHA-256 | 6B:3C:CD:1A:34:07:7C:71:23:A8:AA:5C:AC:7E:4C:FA:E9:BE:44:83:70:34:B1:10:C8:D6:96:76:AD:D4:9F:BA |
License
NekoChat is free software under the GNU GPL v3. It bundles aria2 1.37.0 (GPL-2.0-or-later) for model downloads. All license texts are available in-app under Settings → About.