Skip to content

Releases: AurielSolaris/NekoChat

v0.1.2

v0.1.2 Pre-release
Pre-release

Choose a tag to compare

@AurielSolaris AurielSolaris released this 15 Sep 04:03

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

v0.1.1 Pre-release
Pre-release

Choose a tag to compare

@AurielSolaris AurielSolaris released this 14 Sep 20:17

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

v0.1.0 Pre-release
Pre-release

Choose a tag to compare

@AurielSolaris AurielSolaris released this 14 Sep 19:46

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 .safetensors or PyTorch .pt models. Qwen3 chats in its proper chat format.
  • Verified output. On CPU, Vulkan, and OpenGL ES, replies are token-for-token identical to Hugging Face transformers for 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.