explainx.ai0k
TrendingAI News TodayPathwaysSkills
Pricing
explainx.ai

Upskill in AI — 16 free pathways, live workshops & bootcamps, and 50+ courses from practitioners. Plus the skills, tools, and MCP servers to practice on.

follow us

follow on google

Add explainx.ai as a preferred source

corporate training

support@explainx.ai

get started

Find your pathTake Free Evaluation

community

Join the community

learn

mind: share how you thinkpathways — start freeworkshopsbootcampscoursescompare Explainxcertificationsmock testsexplainx universitycorporate traininglearn skills & mcp

discover

skillsmcp serversexplainx mcptoolsmdx readeragentsllmsdesignsdictionarypeopleagi trackerfelony benchranks

company

aboutvisionmissionteaminstructorsteach on explainxpartnershipscommunityhackathonscareers

content

daily AI newsstate of AI — live resultsblogreleasespromptsgeneratorsresource libraryfor LLMsexplainx.ai kids

solutions

all solutionsdeveloper upskillingmarketing upskillingproduct manager upskillingleadership upskilling

newsletter · weekly

Get AI news, tools, and insights in your inbox.

supportcontactprivacytermsdata rightshow we create contentsubmission guidelines

© 2026 AISOLO Technologies Pvt Ltd

explainx.ai

On this page

  • TL;DR: the questions people ask first
  • How Janas runs a model bigger than your RAM
  • What the benchmarks show (and what they do not)
  • How to try Janas without hurting your machine
  • More than a chat binary
  • Limitations and open questions
  • What developers are saying
  • Why it matters for local AI
  • Related reading
← Back to blog

explainx / blog

Janas: Run an 80B MoE Model on a 32 GB Laptop by Streaming Experts From SSD

Local AI, Open Source, Inference, Mixture of Experts, Developer Tools

Part of Local AI

Janas is a dependency-free C engine that streams MoE experts from NVMe, running an 80B model on 32 GB RAM. Benchmarks, install steps and caveats.

Oct 13, 2026·9 min read·Yash Thakker
add explainx.ai
go deep
Janas: Run an 80B MoE Model on a 32 GB Laptop by Streaming Experts From SSD

A new open-source engine called Janas claims you no longer need to fit a mixture-of-experts model in memory to run it. Janas, written in plain C by Maurizio "camauri" Cammalleri, keeps the weights on an NVMe SSD and pulls in only the experts each token actually uses. The README says an 80-billion-parameter model "runs, and answers, on a laptop with 32 GB of RAM." It landed on Hacker News on October 13, 2026, and the numbers are interesting enough, and the caveats large enough, that it deserves a careful read before anyone installs it.

If you follow local AI, this is the latest entry in a growing family of "stream the experts from disk" projects. We have covered several: Colibrì running GLM-5.2 in 25 GB of RAM, TurboFieldfare running Gemma 4 26B in about 2 GB, and Edge0's 35B model in 2.5 GB. Janas differs in being a general engine with chat, an MCP server and an OpenAI-style HTTP API, and in publishing head-to-head numbers against llama.cpp.

TL;DR: the questions people ask first

table · 2 cols
QuestionShort answer
What is it?A C inference engine for MoE models that streams experts from NVMe into a RAM cache
Headline claimQwen3-Next-80B-A3B (48.4 GB file) answers on a 32 GB laptop, 37 tok/s writing with drafts
Which models?Qwen3 (dense and MoE), Qwen3.5, Qwen3.6, Qwen3-Next-80B-A3B, Qwen3-Coder-Next, Gemma 4 variants
Which platforms?Linux x86-64 and Windows 10/11 x86-64, optional Vulkan GPU
Is it free?Yes, GPL-3.0 or later. Model files keep their original licenses
Is it stable?No. The author calls it "an experiment, not a product"
Does it need Python?No. C with no dependencies beyond the C library
Where do I get models?.jns files on Hugging Face under prabanta-dev, or convert GGUF with the bundled tool

How Janas runs a model bigger than your RAM

A mixture-of-experts model splits each feed-forward layer into many "experts" and routes every token through only a few of them. Qwen3-Next-80B-A3B has 80 billion parameters in total but activates roughly 3 billion per token, which is what the "A3B" in the name means. Most of the file therefore sits idle on any given step.

Janas exploits that. According to its README, the model weights stay on disk and the experts a token needs are read from an NVMe SSD. Experts that are needed repeatedly stay in an in-memory cache that fills whatever free memory is available when a model opens. Reads use O_DIRECT, which bypasses the operating system page cache so the engine controls what stays in RAM, and it picks thread counts and GPU use from measurements it takes on the machine.

The result is a trade. You swap a hard requirement (the whole model must fit in RAM) for a soft one (the SSD must be fast and the hot experts must fit in cache). If routing keeps hitting the same experts, the cache absorbs most reads and speed holds up. If it wanders, the disk becomes the bottleneck.

A ball routed through one of several chutes, illustrating how an MoE model activates only a few experts per tokenA ball routed through one of several chutes, illustrating how an MoE model activates only a few experts per token

Speculative decoding is built in

Janas also supports "drafts": a small model proposes several upcoming tokens and the large model verifies them in one pass. On the 80B model the author reports 37 tokens per second writing with drafts and 24 without. The README is candid that draft gains depend on the text, and that on Italian prose they were small. Treat the 37 figure as English-friendly best case.

What the benchmarks show (and what they do not)

All numbers below are the author's own, measured on one machine: Debian 13, Intel Core Ultra 9 185H with integrated Arc graphics, 32 GB DDR5 and a 1 TB NVMe SSD. The main comparisons were run October 9 to 11, 2026 against a llama.cpp build dated September 18, 2026.

table · 3 cols
ModelJanas reading / writing (tok/s)llama.cpp reading / writing (tok/s)
Qwen3-Next-80B-A3B (48.4 GB)62 / 24 (37 with drafts)16 / 2.8
Qwen3-30B-A3B135 / 32122 / 15
Qwen3-4B193 / 27164 / 18
Qwen3-0.6B939 / 130670 / 45

The README reads this as Janas ahead on every row. Our reading is more cautious. The 80B row is the one that matters, because it is the only case where the model genuinely exceeds RAM, and there the gap is large: 62 versus 16 tokens per second on prompt reading and roughly 9 to 13 times faster on writing. That is expected, since a general-purpose engine not tuned for expert streaming will thrash.

On models that fit in memory the gaps are small for reading and bigger for writing, and the README adds an exception: on the 3-bit Qwen3-30B (UD-Q3_K_XL) Janas reads slower than llama.cpp (100 versus 112 tokens per second) but writes about three times as fast. The author also says some llama.cpp runs needed special build flags and some Janas figures are single rounds. A single machine, single rounds and a self-run comparison are exactly the conditions under which numbers flatter the author's project. They are a reason to run janas-bench on your own hardware, not a verdict.

Other figures from the README: draft speeds in chat of 67 tokens per second on Qwen3.5-2B, 24 on Qwen3.5-9B, 34 on Qwen3.6-35B-A3B, 52 on Gemma-4-E2B and 26 on Gemma-4-26B-A4B. On Windows 11 (measured October 12, 2026), Qwen3-4B writes at 25.6 tokens per second and Qwen3-30B-A3B at 34.2. With other applications open, one model kept about three quarters of its speed in the author's test.

A short fast arrow ahead of a longer checking arrow, illustrating speculative decoding with draft tokensA short fast arrow ahead of a longer checking arrow, illustrating speculative decoding with draft tokens

How to try Janas without hurting your machine

Prebuilt binaries exist for Linux and Windows. On Linux, per the README:

bash
curl -LO https://github.com/prabanta-dev/janas/releases/latest/download/janas-linux-x86_64.tar.gz
tar xf janas-linux-x86_64.tar.gz && cd janas
./janas-chat

On Windows, download janas-windows-x86_64.zip, unpack it and run .\janas-chat from the janas folder. To build from source you need build-essential, plus libvulkan-dev glslang-tools vulkan-tools if you want the GPU path, then ./build.sh.

Models are published as .jns files on Hugging Face under prabanta-dev, and a GGUF converter is bundled if you already have models for llama.cpp. Given the stability warnings, three precautions are sensible:

  1. Cap the cache with --cache <GiB> so the engine cannot swallow all free memory and push your desktop into swap.
  2. Set JANAS_GPU=0 first. The author reports a GPU run that triggered a driver reset and took down the desktop.
  3. Run janas-bench before trusting any speed claim, and keep Ctrl-C (stop a reply) and Ctrl-D (exit chat) in mind.

Janas writes only to ~/.cache/janas and to any conversion output location you choose.

More than a chat binary

The repository lists several components beyond the engine: janas-chat (chat with drafts and tools), janas-mcp (an MCP server), janas-server (an OpenAI-style HTTP API with code completion for VSCodium and VS Code), janas-bench, and service tools for flights, earthquakes, weather, maps, prices, GitHub, git and Wikipedia. If you are new to the protocol, our MCP explainer covers what an MCP server gives a local model. The OpenAI-compatible server is the more practical hook: existing editors and agent harnesses can point at it, which is how most people use open models locally with coding agents.

Limitations and open questions

  • One test machine. The README lists AMD CPUs, CPUs without AVX-VNNI, discrete GPUs, slower disks and other memory sizes as untested. A SATA SSD would likely change the picture entirely.
  • x86-64 only. There is no macOS or ARM build listed, so Apple Silicon users should look at TurboFieldfare or llama.cpp instead.
  • Early software. The API and CLI change without notice; only the .jns format (version 2) is promised to stay readable by later versions. The repo had 48 stars and 54 commits when we read it.
  • Licensing. The engine is GPL-3.0 or later, which matters if you want to embed it in a closed product. Converted .jns files keep their original model licenses.
  • SSD wear and heat. The README does not discuss it. Sustained random reads are gentler on flash than writes, but we have no data and would not run it unattended for days.

What developers are saying

The Hacker News thread was small (about 19 points and 7 comments when we read it), but it surfaced two themes. One commenter, 3eb7988a1663, argued that 62 tokens per second is plenty for someone who wants a local model and is not running a swarm of agents. Another, KerrAvon, noted there are now many stream-experts-from-SSD projects and said what the field needs is a guide to all of them, or a merge of the best ideas. A third, InsidiousWombat, speculated about small accelerators integrated with NVMe drives. Those are individual opinions, not verified results; nobody in the thread reported independent benchmarks.

Why it matters for local AI

The pattern is the story. Dense models need their whole weight file in fast memory for every token. MoE models do not, and a growing number of open-weight releases are MoE, including Tencent's Hy3 and the Qwen3 line. Every project that turns "model size" from a RAM problem into an SSD-bandwidth problem pushes bigger models onto ordinary laptops. For a builder, the practical question is not whether Janas wins, but whether an 80B-class model at 24 to 37 tokens per second on a 32 GB machine is good enough for your coding or chat workload. If it is, the hardware bar for useful local AI has just dropped. If you are weighing the opposite approach, a big GPU, see running state-of-the-art LLMs on an RTX 6000 Pro.

Related reading

  • Qualcomm: 100B-parameter phones by 2028, claimed vs verified

  • Colibrì: GLM-5.2 on 25 GB RAM by streaming experts from disk

  • TurboFieldfare: Gemma 4 26B in about 2 GB on Apple Silicon

  • Edge0 open-sources a 35B model that runs in 2.5 GB

  • What is llama.cpp? Run models locally

  • How to run open-source models locally with OpenCode

  • Running SOTA LLMs locally on an RTX 6000 Pro

  • Source: Janas on GitHub and the Hacker News discussion

Specs, benchmark figures and repository details reflect the Janas README as read on October 13, 2026 and may change as the project evolves.

Spotted something out of date? Let us know.
Yash Thakker

Written by

Yash Thakker

Yash is an AI expert with over 300K learners. Join his workshops →

View Yash Thakker in People in AI →

Related posts

Aug 31, 2026

OpenShot 4.0: Local AI Masking, Color Grading, and Screen Recording

On August 30, 2026, OpenShot 4.0 shipped the biggest workflow upgrade in the project's history: a dedicated Color View with scopes and LUTs, a Recording View for screen/webcam/mic capture, 10 new effects, and local AI object masks via ONNX — no subscription. A 319-point Hacker News thread compared it to DaVinci Resolve, Kdenlive, and LosslessCut. explainx.ai breaks down what builders get from a free GPLv3 editor that runs YOLO on your machine.

Jul 30, 2026

TurboFieldfare: Gemma 4 26B in ~2 GB RAM on Apple Silicon

Andrey Mikhaylov’s TurboFieldfare keeps Gemma 4’s shared core and KV in RAM and preads routed experts from disk — ~2 GB process RSS for a ~14 GB model. explainx.ai covers how it works, scores, macOS 26 limits, and when to use MLX instead.

Oct 13, 2026

free-claude-code Explained: A Local Proxy for Claude Code, and Where Your Code Really Goes

free-claude-code is a GitHub trending repo that runs a local proxy so Claude Code, Codex, OpenCode and others talk to 61 other providers. It does not give you free Claude. Here is how it works, the AGPL license, and the plain terms-of-service and data risks.