Skip to content

Releases: arinltte/kevMac

v0.3.0

Choose a tag to compare

@arinltte arinltte released this 04 Oct 12:58

kevMac v0.3.0

The kev 1.0 release: the MLX backend arrives on Apple Silicon, every served checkpoint is pinned, documents run 8× longer with honest limits, and the app can finally see — and clean up — what it has downloaded.

What's new

  • The kev 1.0 engine, pinned. The engine is now fetched from the kev-1.0 release tarball instead of a moving main snapshot, and stamped (.engine-tag) so the app knows exactly what it is running. Existing installs detect a stale pre-1.0 snapshot on launch and update it automatically — preserving the Python environment and downloaded weights — then re-sync the dependencies so mlx-lm arrives. That update is the whole point: the Qwen3.5 hybrid checkpoints now serve through Metal (MLX) instead of crawling on slow reference kernels, and a document is no longer silently truncated at 8,192 tokens.
  • Pinned weights, @v1.0. Every served checkpoint is pinned to the upstream Hub tag (--run jaredpalmer/kev-0.8b@v1.0), and downloads fetch the exact same revision, so HF_HUB_OFFLINE=1 resolution works and a model can never silently change underneath you (upstream moved kev-9b's main to new v2 weights on 2026-09-30; the pin makes that irrelevant). The pin is passed only once the engine stamp says it understands @revision.
  • Faster on every Mac. Measured on a 16 GB MacBook Pro, six-question support-triage request, first (cold) / repeated (prefix-cached) pass: kev-0.8b 520 ms → 221–263 ms (previously ~0.9 s on the old MPS path), kev-4b 1.79 s → 1.55 s. The engine now caches document state prefixes, so re-asking questions about a document you've already analyzed is several times faster — the About pane shows the cache's live hits/misses.
  • Long documents, honestly. States run to 65,536 tokens (0.8B read a 40,000-token document in ~40 s in testing). Past the limit the engine refuses with a 422 that names the token count and the limit, and kevMac turns it into a clear message — never a silent truncation. The editor states each model's validated context (8,192 tokens for 0.8B/4B/9B; 65,536 for 27B). The request timeout was raised from 120 s to 600 s so long first reads survive slower Apple Silicon.
  • Check stability. Every multiple-choice answer has a stability button: kev 1.0 re-runs the question under six shuffled option orders and reports whether the winning option survives them, with the largest probability swing. Changing option order can change an answer — the app shows it instead of hiding it.
  • Live engine card. The About pane shows what the engine is really doing: the pinned run, the backend (mlx/torch), dtype, fitted temperature, release date, the 65,536-token limit and prefix-cache stats — read live from the engine's GET /v1/models, replacing hardcoded claims.
  • The model list, honestly labeled. kev-0.8b (default), kev-4b, kev-9b and kev-27b — all pinned to @v1.0 and downloadable on any Mac. The big sizes are marked experimental with the RAM they realistically need (9B: 48 GB+; 27B: 96–128 GB expected — both unmeasured upstream on Mac): below the recommendation they still load, but serve by swapping (9B measured at ~155 s per request on a 16 GB Mac). The retired previous-generation kev-0.6b is removed from the app, and upgrades from v0.2.x clean its leftover weights (~1.2 GB) automatically on first launch.
  • Storage management. Downloaded models show their disk footprint in the Model menu, and any model you're no longer serving can be removed in one click — through the Hugging Face cache's own removal tooling (hf cache rm), which respects the cache's shared-blob refcounts, so deduplicated weight blobs never orphan and nothing duplicates on disk.
  • Full-weight download rule. kev-27b's 51 GB backbone ships inside its checkpoint; the downloader detects this (no adapter_config.json) and skips the base's weights — fetching only tokenizer bits — instead of doubling the disk cost.

Fixed

  • Examples menu icon — square.grid.2x4 is not a real SF Symbol on current macOS (No symbol named 'square.grid.2x4' found in the console); it is now square.grid.2x2.
  • About pane icon — the pane used the bundle path's LaunchServices icon, which can be a stale cached one for a rebuilt app; it now renders the icon from the compiled asset catalog, which is always current (the bundle's own icon was verified pixel-identical to the latest logo).

Tested

On a MacBook Pro (M4-class, 16 GB), kev 1.0 engine, MLX backend, bf16:

Check Result
kev-0.8b@v1.0 full pass — 520 ms cold / 221–263 ms cached; model card, warmup, 6-question analysis, stability check, 20k- and 40k-token documents, 70k-token refusal (422 with named counts), prefix-cache hits
kev-4b@v1.0 full pass — 1.79 s / 1.55 s; correct playground answers (returns / wrong_size / refund); ~10 GB footprint, 29% RAM free on 16 GB
kev-9b@v1.0 functional but swap-limited — warmup 133 s, analysis 155 s, 11 GB of swap on 16 GB; gated as experimental with the 48 GB+ recommendation (loads via memory-mapped weights)
kev-27b not installed (51 GB); download path implemented, picker-gated as experimental
cleanup 4B, 9B, legacy 0.6b and the stale pre-1.0 main revision removed through hf cache rm — 30.2 GB + 45.5 MB freed; cache now holds exactly kev-0.8b@v1.0 + its base (1.8 GB); 0.8B re-verified with byte-identical answers afterwards

The request/response JSON contract (noul/choice/score in, typed answers out) is unchanged from v0.2.x — existing presets and questions work as they are. Python 3.13 stays pinned (torch ships no 3.14 wheels). KEV_DTYPE=bf16 behavior is unchanged; MLX serves bf16 regardless and ignores it.

Version

0.3.0 (build 4).

Install

Download the latest release from the Releases page, open the .dmg, and drag kevMac to your Applications folder — replacing the existing copy keeps all previously downloaded models working (the engine self-updates to kev 1.0 on first launch).

If macOS blocks the app on first launch:

xattr -rd com.apple.quarantine /Applications/kevMac.app

Or build from source:

git clone https://github.com/arinltte/kevMac.git
cd kevMac
open kevMac.xcodeproj

Press Run in Xcode. Nothing is installed outside ~/.kevMac; remove it any time with rm -rf ~/.kevMac.


Logo by GUMO · https://www.instagram.com/gumoooo._/

Developed by arinltte · arinltte00@gmail.com

v0.2.1

Choose a tag to compare

@arinltte arinltte released this 27 Sep 09:20

kevMac v0.2.1

A fresh face for kevMac — new logo, updated branding, same engine underneath.

What's new

  • New logo. kevMac has a new mascot logo by GUMO — the
    app icon (Dock, Finder, About pane), the README, and the in-app About section all show the new art. The
    previous logo is preserved in the repository as public/logo-legacy.png.
  • Updated About pane. The About section now credits the developer: arinltte ·
    arinltte00@gmail.com
    .
  • Version 0.2.1 (build 2). No engine, model, or setup changes — everything from v0.2.0 works
    exactly the same, and upgrading replaces only the app bundle (your ~/.kevMac folder and downloaded
    models are untouched).

Install

Download the kevMac-macOS-v021.dmg from the
Releases page, open it, and drag kevMac
to your Applications folder — replacing the existing copy keeps all previously downloaded models
working.

If macOS blocks the app on first launch:

xattr -rd com.apple.quarantine /Applications/kevMac.app                                               

Or build from source:

  git clone https://github.com/arinltte/kevMac.git                                                      
  cd kevMac                                                                                             
  open kevMac.xcodeproj                                                                                 

Press Run in Xcode. Nothing is installed outside ~/.kevMac; remove it any time with rm -rf ~/.kevMac.


Logo by GUMO · https://www.instagram.com/gumoooo._/

Developed by arinltte · arinltte00@gmail.com

v0.2.0

Choose a tag to compare

@arinltte arinltte released this 21 Sep 06:11

kevMac v0.2.0

Dynamic model selection, built on the new kev Qwen3.5 family.

What's new

  • Model picker. A Model menu in the toolbar lists every supported checkpoint. The setup now installs kev-0.8b by default; models already downloaded say so in the menu, and the rest show their download size — pick one to download it on demand, then the engine restarts on it automatically.
  • kev-0.8b (new default). The smallest model of the Qwen3.5 family, replacing the 0.6B: 0.829 in-distribution (was 0.801), 0.643 out of domain (was 0.620), and the first small Kev that learns rule composition (held-out pairs 0.38 vs 0.08).
  • Bigger models, one click away. kev-4b (0.877, ~8 GB) and kev-9b (0.876, ~19 GB memory) appear in the picker as download options — downloaded only if you choose them.
  • v0.1.0 compatible. Upgrades keep every previously downloaded model working — kev-0.6b stays in the picker and serves exactly as before; the engine was updated to transformers 5.17 with Qwen3.5's Gated DeltaNet support while attention-only backbones keep the packed fast path.
  • Everything else is unchanged: plain-text questions in, animated answers out, one-button setup into ~/.kevMac, fully offline serving.

Measured on a MacBook Pro (M4, 16 GB)

One five-question request: kev-0.6b ~0.2 s, kev-0.8b ~0.9 s. The Qwen3.5 DeltaNet kernels have no MPS implementation yet (PyTorch falls back to slow reference kernels), so the 0.8B trades ~4× latency for the accuracy gain — the kev README notes an MLX backend for Qwen3.5 is the next planned change. For the lowest latency on a Mac, keep kev-0.6b; for the best accuracy, use kev-0.8b or larger.

Model notes

Model Base Serves In-distribution Download
kev-0.6b Qwen3-0.6B-Base fp32, ~0.2 s 0.801 ~1.2 GB
kev-0.8b Qwen3.5-0.8B-Base bf16, ~0.9 s 0.829 ~1.6 GB
kev-4b Qwen3.5-4B-Base bf16 0.877 ~8 GB
kev-9b Qwen3.5-9B-Base bf16, ~19 GB memory 0.876 ~18 GB

kev-9b needs ~19 GB of memory — it does not fit a 16 GB Mac. kev-4b fits but is tight; both are there for machines with more memory.

Install

Download the kevMac-macOS-v020.dmg from the Releases page, open it, and drag kevMac to your Applications folder — then launch and press Start Setup only if the engine hasn't been set up yet (upgrades from v0.1.0 need nothing; the new model downloads from the Model menu when you pick it).

Or build from source:

git clone https://github.com/arinltte/kevMac.git
cd kevMac
open kevMac.xcodeproj

Press Run in Xcode. Nothing is installed outside ~/.kevMac; remove it any time with rm -rf ~/.kevMac.


The decision engine is kev by Jared Palmer (Apache-2.0); the model weights are on the Hugging Face Hub; the base models carry the Qwen license. kevMac is MIT licensed.

v0.1.0

Choose a tag to compare

@arinltte arinltte released this 21 Sep 00:48
5882798

kevMac v0.1.0

The first release of kevMac — a lightweight macOS app for the kev decision model. Plain questions in, calibrated answers out, everything running locally on your Apple Silicon Mac.

Highlights

  • Plain-text decision questions. Paste any document — a customer message, a review, an article — and build questions as simple forms: Yes / No, Multiple Choice, and Rating. No JSON, no terminal.
  • Animated answers. Results render as plain language — "Returns — 83% confident" — with animated probability bars, confidence captions, latency and token usage, and a Copy Report button.
  • Add / remove everything. Questions, choice options, and rating levels each have add and remove buttons, validated inline.
  • Three examples. Support triage, News article, and Review rating — prefilled on first launch.
  • One-button setup. The first launch installs everything into a dedicated ~/.kevMac folder automatically: uv, Python 3.13, the kev engine, and the kev-0.6b model weights (~1.2 GB) — the weights download by themselves, no button press. The wizard skips whatever is already installed.
  • Fully offline after setup. The engine serves from ~/.kevMac/Cache, starts on launch, health-checks, and warms up in the background so the first real question answers fast.
  • About pane. App icon, version, theme picker, and a Check for Update action against the GitHub releases API.

Model

kev-0.6b — LoRA adapter + pointer head on Qwen3-0.6B-Base. 0.805 in-distribution accuracy; answers land in ~0.1–0.6 s after the background warm-up.

Requirements

  • Apple Silicon Mac (M1 or later), macOS 14.6 or later
  • Xcode, ~3 GB free disk, internet for the one-time setup
  • Measured on a MacBook Pro (M4, 16 GB): the whole app stays under 3.5 GB of RAM (engine ~3.4 GB, app ~75 MB)

Install

Recommended

Download the latest .dmg below, open it, and drag kevMac to your Applications folder.

Gatekeeper

If macOS blocks the app on first launch, run the following in Terminal:

xattr -rd com.apple.quarantine /Applications/kevMac.app

Build from source:

git clone https://github.com/arinltte/kevMac.git
cd kevMac
open kevMac.xcodeproj

Press Run in Xcode, then press Start Setup — everything happens automatically. Nothing is installed outside ~/.kevMac; remove it any time with rm -rf ~/.kevMac.


The decision engine is kev by Jared Palmer (Apache-2.0); weights on the Hugging Face Hub; base model Qwen3-0.6B-Base (Qwen license). kevMac is MIT licensed.