·
1.0.8 preview · TestFlight

Local Mind

Large models run on the Machine in front of you. Once a model is serving, the engine cannot open a network connection — the prompt has nowhere else to go.

New in 1.0.8

Local judgments powered by jev-rs. Build 75 is available to internal TestFlight testers; the App Store release is being prepared. The current App Store version is 1.0.7.

Typed answers in the Judgments tab

Ask the local model yes-or-no questions, choose among named options, or rate text on an ordered scale. The Judgments tab shows the answers and their probability distributions.

One message, several questions

Paste a customer message and ask which team should handle it, how urgent it is, and whether the customer threatens to leave. Define your own questions and labels to use the same workflow for your own text.

Zero generated output tokens

The engine scores answer labels from the model’s next-token distribution, with no generated response text. Multiple questions can reuse the shared text prefix. The probabilities describe the model’s answers; they are not measured accuracy.

jev-rs — open source, by us

Our Rust judgments engine, jev-rs, powers this feature and is available under MIT OR Apache-2.0. Developers can also request typed judgments through the Jev-compatible POST /v1/systemone endpoint on the local service.

Earlier releases are kept in full: 1.0.7, 1.0.6, 1.0.5, 1.0.4, 1.0.3 and 1.0.2.

Every option, in the order you meet them

Four decisions stand between a model file and a running assistant. The app makes each one explicitly, and tells you which choices your Machine can actually honour — a 594 GB model is offered, flagged, and honestly priced rather than hidden.

STAGE 01 Model Downloaded and SHA-256 verified before it will load.
  • DeepSeek-V4-Flash267B MoE, three expert recipes
  • DeepSeek-V4-Pro-0813new1.6T MoE, 850 GB — out-of-core only
  • Qwen3 · 3.6 · 3.8new4B to 32B dense, a 35B-A3B MoE, and a 27B with 256K context
  • Muse Glimmer 30BnewMeta, 30B dense in 17 GB
  • MiniMax H3newText to video, with synchronised audio
  • Laguna S / XS 2.1Poolside coding models, 110B and 33B
  • GLM-5.3-Flashnew320B MoE, 18B active — the first GLM that fits in memory on a 128 GB Mac
  • Qwen3.8-Flash-Nextnew125B MoE, 6B active — hybrid linear and sparse attention
  • DeepSeek-V4-Flash Vision-ExpnewSees images — model plus its encoder, 81.6 GiB together
  • DeepSeek-V4.1-Flashpurchase763B MoE, 366 GB — only ~152 GiB of it is weights
  • Qwen3.8-Flash-Next MTPpurchaseThe same 125B, drafting several tokens at a time — 147 GB, ~45 GiB resident
  • Kimi-K3~1500B, out-of-core only
  • Bring your ownAny GGUF already on disk
STAGE 02 Engine Which implementation executes the weights. Named, so a number is never misattributed.
  • optimizedOur Rust engineHand-written Metal kernels, generated by our own compiler
  • referenceantirez's C engineThe upstream reference, for models it supports
  • llamacppllama.cppThird-party, linked in-process
  • llamacpp-ds4llama.cpp + ds4 kernelsUpstream with our kernels substituted
STAGE 03 Residency Where the weights live. Decided by physics — size against memory and disk.
  • pureGPU residentWhole model in unified memory. Fastest.
  • ssdSSD-streamExperts stream from disk. Runs models larger than RAM.
  • hybridCPU + GPUSplit across both. Last resort for the largest files.
STAGE 04 Surface How you reach the running model.
  • PlaygroundPrompt, streamed answer with thinking split out, and a speed report
  • Generate VideonewA few seconds of video from a description, or from a first and last frame
  • Local APIChat-completions and Anthropic wire formats, loopback by default
  • AI agentsWire a coding agent to the local model in one click
  • Serve othersnewOpt in per session, API key required — off again at every launch

What your Machine can run

Engine binds 127.0.0.1:8000

ds4-rs-amd AMD ROCm. A controller: it probes the hardware, plans the split and launches the ROCm engine. Measured on the Ryzen AI Max+ 395 row above. The only one of the three whose tarball also carries its licence and notice files. available · x86-64
ds4-rs-ascend Huawei Ascend NPU. The controller only — the tarball holds that one binary, not a standalone server. available · arm64
ds4-rs-cuda NVIDIA. The engine behind the GB10 row above, built for the Grace arm64 host that machine is. available · arm64

One command. It detects the accelerator, fetches only the matching binary, checks it against a published SHA-256, and installs the key:

curl -fsSL https://peria.ai/install | sh -s -- --key DS4-… --email you@example.com

Without a key it installs and runs the unlicensed path, so you can try it before buying one.

Piping a script into a shell asks you to trust what you cannot read, which is the opposite of everything else on this page. The same install, verifiable:

curl -fsSLO https://peria.ai/install shasum -a 256 install # must match the value published at peria.ai/install.sha256 sh install --key DS4-… --email you@example.com

One key, every binary. The licence carries an expiry and the address it was issued to, and nothing else — there is no per-binary entitlement, so a key bought for one accelerator works on the others as they ship. It is checked offline against a public key compiled into the binary: no network is consulted, so it works on an air-gapped machine, and it stops working the day after it expires without needing to phone home. Keys come from peria.ai, emailed on purchase.

The prompt cannot leave

Enforced, not promised. Once the engine has loaded weights and bound its port, it asks the kernel to revoke its own networking — irreversibly, for the life of the process.

Check it while it serves:

lsof -i -a -p <pid>

1.0.3 adds one door, and it is locked by default. Serving others binds the LAN instead of loopback — so it needs a key you minted, it is refused without one, and it switches itself off again at the next launch. Nothing you do not turn on this session.

Agents on your Machine

The app writes each agent's config and points it at the local engine.

  • Claude Code
  • OpenCode
  • Open Cowork
  • DeepSeek Harness (dsh)new
  • Grok Buildnew
  • Or your own — name the binary and the wire format

Numbers you can check

Every run reports time to first token, prefill and decode rate — beside the engine that produced them and the model actually served.

Two prompts: a short chat, and a ~3000-token passage that measures real prefill.

Rankings are links, not verdicts — 1.0.3 lets you add the leaderboard you trust beside the ones we shipped.

Weights are verified

Every download carries its expected SHA-256. A mismatch is refused rather than loaded, and a partial file is reported as incomplete instead of failing later as corruption.

Built on other people's work — and our own, in the open

Local Mind is a small amount of new code on top of a great deal of open source. Named because a benchmark is meaningless without saying whose code produced it, and because these projects are the reason any of this runs at all.

Ours, open

  • jev-rs — our open-source Rust engine for typed local judgments: yes/no, choices and ordered scores. MIT OR Apache-2.0.
  • tile-rs — the compiler framework the app's own kernels come from. Kernels are written once in a Rust tile DSL and lowered through MLIR to 15 backends; the Metal kernels running your model on this machine are generated by it.
  • pu-rs.org — a ranking system for accelerator kernels, measuring execution time on real hardware rather than quoting peak FLOPS. Source and submissions are open, so a claim there can be re-run.

Also ours

  • precc — predictive error correction for coding agents. Different problem, same habit: measure it, publish the number, let someone check.

The inference engine itself is not open. The kernels it runs are generated by tooling that is, which is the part worth reading.

Engines

  • llama.cpp and ggml — Georgi Gerganov and contributors. Linked in-process as one of the selectable engines, and the origin of the GGUF format every model here is distributed in. MIT.
  • ds4 — Salvatore Sanfilippo (antirez). The upstream reference engine, shipped as the reference option and used as the correctness oracle our own kernels are checked against.

Compiler and runtime

  • Rust — the engine, the server and the compiler backend are Rust. Apache-2.0 / MIT.
  • LLVM and MLIR — our kernels are generated through an MLIR dialect before they become Metal, CUDA or AscendC. Apache-2.0 with LLVM exceptions.
  • Rust crates doing load-bearing work, notably ed25519-dalek, sha2, serde and serde_json.

Models

  • DeepSeek-V4-Flash — DeepSeek
  • DeepSeek-V4.1-Flash — DeepSeek, MIT
  • GLM-5.3-Flash — Z.ai (Zhipu), MIT
  • Qwen3 and Qwen3.6 — Alibaba, Apache-2.0
  • Qwen3.8-Flash-Next — Alibaba, Qwen community licence
  • Laguna S / XS 2.1 — Poolside
  • Kimi-K3 — Moonshot AI
  • Muse Glimmer 30B — Meta, Apache-2.0
  • MiniMax H3 — MiniMax

Each carries its own licence, shown in the app before download.

Distribution

  • Hugging Face — where the weights come from, and the quantisers who publish them.
  • The community that produces the GGUF conversions and imatrix quantisations these models are usable at all on a desktop because of.