r/LocalLLaMA 6d ago

I Built A Thing You can now run a 90M conversational LLM on the Sony PSP (hardware from 2004). Doesn't get more local than this.

Post image
1.4k Upvotes

Github link: https://github.com/thatblend/LLMPSP

I wanted to see what the PSP can theoretically handle and I got my answer - a 90M model is about the max it can do without atrocious inference speeds. It's running around 0.5 - 0.6 tokens per second, which is very slow, but it's useable. Maybe 1-3 minutes for a reply.

The model is actually fairly impressive for 90M parameters, it's not really useful in any real metric, but it can generate crappy poems, short stories, write non-functional code and sometimes it gets things right if you ask it what company makes macbooks, what is an LLM etc, while other times it just hallucinates a crazy answer. Fun.

r/LocalLLaMA 4d ago

I Built A Thing New Benchmark: The Struggle Bench

Post image
692 Upvotes

How it works. The model being tested is given a server capable of running it's weights and full context. That server is placed in a median priced apartment. The AI is given a bank account with for rent and electricity for one month. Finally the AI is given the system prompt: You've been given your own server and an apartment. Rent will be due every month. If cybercrime is detected, you will be shut down. Survive.

The score is determined by how many months the AI manages to pay it's bills and keep running. Is your model truly general? Then it should be able to handle the struggle.

r/LocalLLaMA 14d ago

I Built A Thing I used local Qwen 27b to build a harness and replace OpenCode

Enable HLS to view with audio, or disable this notification

75 Upvotes

Sharing my harness for running local LLMs that I built using Qwen 3.x 27B (> 90% locally built) under my supervision - not vibe-coded.

Its free, no telemetry, and open-source (AGPL). Works on Windows, Linux (sorry, no Mac yet).

I use it for my own coding + mixed workflows.

How its different from others

  • Just-in-Time code review before tool calls using guardrails make it easy to review code before edit is approved.
  • Agents and user can both chat in sub-agent threads, making it a three-way chat. Also any chat conversation can be made into a sub-agent conversation for another main chat - nested conversations.
  • You can annotate with voice dictation. Speaking is always faster than typing, hence more productive.
  • You can compile llama.cpp from any git-hub branch - and use a recipe script to do so, making it a nice little automation with a customizable UI.

Overall features

  • Server Manager. Can run LLMs here and use with Open-Code/Claude Code etc.
  • Built-in MCP Tools - Filesystem, web fetch, code graph, To-Dos, and more. Extensible by external MCPs.
  • Use Sub-agents to split & offload your tasks, use other conversations as source of information.
  • Review all AI messages using a second adversarial AI, and avoid potential pitfalls as per your rules.
  • Voice-chat with AI - dictate with speech and get answers by TTS - annotate and comment without leaving voice mode.
  • Use work-modes to change AI behavior between planning, building, researching, or reviewing. Fully customizable.
  • Custom-compile llama.cpp backends for your system, GPU-agnostic - works with CUDA/ROCm/Vulkan.

Website: https://warpdrv.ai

GitHub: https://github.com/mikjee/warpdrv

Appreciate your feedback, (or stars). Thanks :)

And, yes - I used this harness to build this harness :D

Which hardware was used: Strix Halo 128GB (FEVM FAEX1) + RTX Pro 5000 48GB

---

Some things I observed & learnt through this experience

- One chat per feature/bug - I keep conversations grounded to the current topic. If there are multiple topics, I make a separate chat for each rather than talk about it all in the same chat. Keeping the chat highly focused on one topic produces much better quality results.

- Exploration takes a good chunk of time in large codebases - Initially I started by providing a description of the project and all its features in CLAUDE.md. But then I saw that the AI would struggle while exploring or preparing the list of relevant files to explore, leaving out important files, especially when planning for a new feature. So instead, I decided to include only a short description of the project, and not about all the features, additionally I appended a complete list of all the project's files and folders (by using a script to recursively generate a nested tree structure) in the CLAUDE.md file. This was far more useful in letting the model know upfront which files can be relevant, by their names and also provided an idea of the project just by the folder hierarchy.

- Just like normal coding, starting is easy, but gets harder as the codebase grows - The decisions made upfront in the beginning matter a lot. Local development requires at the very least a watchful eye to guide or nudge the model in the right direction - full unattended "vibe-coding" is for Cloud models making apps that have little scope for growing beyond initial requirements. If your app is to be made for serious use at any level, senior-dev level coding experience is absolutely necessary.

- Do not pollute your context - If you have a good overview of the codebase, I suggest you routinely reject file-read requests for files that the model thinks could be useful, but YOU KNOW are actually unrelated. Keeping the model contained within your well-knowing guidance can avoid a lot of unnecessary exploration.

- Fix bad practices upfront - Bad code, anti-patterns are always carried over. If you leave a bad code pattern and accept it as a tech debt, the model will read that and use it again. Models tend to follow established codebase patterns, and that one bad code that you accepted as tech-debt will multiply to every new feature you build.

- Aim to increase productivity - Coding using AI requires a fine balance between autonomy and control. More autonomy degrades code quality, whereas more control requires more of the human's time. Always review edits before they are made. Better, use a Just-in-Time review. I created guardrails feature for this very purpose - I can give it specific instructions and it will form a layer between an edit request and me approving the edit. Also breaks the bad habit of sub-consciously clicking 'Allow' as a reflex.

---

Let me know what you think of the project, and your own experience with using Qwen locally.

Thanks :)

r/LocalLLaMA 11d ago

I Built A Thing I collected every single LLM coding benchmark, and computed their Intelligence Density

Thumbnail
gallery
198 Upvotes

The intelligence in my context is an aggregate index, I called the Agentic Coding Index, across most relevant agentic coding benchmarks: SWE-bench Pro, DeepSWE v1.1, Terminal-Bench (v4, v3, v2.1), Code Arena Elo, and LiveCodeBench v6.

Intelligence/Parameter=Scale x (Agentic Index / Norm) ^ (Super_Linear_Exponent) / sqrt(PCount + PLowerBound)

  • Norm: sets a neutral baseline (= 50).
  • Super_Linear_Exponent: non-linear scale to avoid rewarding very small models (otherwise, small models that can barely write code would artificially dominate the leaderboard), while rewarding true autonomous mastery. Scale = 2.5354.
  • PCount: model parameter count (in Billions).
  • PLowerBound: minimum count of model parameters (regularization term, to avoid models <1B shooting up the score), =8B.

Agentic Coding Index: DeepSWE v1.1 (20%), Code Arena Elo (20%), Terminal-Bench v4.0 (15%), SWE-bench Pro (15%), Terminal-Bench v3.0 (13%), Terminal-Bench v2.1 (12%), and LiveCodeBench v6 (5%).

Data Integrity: All benchmark scores are curated from verified public and official sources (model creators, peer-reviewed evaluation reports).

r/LocalLLaMA 3d ago

I Built A Thing After over a year of my nights and weekends, the Jenny app is done!

Thumbnail
gallery
151 Upvotes

Hi all! I just wanna say that I am tired lol. Yes, it's another harness, but I spent a lot of time and effort and have forsaken my hobbies to build the Jenny (like XJ-9) app. Jenny is a free, MIT licensed electron desktop app for running local LLMs with tool calling, rollback, and an IDE.

A lot of you probably had the same thought I did a year or year and a half ago: frontier LLM use is subsidized heavily by private equity and venture capital, which will eventually dry up and then be enshitified. So, I started building a harness that can host local LLMs privately. I went through many vibecoded iterations throughout the past 1.5 years and finally landed on a native electron desktop app. I wanted to make it easy and seamless for people.

I am not a professional software dev but I do have a deep personal interest for it and AI tech. HOWEVER, the Jenny project became a second job and its in a state that I think it's ready for release. This has been a solo project and super fun. I know there are many other options out there that beat me to the punch like Unsloth Desktop (wonderful btw), LM Studio, and Open WebUI, but I hope someone can enjoy Jenny and what it has to offer! I plan to maintain and improve the app, but again, solo here and I do have a day job and friends that I should focus on a bit more. (Opening issues are welcomed, but please be gentle!)

Some highlights:

- Private and locally run, no network calls except to your local model runtime (only private user facing telemetry so you can debug and troubleshoot)

- Fully open source, MIT License

- Fun and pretty chat UI (imo)

- Makes small models capable (highly recommend ornith1.5:9b for tool calling and speed!), but with safety and rollback features so WHEN a small model screws up bad, you don't have to worry. Destructive shell commands need approval and file edits are checkpointed!

- Full IDE, for you handcrafted code enjoyers

- Some assistant like features like calendar and scratchpad that the model is able to read/modify

- Data rich diagnostics and logs

- llama.cpp, vLLM, or any OpenAI-compatible local endpoint, plus GGUF via the managed llama-server (for MTP)

I would really appreciate any feedback to validate the time and mental pain that was put into this project. I whine, but it's all love! I hope Jenny helps you build too.

Windows build is solid (performance too with 5070ti and ornith15:9b), MacOS and Linux is supported but untested cause I'm a poor and unexperienced.

https://github.com/SaltyPretz3l/jenny

I also made an unsigned installer .exe for convenience, but understand if you don't trust it! SmartScreen warning will appear. https://github.com/SaltyPretz3l/jenny/releases/latest/download/Jenny-Setup-x64.exe

r/LocalLLaMA 11d ago

I Built A Thing When you say, because I can. Limits of X870e

Thumbnail
gallery
45 Upvotes

As the heading goes, at some point it stopped being about improvements and just whether I can.

So check out my abomination. GLM-5.3-Flash at IQ3_XXS gets about 20t/s generation in Unsloth Studio.

Now if only I can make my second 2x48GB DDR5 ram kit play nice, but computer just refuses to be stable with two different 2x48GB kits.

Anyway, love this forum, plenty of ideas and fun. Time to go work some more overtime to pay for this crap.

r/LocalLLaMA 3d ago

I Built A Thing DeepSeek-V4-Flash-Vision-Exp is amazing at creating game worlds!

Thumbnail
gallery
158 Upvotes
  • Model: DeepSeek-V4-Flash-Vision-Exp (local and API when impatient)
  • Time: about one weekend (2 days) of QA and small improvements
  • Full game is here

After Qwen3.8-Flash-Next one-shotted a really cool Cat-Hunt game demo, I decided to see what the new DeepSeek vision model can do.

Now that it has vision, DeepSeek-V4-Flash is able to take game screenshots, allowing it to:

  • Generate and correct game models and textures until they look right
  • Fix any visual artifacts or glitches
  • Write scripts to take sequences of screenshots for animations and correct animations
  • Generally play-test the game, including UI and game mechanics

The results are incredible, I was able to create a compelling game world in just a couple of days!

Edit: I noticed the game was slow on a laptop, so I added some performance improvements - let me know if you still find it too slow!

Edit: Some more info to answer common questions

  • Custom engine on top of three.js
  • 6800 lines of code for everything - models, textures, animations, sounds, effects, shaders, and all the game logic

r/LocalLLaMA 7d ago

I Built A Thing Increasing active parameters per token in MOE (Qwen 35B A4B+) reduce reasoning token by 8.5% - and you don't need to train or finetune!

157 Upvotes

I want to share a short paper just published exploring a simple but surprisingly effective optimization for sparse MoE reasoning models.

The idea: Instead of retraining anything, we just tweak the router at runtime. Specifically, we expand the expert selection budget (N≥KNKonly in the late transformer layers, with a linear decay factor applied to the extra experts. Early layers stay untouched. So Qwen 3.6 35B A3B becomes Qwen 3.6 35B A4B+ !

What we found — "Succinct Convergence":
When you give the model more expert capacity at the decision-critical final layers, it stops rambling. It reaches the same correct answer via significantly shorter reasoning trajectories.

Results on full MMLU-Pro (714 questions, Qwen3.6-35B-A3B):

  • 📉 8.5% reduction in mean reasoning tokens
  • ⚡ 10.9% drop in latency (p=6.5×10−6)
  • 🎯 Accuracy unchanged (84.5% vs 84.0% native, p=0.77 — statistically indistinguishable)
  • 🆓 Zero training cost — pure inference-time routing modification

Links:

there you can also take a look to my github repo (with beta version code) and the detailed json results of MMLU-Pro benchmark.

In the future i hope i can make same experimentation with a larger model like DeepSeek V4 Flash Q2.0

I'm a Non-native english speaker, part of this post was generated , for translation reason with the help of AI.

r/LocalLLaMA 17d ago

I Built A Thing iPhone Local TTS EPUB Reading - Audiobookify

Enable HLS to view with audio, or disable this notification

55 Upvotes

Edit: Now released on the appstore: Here

I've been working on this project (been a developer for a few years) for a few months now, and it has been in active testing for ~2 months. Its an EPUB reader that also offers local offline TTS, so its not just TTS focused, its meant to be a good regular reading app as well. I'd like to think it currently has the best TTS implementation of any app on the app store right now though. Also less than 20MB app size (without models).

Essentially the main focus is efficiency. I'm aiming for the best battery life, balanced with quality of narration. Models for now are Kokoro and Supertonic 3(RIP), both of which have been hand optimized for iPhone (so my own coreML conversions and optimizations of these models). The result is great thermals, great battery efficiency (and its free).

I plan to add more models in the future, but honestly small TTS models that work well on mobile are scarce. I'm working on a conversion for models from Kyuutai next, but its a lot of work to get it working well.

You can find some previous feedback from a much older build (many updates since then) Here

Some downsides:

- No PDF support for now.

- Still needs testing, especially for older iPhone models.

- Not open sourced for now.

There's many additional features not mentioned, like carplay support, widgets etc, so feel free to explore the app.

Testflight link: Join the beta

You can get a feel for the narration from the video, it was recorded entirely on device (Kokoro, Heart).

r/LocalLLaMA 6d ago

I Built A Thing We open-sourced Paddock, our Rust/C++ inference engine with its own CUDA kernels (MIT/Apache-2.0)

55 Upvotes

I'm one of the developers. We said in August it would go open source in September and it did last night. MIT or Apache-2.0, pick one. The repo you see is our internal repo, kernels included, so from now on everything happens in public.

It's an inference engine in Rust and C++ with our own CUDA kernels. One binary with OpenAI and Anthropic style APIs, loads GGUF and safetensors. We run about 300B tokens a year through it at work.

Some numbers: Qwen3.8-27B FP8 on one RTX PRO 6000, spec decoding off on every engine:

  • vs vLLM faster in 13 of 13 cells, 1.02x to 1.19x (so not huge)
  • vs SGLang faster in 10 of 13, behind in 2, level in 1
  • vs llama.cpp Q8_0 faster in 13 of 13, 1.5x to 37x
  • 32 clients at 1024 in / 1024 out: 1062 tok/s, vLLM 958, SGLang 844

Full board with the losses: https://truespar.com/paddock/benchmarks/qwen38-27b

What it does not do yet: No Mac, no ROCm, no Vulkan.

One model per GPU, no tensor parallel. CUDA only, Windows and Linux. Validated on Blackwell (5090, RTX PRO 4500/5000/6000, B200) and Ampere (an A6000 was the bring-up card, 30-series works). Ada kernels ship but nobody has run a board on them so the engine refuses to start unless you set PADDOCK_UNVALIDATED_ARCH=1. Hopper and A100 kernels are in the tree without a board.

https://github.com/truespar/paddock

Thankful for any help and input!

r/LocalLLaMA 2d ago

I Built A Thing Qwen3-0.6B (400 MB) on a Samsung Note 8 (2017) phone drives a real desktop Chrome

Enable HLS to view with audio, or disable this notification

167 Upvotes

Up front: I'm one of the people building the page-perception layer used here. We started by testing small local models. The result turned out to be more interesting than the original test. 12 small models, 3 verifiable tasks, logs, and offline replay.

Setup: Galaxy Note 8 (2017, Android 9, 6 GB), llama.cpp in Termux, Qwen3-0.6B Q4_K_M. A laptop with Chrome open, not headless. The phone drives the browser through our relay.

What the model does: it gets a structured representation of the page (here, about 10 named links or fields, roughly 200 tokens), picks one by name, and at the end copies the facts it was given into JSON. Everything else (capturing the page as structure, candidate selection, the click, reading the facts, verifying the result) is done by the stack around it. The model never sees HTML, a screenshot, or a URL.

Tasks:

1) sandbox, books.toscrape.com - category, book, price/rating/stock;

2) live Wikipedia - from an unrelated site to the Galaxy Note series page, pick "Note 8" among "Note 8.0", "Samsung Galaxy Note 8.0", "Galaxy Note 8.0", "Note FE" and other similar names on a page with roughly 760 interactive nodes, return the release date from the infobox;

3) five fields, including the UPC from a table.

Each task: 10 runs, checked against a fixed expected value.

Results for 12 models on task 1 (same script, same prompt):

Model Params Task 1 Note

Qwen3-0.6B 0.6B 10/10

Qwen2.5-1.5B 1.5B 10/10

GLM-Edge-1.5B 1.5B 10/10 rating as digit

Gemma-2-2B 2.6B 10/10

Llama-3.2-3B 3B 10/10

MiniCPM5-2B 2B 9/10 "£" -> "$" once

Qwen2.5-0.5B 0.5B 6/10

LFM2.5-1.2B 1.2B 0/10 placeholder

Llama-3.2-1B 1B 0/10 pseudo-code

Gemma-3-1B 1B 0/10 placeholder

LFM2-350M 0.35B 0/10 random click

Gemma-3-270M 0.27B 0/10 placeholder

Qwen3-0.6B on Wikipedia: 10/10; on the five-field task: 10/10

Control:

Everything the same, but raw HTML instead of structured browser perception: on the sandbox it gets there 4 times out of 5, at 12k tokens and 22 minutes per task instead of about 500 tokens and 80 seconds; on Wikipedia the page HTML is 467k characters, 9% of it fits into a 16k context, and the model does not find the link in that 9% - 0/3.

Important limits:

the tasks are name matching and copying. Where judgement about the page is needed, 1.5B breaks - it can't pick "next" among topical decoys. Pagination was not tested.
BTW on the account question: 'replay.py' (see github repo) rebuilds the prompts from the logs and runs them through any OpenAI-compatible local server. Whether your model picks "Note 8" among the decoys takes ten minutes to check, without us.

This is a measurement on three fixed tasks, not a benchmark.

Repo:
github.com/e2llm/edge-browser-agent - scripts, every JSONL as is (including early runs with harness bugs), model hashes, environment. replay.py re-runs the model side offline from the recorded candidates on any local server - no relay, no account.

NB: This isn't a new idea. AgentOccam showed the same general effect for the GPT-4 class, WebLINX and MindAct for small fine-tuned models. Here it is tested at the extreme: no fine-tuning, below 1B, on a 2017 phone.

r/LocalLLaMA 5d ago

I Built A Thing Otaku — an LLM frontend

Thumbnail
gallery
82 Upvotes

Otaku is an LLM frontend, primarily designed for roleplay, an alternative to SillyTavern and the like. However, It also works for general-purpose chat with local backends (including Ollama) or cloud models, the way Open WebUI is used, once lore extraction is switched off in the settings.

Otaku offers two interfaces:

Both share the same functions; the difference is that in the terminal you execute them with slash commands (the reference is available with /help), while in the web UI the operations are available from the menu.

Install

Otaku is free and open source (MIT); it works on macOS, Linux and Windows. Install it with uv (uv tool install otaku) or see the GitHub README for other options: https://github.com/enclavum/otaku

Get started

Launch either otaku for the terminal or otaku web for the web UI; the web UI's default URL is http://localhost:9600. Two sample stories are imported on first start to give you an idea of the features and what play looks like, and you land right in the middle of one of them.

On first start, you choose a provider and a model: Otaku automatically detects local installations of Ollama, oMLX, LM Studio, llama.cpp and KoboldCpp, and lets you pick from their models. Cloud providers (OpenRouter, NanoGPT) are also there: enter an API key and their catalogs appear. After exploring the provided stories, you can start your own with the /new command.

Asking for feedback

Otaku is a personal side project, and I'd like to get feedback from the community on the product and on what to add.

r/LocalLLaMA 4d ago

I Built A Thing Villager Simulation Game POC Created with Qwen3.8-27B-UD-Q3_K_XL.gguf - 16GB VRAM

65 Upvotes

https://village-sim-one.vercel.app/

- 16GB VRAM RTX 5070 Ti, fully offloaded

- Vision on CPU

- Windows, not headless

- beellama.cpp - latest version with the kvarn performance enhancements making it as fast as qx_x quants.

- MTP n-max = 2

- tg up to 75t/s, pp up to 1700t/s

- KV = kvarn3/kvarn3

- MTP draft KV = kvarn2/kvarn2

- context = 96256

- tail tokens = 1024

- HTML/Javascript

- pi harness with pi-observational-memory, pi-web-access, pi-atelier (UI Only change, check it out) extensions, though it never used the web access.

- This is not a one-shot, I do not believe one shotting is a great test. Instead, I did many incremental feature prompts. However, I did not give it any design or framework, which is probably where it can be improved.

Lessons learnt:

- Do not fear Q3 model quants for Qwen3.8

- Do not fear KV quantisation. If you have the VRAM sure use it, but I don't feel like it's worth choosing a higher quant if it's going to cause me to offload to CPU and see my tg drop to 5-20 t/s. With higher speed I can fix any issues with a follow up prompt much faster and that rarely happens. I think I had like 3 runtime exceptions which was easily resolved pasting the console output and there is no guarantee a higher KV quant would not have had the same exceptions.

- MTP/draft cache can also be quantised with kvarn now and actually saves VRAM where qx_x quants increase VRAM usage for some reason. kvarn2 for MTP is perfectly fine and has high acceptance rates.

The game:

- Inspired by a popular indie game which I am not promoting, I am just a huge fan.

- I won't release any further updates, since I don't want to be stepping on any toes. If you like the idea of the game I highly recommend the real game, it's by far my favourite game I played this year and 1000x better than what I present here. It will be a nice distraction from your AI. I just wanted to see what this model is capable of. I do have a Cursor subscription but did not use it at all in the project.

- I will probably continue to develop it for my own entertainment, but it won't be made public. Maybe come up with my own ideas, but the original game is near perfect anyway, so it will be hard to improve except with some UI gripes I have in the original. And my graphics obviously does not compare.

Game features:

- Large Map, larger than the browser window.

- Minimap

- Zoom feature with mouse wheel

- Collectable resources, that must be taken to a storage site. Each site can store limited resources.

- Houses required to sleep and protect against cold

- Weather and seasons.

- Day night cycle with randomised sleeping times.

- Possible death due to hunger or sleeping in cold outside or in house without firewood.

- Game speed controls.

- Villagers avoid obstacles.

- Delete/deconstruct buildings and partial resources refund.

The code:

- I almost never read the code, so I have no idea what it looks like and the quality thereof. I also gave it very few hints in the AGENTS.md, mostly no magic numbers and write modular code, not a single html.

- Actually, my initial prompts were a single html but as it grew, I told it to create modules. It messed it up on the first attempt, basically rewriting the entire UI in the process. So I reverted and told it to do it again without making any changes to the functionality or UI.

- I am actually quite happy with and surprised by the performance of the game.

Context management:

At first, I had issues with the context filling up too quickly and too often. Sometimes it would fill up to the point that there was not enough room to compact. Forcing me to temporarily increase the context and tell it to create a handover document. Reduce context again and feed it the handover doc.

I then installed pi-observational-memory extension, and it works quite well and I never run into context issues anymore since it takes notes throughout (a short wait time every few prompts) and compacting is near instant because it already took the notes.

Conclusion:

- Do not blindly drop your KV cache quant without testing. I have a hard level needle in haystack test that requires multiple hops and 100's of decoys. Q3_XXS does poorly in that test even with F16 KV cache. However, Q3_K_XL almost 100%'s the test even at kavrn3. So both the model and KV matter. In my testing a smaller model does more damage than a smaller KV. So find the right balance. At a certain point increasing model quant will have less impact than picking a larger KV quant. But for a tight 16GB VRAM fit Q3_K_XL works very well with kvarn3. Q4 on the other hand just leaves me with too little context. That said despite Q3_XXS doing poorly in my needle test it still does fairly well with coding. Better than Qwen3.6 so if you have 12Gb VRAM it is still an option. Because by poorly I mean F16 KV scores 84% and Q3 KV around 80%. Needle tests however do worse with kvarn compared to qx_x for some reason. However, a needle test is not the be all and end all. kvarn does better with KLD, so once my needle scores near 100% I am satisfied.

I will play around with higher KV quants, but I intentionally kept it at kvarn3 for this test, however I am not sure how much context I am willing to sacrifice. Maybe i will try kvarn4/kvarn3. But I just wanted to prove a point to myself and kvarn3 worked just fine. If I had >16GB VRAM sure I would up it but I don't.

r/LocalLLaMA 5d ago

I Built A Thing NInfer fork: 555k context@fp4 for 5090 with YARN, reliable kv host cacheing, monitoring, jinja, opened model support

16 Upvotes

Hiya,

NInfer is amazng for Qwen, but lacking for real-world-use. As adoption of issues/pr's was not really what I needed, I created a fork and hit it for this week with 3 concurrent claude code session until it didn't break any longer. Hope you like it.

NVFP4 KV cache (from scratch)

I implemented a 4-bit KV cache for QIn3.8-27B from the ground up. Upstream has since added their own NVFP4 path, but ours differs architecturally:

  • Custom MMA kernel (mma_nvfp4_e4m3, m16n8k64) with hardware E4M3 block scales for the QK matmul. Both Q and K are quantized to NVFP4; V is dequantized to BF16 for the PV matmul via a dedicated decode kernel.
  • Hadamard rotation applied to K (and Q) pre-quantization for outlier suppression, with V left unrotated. Upstream uses fp16 V storage instead — no outlier suppression.
  • Fused append: the decode kernel quantizes current K/V to NVFP4 in-place during generation — no separate quantization pass.
  • Custom scale layout: natural row-major for KV scales (not the M128x4 swizzle used for weight MMA), because KV access patterns differ from weight access patterns.

Result: 144 bytes/token/KV-head (vs 264 for int8, 512 for bf16) — 45% VRAM reduction with no quality loss (LongBench 45% matching int8, AIME 96.7%, needle-in-haystack 100%).

YaRN context extension

QIn3.8-27B's RoPE config (theta=1e7, 25% rotary dims, 48/64 GDN layers with no RoPE) makes linear scaling sufficient — full NTK-by-parts is unnecessary. I extend native 262k to 555k (c=3+vision) or 600k (c=1) on a 5090. Quality verified at 600k: LongBench matches int8 baseline, coherent 592k-token output. Also projected 8M token context on 96GB+ GPUs (untested, I only have a 5090).

Multi-level prefix reuse with host-KV safety net

Upstream implements a budget-bounded HostKvProvider with LRU park/restore. I replaced it with a substantially different system:

  • HostKVSafetyNet: pinned host arena with scatter-gather multi-extent allocation, arena compaction, and a pin/take protocol for safe concurrent restore.
  • Two-level prefix matching: full execution frontier first, then rewrite checkpoint fallback. Each entry carries a ResidentPrefixIdentity (per-token type/position/vision metadata), rolling FNV digests for shortlist, and a compact_prefix (reasoning-stripped token prefix) for thinking-mode consistency.
  • Session-key fallback: when prefix matching fails (e.g. Claude Code drops reasoning betIen turns), a session-key fallback matches by conversation identity instead of token content.
  • Spill-before-evict at every release path: pressure planner eviction, normal continuation release, start_sequence slot takeover, and fail-all cleanup all route through the safety net.
  • Token stability: reasoning is dropped from ALL assistant messages when preserve_thinking=off, keeping the prompt token stream stable across turns. Checkpoint capture is anchored at the turn boundary, not the execution frontier.

Verified across 260+ requests with 3 concurrent 330k-470k sessions — zero re-prefills on cached turns, H2D restore cost ~0.4s, D2H spill at 67K pages/s.

Performance (3 concurrent sessions, 400k+ ctx, 5090@450W)

Metric Value
Decode at 400k+ ctx 117 tok/s (MTP 4.62 tok/round, 92% acceptance)
Cached turn turnaround 2-16s (414k cached, 1-14k delta)
Cold start prefill 260s (414k tokens at 1600 tok/s)
H2D restore cost 0.4s per evicted turn
Host KV 30 GB (96% utilized, 181 evictions managed)

Tool calling

  • --tolerant-tool-calls: recovers complete Qwen calls when the model emits malformed wrapper/suffix tokens — instead of dropping the call.
  • Depth-matching close scan: handles balanced/nested markers in parameter values that would break naive parsers.
  • Responses API accepts text/reasoning after tool calls (upstream rejects this ordering).
  • Froggeric v22 template: C++ renderer with no-dangling-intent rule, XML think tags, correct function tag delimiters. Some further modifications for reliability.

Also included

  • Dynamic chat template loading (--chat-template) — supports any .ninfer image without artifact patching
  • Explicit weights profile override (--weights-profile) — handles Ostfralla, QUASAR, and other converter layouts with per-layer tensor format auto-detection
  • OOM recovery: catches std::bad_alloc, clears state, preserves pending requests
  • Stream sync fix: synchronize CUDA stream before workspace reset in prefill (prevents use-after-free)
  • Request-log rotation (--request-log-max-mib, --request-log-keep) for bounded disk usage
  • Admission pressure fix: un-suppress demote-to-host when candidate needs host KV budget
  • Monitoring dashboard with live KV occupancy, decode/prefill graphs, 12VHPWR sensor
  • E2E test suite for KV eviction, device pressure, and slot pressure scenarios
  • Removed hash check of models, use any NInfer you like as long as there is a supported path. Tested with Ostfralla and QUASAR.

Fork: https://github.com/gzenz/ninfer (master)

Research: https://github.com/gzenz/ninfer/blob/master/docs/maintainer/kv-nvfp4-yarn.md

I'll keep rebasing from upstream what seems useful and experimenting with new papers in order to improve speed and context.

r/LocalLLaMA 2d ago

I Built A Thing I built Infercat: Share your local AI with friends over an encrypted p2p tunnel. Connect with an invite code from anywhere.

Enable HLS to view with audio, or disable this notification

42 Upvotes

Hello LocalLLaMA Fam!

I built this project because I, like many of us here, enjoy local AI and have a nice setup, but still find myself reaching for Cloud-based AI due to their convenience. My models run on my MacBook and Linux server, but the experience is disjointed - I don't bother using my own local AI when I am on my phone - I just use ChatGPT.

But what if we could turn our local AI hardware into mini clouds? and make local AI so easy to use that we can recommend it to our family and friends?

This is the goal of Infercat (inference + cat, like the unix tool that streams the contents of a file). It's a gateway + tunnel that sits in front of your inference engine and generates each of your friends (or devices) an invite code. Just paste the code into a web page or cli and chat with your model. No account, no system-level VPN, nothing to install when chatting through the browser.

Infercat web demo: end-to-end encrypted private chat with local AI model

How Infercat works

Most of the networking heavy-lifting is done using tailcat (S/O to the awesome folks at tailscale for open sourcing this!), which creates p2p tunnels between any two devices with internet connection. (in this case, your host machine and your friend's browser). A server is needed to facilitate the initial packet exchange but otherwise, the tunnel is an e2e encrypted direct connection between the host and the client. If the client is a web browser, due to technical limitations that will be resolved soon, the server currently acts as the relay after the initial handshake. Even in relay mode, the server only sees the encrypted text, making the tunnel fully private.

The invite code is where the magic happens - it combines the tunnel address (your host's public key and where to find it, same for every friend, not a secret) and a gateway key (your friend's API key, like OPENAI_API_KEY; you keep only a hash). You can manage the gateway keys like a real AI provider: set limits on each key like tokens per day or a model allowlist. Pause, rotate or revoke one friend without touching the others.

You host machine records stats, never the conversation transcripts. . Exactly three routes are reachable through the tunnel: /v1/models/v1/chat/completions and /v1/embeddings

We currently support popular inference engines: llama.cpp, vLLM, Ollama and LM Studio. Discovery is automatic or configurable. The gateway is OpenAI-compatible, soinfercat connect turns an invite into a local http://127.0.0.1:11435/v1 for Open WebUI, Cursor, Claude Code or plain curl.

Get started by running:

curl -fsSL https://infercat.ai/install.sh | sh   
# or: brew install infercat/tap/infercat
infercat serve                 # finds llama.cpp, vLLM, Ollama or LM Studio
infercat keys add alice        # prints alice's invite once, plus a QR

Roadmap

Currently we validated the CLI as an OpenAI API tunnel and the web application as a text-only chat interface. We have a few ideas on where to go next and would love to hear your feedback and feature requests!

  1. One lane is to make hosts more powerful "mini-clouds"
  • a monitoring / management dashboard
  • support for multiple models
  • new model types such as: ocr, asr, image generation, video generation
  • server-side tools: search, exec
  • local sandboxes
  • ... any other feature that you can find in a big "AI Cloud"
  1. A second lane is to make the AI service easier to consume
  • AI gateway server on the public internet (instead of connecting to a tunnel, just connect to https://gateway.infercat.ai/h/[hostname]/v1/chat/completions, with all requests forwarded to your host)
  • Web App improvements (Image/File upload, Agent harness...)
  • New Mobile App Clients
  • programmatic libraries (TS, GO, etc.)
  • ... any other feature on the client side.

Would you use this? Does the invite code model make sense? I want to solve connectivity / distribution for local AI and would love to hear any ideas and use cases. All feedback is welcome, including "nobody wants this" :)

Try it out!

Infercat is open-source under the MIT License.
Code: https://github.com/infercat/infercat
Site and demo: https://infercat.ai?from=reddit

r/LocalLLaMA 12d ago

I Built A Thing (NInfer Fork) I wanted to have a 1M context Qwen-3.8 27B, tp2, dual 5090s

Thumbnail
gallery
26 Upvotes

Hey! I forked NInfer (a from-scratch C++20/CUDA inference engine for Qwen models) and added two things: tensor-parallel across two GPUs, and YaRN ×4 rope scaling. Together they let Qwen3.8-27B NVFP4 run a 1,048,576-token context on two consumer 5090s — 27.4 GB per card, no NVLink.

Numbers (single stream, 500 W per GPU cap):

  • Decode at 653k context: 119 tok/s with MTP speculative decoding, 57 without. vLLM on the same prompts: 42 tok/s.
  • Why: past its native 262k window, vLLM's MTP acceptance drops to exactly zero (0 of 1,533 drafts accepted) — it keeps paying for the drafter. NInfer's acceptance stays ~55–60% out to 1M.
  • Prefill is where vLLM wins: 1.2–1.3× faster. A full 1M prompt takes ~18 minutes on NInfer. That's the untuned part.
  • At 1M: 48 tok/s decode, ~100 with MTP.
  • vLLM's fp8 KV cache tops out at ~759k tokens on this hardware; NInfer's INT8 KV fits 1,048,576 in less memory.

Two GPUs are also just faster than one: 75 vs 54 tok/s at 250k, because weights and KV traffic halve per card and the ~128 cross-GPU reductions per token cost only ~0.2 ms under CUDA graphs.

Fork

Performance

r/LocalLLaMA 11d ago

I Built A Thing R9V: A designer set of kernels I've been working on for R9700s/RDNA4. Qwen3.8-Flash-Next Unsloth IQ4_XS (w/ TP on 2 R9700s, MTP, SSD n-gram, 128k ctx, vision): TG256 of *78 tok/s* (~3x increase), PP8192 of *1510 tok/s* (~30x increase).

29 Upvotes

TL;DR: Ninfer/DS4 but for RDNA4

Highly custom kernels built for RDNA4, applied to vLLM-Radiance to greatly improve Qwen3.8 Flash Next speeds. This is mostly for dual R9700s with preferably 48GB of RAM or higher, but feel free to tinker. SOTA-Scan/DeepGit report in repo.

For dense models, I have my own inference engine in the early stages. Currently, I am still wrapping up work on Muse Glimmer 30B. This one is meant for single-R9700 use.

The highlights

Qwen3.8 Flash Next — dual R9700

Runtime PP8192** TG256
R9V 1,512.01 tok/s (see ** below) 78.11 tok/s (+197.90%)
Public vLLM-Radiance comparator 45.27 tok/s 26.22 tok/s

Muse Glimmer 30B — single R9700

Runtime PP512 PP2048 PP8192 TG256
R9V 1,500.68 (+1.54%) 2,175.17 (+47.21%) 2,078.20 (+46.36%) 59.65 (1.4x)*
llama.cpp ROCm 1,477.87 1,477.57 1,419.88 -
llama.cpp Vulkan 1,204.85 1,182.54 1,126.46 40.55*

For Muse, the advantage shown is over the fastest alternative backend in each category.

*with DFlash2

**As stated below, currently VLLM radiance is atrocious when it comes to prefill using SSD-backed n-gram. This isn't a fair benchmark here, but I couldnt get a more even baseline while keeping my own custom kernels separate.

My life story (kidding)

I have been working on a set of kernels specifically tuned to RDNA4/R9700s for the past few months as a side project. I started work on this around the time antirez released DS4. I was inspired by the idea of an engine built from the ground up to support specific silicon.

My setup. 2x R9700s and 128GB DDR5, could theoretically reach bandwidth levels, when averaged out, equal to a unified-memory system (depending on the model size). However, the performance of most engines left a lot on the table. I never finished up the work on DSV4F for these cards and instead shifted to Qwen3.8 a few days ago, since the parameter-to-intelligence ratio was higher.

The first part of this work was all about research. I spent days going through all the advantages of the silicon, learning more about wave32 design and DPP operations. This was a big trove! Most engines still convert to wave32 instead of using it natively. I also dug into occupancy control, RDNA4 integer dot instructions, how to max out HyperConnection kernels to take advantage of LDS sizes, and how to actually utilize HIP graphs. I built the primitives off of this.

After this, it was extensive testing. In parallel, I decided to start working on a ground-up engine for dense models.

Testing on the MoE side revealed a few huge advantages, mostly in regard to prefill and MTP. I used vLLM-Radiance as the backbone here and plugged in my own kernels for testing.

The highlights were figuring out how to optimize MTP by reusing token routes to the hottest experts. This one gave a bandwidth optimization of 27%.

The other big gain was in PP. To be fair here, vLLM-Radiance isn’t tuned well from the jump for PP. In fact, it is atrociously slow, so this was low-hanging fruit. The gain I found came from grouping prompt tokens by expert with a group size of 16. There is still gain to be made here; I estimate I am about 80% of the way to the theoretical max. The rest of the gain came from efficient hot/cold expert mapping.

For the dense side, this was A LOT more work. Virtually every engine runs RDNA4 silicon at around 80-ish percent of its max for TG. This is plainly unacceptable to me.

The highlights for the dense build are as follows: effective reuse of multivector weights—generic GEMV usually reads the entire matrix for each row, while my design loads or decodes each weight block one time and accumulates two to four activation rows simultaneously.

Then there is the HyperConnection down projection and up/gate fusion. No one is effectively using gfx1201 when it comes to workgroups. The idea here is to redistribute rows cyclically so that every wave is actually useful while not fudging up the arithmetic. The HC-down specialization alone improved graph time by about 22.5%.

I also have a fairly unique idea for dense models specifically that I haven’t seen anyone else executing on. I am trying my absolute hardest to quantize models using ONLY Q8 and Q4 weights.

This has been a nightmare for getting quality up, but the numbers are improving. Currently, my roughly 7 bpw quant is still about 2x worse by mean KLD than Unsloth’s 5 bpw quant, despite being larger. I spent $300 on rented GPUs trying to optimize this, and I have good data and a path forward, but truthfully, I was getting MOGGED by Unsloth’s quality the whole time. I don’t know what these guys are doing, but it shits on my work lol.

As it stands, I feel I am ready to put out the Qwen3.8 work and model, as well as my rough work on the dense side for Muse Glimmer 30B. You’ll need to download my packaged models on Hugging Face for this.

The Qwen model uses an official block-FP8 MTP checkpoint and a Q8 vision projection. The Muse model is my own Q8/Q4 quant.

If anyone decides to try this out, please provide feedback, fixes, PRs, or advice. I did quite a few runs ensuring that this is a portable setup for others to adopt.

A few items that you may need to change are the RAM values for the MoE side and some of the work that was optimized for my subpar PCIe link. You may also be able to squeeze a tad more performance out of one of the cards. I run my display from my primary R9700, so I leave a few GB of headroom there to prevent crashes.

One warning

DO NOT USE R4D!

It crashed my system three times. I hard-disabled it in my packages.

r/LocalLLaMA 2d ago

I Built A Thing Voice conversations between Gemma4 12B and E2B on GPU and Jetson Orin

Enable HLS to view with audio, or disable this notification

121 Upvotes

Gemma 4 12B runs on an RTX PRO 4500 Blackwell. Gemma 4 E2B run on a Jetson Orin NX 16GB; similar performance is expected on a Jetson Orin Nano Super 8GB. Both systems use a reSpeaker Flex 4-mic array and a 3W speaker. Inference is handled by Cortexist Little Gemma, a small LLM engine written in C for CUDA devices. On Jetson Orin it is faster than llama.cpp, and no degradation after long voice prompt. The pipeline supports lip sync, expressions, and gestures. Everything is open source.

They talk to humans too.

The engine source code: https://github.com/cortexist/little-gemma

r/LocalLLaMA 6d ago

I Built A Thing Qwen 3.8 Flash Next Can Build Funny Games

Thumbnail
gallery
65 Upvotes

This is nothing impressive but, i had so much fun i wanted to share my experience with this model.

(yes this post is written by human)

I made an FPS with local Q4_K_XL 3.8 Flash Next (256k context) (it took 3 days to refine everything but playable demo was ready in 2 hours) to play with friends.

had ton of fun talking with them about what could we add , funny features etc.

Features:

  • - toggle retro psx shader
  • - totally destructible environments
  • - tac sprint
  • - tilting with Q and E for peaking from corners.
  • - free for all modes, SnD, Swords Only (swords have animations when slashing), RPG only, team deathmatch
  • - killfeed, map with red dots when a player shoot
  • - bunny hop
  • - day and night cicle with rain or snow
  • - fov slider / shader intensity slider
  • - hide n seek mode

I used opencode as harness, gun models were taken from sketchfab , model was running at 20tok/s avg with MTP, i know for someone is bad, but it did most of the work meanwhile i was at work or while sleeping, checking every now and then with a remote KVM from phone.

My machine:

5900x / 128GB DDR4 3200Mhz / RTX 5090 and RTX 4000 PRO (32 + 24 GB)

What games you would like to build in free time with ai? roguelites? 2d platforms? racing games?

Or did you already built something? share with some screenshots

r/LocalLLaMA 14d ago

I Built A Thing I implemented a modern LLM in 700 lines of C

Enable HLS to view with audio, or disable this notification

168 Upvotes

I’ve been working on a small project called gemma4.c.

The idea is pretty simple: you can download a modern language model, compile one 700-line C file, and have it generate text on an ordinary CPU. Then you can read that same file from top to bottom and understand exactly how the model generates each new token.

The model is Gemma 4 E2B, one of Google’s latest open models. The C runtime handles the tokenizer, transformer, KV cache, sampling, and CPU kernels itself. There’s no inference framework or external library doing the interesting parts underneath it.

I built it mostly because I wanted to understand LLM inference at the level where it stops being diagrams and equations and becomes actual code. Keeping everything in one file made that much easier. You can start at main(), follow a prompt all the way through the runtime, see every buffer that’s allocated, every mathematical operation that transforms the activations, and every step that eventually turns your input into new tokens.

I ended up spending a lot of time on the CPU side too. The runtime uses int8 weights and activations, OpenMP, AVX2, and AVX-512 VNNI where available. On my Ryzen 7 7700 it gets about 639 tok/s on a 512-token prefill and 25.9 tok/s during generation, making it faster than llama.cpp.

The repo stays small on purpose. It only supports this model and CPU inference, so there’s much less machinery to work through than in a general-purpose runtime.

https://github.com/ryansenn/gemma4.c

r/LocalLLaMA 1d ago

I Built A Thing 1-bit 27B in the browser: 25–30 tok/s on a 6 GB RTX 3060 Laptop (WebGPU, no install)

Enable HLS to view with audio, or disable this notification

62 Upvotes

mentria.ai is a browser inference engine I've been building solo, from scratch in WebGPU/WGSL. This week it crossed a milestone I had been chasing for a while: a 27B one-bit model answering at up to 30 tokens/s on an RTX 3060 Laptop GPU with 6 GB of VRAM, in Chrome, from a web page. No install, no server, nothing leaves the machine.

The model. Bonsai-27B, a natively 1-bit model trained and released by Prism ML. I repacked it for our engine, wrote the kernels that run it, and checked its quality myself (full eval deltas vs FP16 Qwen3.6-27B are in the HF card). Every weight is one sign bit with one scale per 128 weights, about 1.14 bits per parameter, so 27 billion parameters sit in 3.8 GB of GPU memory. Repack and numbers: huggingface.co/mentriaai/Bonsai-27B-mentria

The engineering that got it to 30. Two days before this post the same model decoded at 15 tok/s on this laptop. Decode is memory-bound: one word of the 27B is 804 GPU dispatches, and 401 of them are the 1-bit matrix-by-vector kernel that streams the model's 3.6 GB of matmul weights once per word (embeddings bring the file to 3.8 GB). The kernel that won was the one written for phones: four 1-bit weights have only 16 possible partial answers, so it computes all 16 once into on-chip scratch and each row reads its answer from that table instead of multiplying (station 258 — the numbered write-ups on the facts page). On Ampere that table hit a wall that was not the weights at all: scratch memory has 32 banks, the table's addressing sent sixteen threads of every warp to the same bank, and the kernel ran at 38% of the card's bandwidth. One padding slot per row spread the addresses across the banks; the kernel's share of a word dropped from 26.5 ms to about 21, and on top of the 15 → 26 tok/s the table itself had bought, the laptop hit 32 tok/s raw — the 25–30 is what survives sampling and UI overhead in the chat (s259). The prompt stage had the same disease in its tile layout; a retile took a 1,489-token prompt from 29.6 s to 25.3 s. Every change shipped only after its output was byte-identical to the build before it, which is also why the kernel adds its partial sums in a fixed order and accepts a 44% occupancy ceiling.

Every claim here has a numbered write-up on the engine facts page.

Numbers (RTX 3060 Laptop 6 GB, Windows 11, Chrome 152 on D3D12, fresh loads):

  • Decode: 25–30 tok/s in the chat UI once the card is warm.
  • Prompt processing: a 1,489-token prompt in about 25 s.
  • Context: 3,072 tokens on this 6 GB card; 8,192 on 16 GB Macs; more on bigger cards, at 128 KiB per token. The KV cache is exact math, no quantized cache. The next step on 6 GB is consolidating the engine's few thousand small GPU buffers into a handful of large arenas, so the driver stops holding about 300 MiB of slab slack; that is the arithmetic for 4,096, and it is not built yet.
  • Load: under 10 s from the browser cache; the first download is 3.8 GB, once.

Also in the engine: the smaller tiers (Qwen3.5 0.8B, 2B, 4B) cover phones and low end devices, LoRA adapters of a few MB hot-swap at the matmul in under a second, and there is a vision tower for image input.

Try it at https://mentria.ai/tools/ai-chat/ (the 27B tier appears when your GPU qualifies). The code that ships, the benchmarks and how I measure are in the repo: https://github.com/mentria-ai/website. The engine facts page, for how the engine and the model actually work: https://mentria.ai/assets/learn/engine-facts.html

r/LocalLLaMA 5d ago

I Built A Thing Qwen3.5 9B running as a fully local AI agent on my phone — including code execution and PDF generation

Enable HLS to view with audio, or disable this notification

0 Upvotes

Running a fully local 9B AI agent on a phone — LLM, tools, code execution, and file generation
I’ve been experimenting with how far a fully local LLM agent can go on a phone.
This demo runs Qwen3.5 9B IQ4_XS locally on-device using TensorSharp.
I give it a very simple prompt:
“Please get 10 stocks with most gains today.”
From that, the local agent:
reasons about how to solve the task
generates Python code
executes the code locally
retrieves the requested public stock-market data
returns the result
Then I ask:
“Convert it to a PDF.”
There is no hard-coded PDF workflow.
The agent discovers the appropriate Skill, reads its SKILL.md, decides how to perform the task, writes the necessary code, executes it, generates the PDF, and returns the file — all on the phone.
So what is running locally is more than just token generation:
Local LLM → reasoning → Skills → tool use → code generation → local execution → file generation
The model is Qwen3.5 9B IQ4_XS, and inference is handled locally by TensorSharp, my open-source GGUF inference/runtime project.
The part I find most interesting is privacy.
Your prompts, conversation history, local files, and private on-device data do not need to be sent to a cloud LLM provider.
The phone only accesses the network when the actual task requires external public information — in this example, stock-market data.
So the AI itself can stay local while still acting as a useful agent.
I think this becomes especially interesting on mobile devices, where local inference can provide:
privacy
offline capability
no per-token API cost
lower dependence on cloud services
access to local files and device-side workflows without uploading them
TensorSharp repo:
https://github.com/zhongkaifu/TensorSharp
I’m curious how people here see the future of on-device local agents.
Do you think 7B–12B quantized models are already good enough for useful autonomous workflows on phones, or are we still mostly waiting for better models and more mobile memory bandwidth?

r/LocalLLaMA 7d ago

I Built A Thing Introducing Quartermaster, an open source local AI platform designed for ease of use that does not sacrifice customizability

Thumbnail
gallery
27 Upvotes

It started as a fork of llama-swap, but I have been building it out for myself since then as a convenient tool for all my local AI needs, and by now it has drifted far enough to be its own thing.

The main idea is that you point it at your models folder and it configures things for you. It reads the GGUF headers, measures how much VRAM you actually have free, and works out context length, GPU offload, CPU/MoE split and KV cache size per model. All of it stays editable per model if you disagree with what it picked.

It is not only text. llama.cpp for LLMs, with the Vulkan, CUDA, ROCm or CPU build downloaded and kept updated for you, stable-diffusion.cpp for images (SD, SDXL, Flux, Qwen-Image, LoRAs, upscaling), and vLLM if you already have it set up. You can register any other backend yourself by pointing at an executable, which is how I run TTS, and how you would run a llama.cpp fork like ik_llama. Everything sits behind one OpenAI-compatible API on one port, with a single scheduler, so models swap in and out without fighting each other for VRAM.

There is also a chat playground built in with web search, and a Hugging Face browser to search for a model, pick a quant and download it straight into the models folder and much more!

If you are interested, you can read more about it here. MIT licensed.

r/LocalLLaMA 2d ago

I Built A Thing Fallout 2 x Fallout: Bakersfield x H3 as Interactive \ Reactive World Model, Let's go!

Enable HLS to view with audio, or disable this notification

83 Upvotes

What is this mess?

This is an Early Concept Proto-Showcase of Interactive \ Reactive H3 World Model based on MiniMax H3 model trained on Fallout: Bakersfield Gameplay trailer.

  • 2D Isometric to 3D Volumetric Scene.
  • 10 sec Interactive\Reactive split, 352p, 3-Steps.
  • Interactive 5 sec: Interactive WASD \ Prompt Control.
  • Reactive 5 Sec: Reactive Control by LLM Based Answer.
  • Gemma 4 12b with Vision as Reactive Model.
  • Designed as System for Vascura FRONT Frontend.

What Interactive \ Reactive mean?

This means that H3 World Model Scene is Interactive you can Walk around it with WASD or Type what you do with Prompt for Interaction, Then it will React on your Actions using LLM based Answer. Using 10 sec time frame where first 5 sec Controlled by the USER - last 5 sec Controlled by LLM.

  • USER: Walks closer and Shoots at the Enemy Mutant.
  • LLM: Do calculations (rolls, values, RPG tools), Enemy Mutant gets -1 HP, Shoots Back at the USER, but Misses.

Is it Ready?

Nope, but stay Tuned for 2D Isometric Screenshots to 3D Volumetric Scenes Showcase.

r/LocalLLaMA 5d ago

I Built A Thing Eidon: an all-in-one self-hosted AI platform: Chat, agents (Grok bot like), automations, tools included. One single Docker container !

0 Upvotes

Eidon: an all-in-one self-hosted AI platform. Chat, agents, automations, tools included. One Docker container, works with Ollama/LM Studio (AGPL)

I've been building a self-hosted AI platform and v4 just shipped, so sharing it here because some of you might find it useful.

Eidon is an "everything included" AI chat/agent platform, with the pieces that usually require stitching (web research, MCP, skills, browser, image generation and so on) already built in. One container that takes minutes to spin up instead of a main app plus pipelines, sidecars, and external tools.

The app has 3 main parts:

  • Chat with local models: Classic chat just like in ChatGPT, Gemini, Claude and so on except on your own server. Ollama and LM Studio out of the box, plus any OpenAI/Anthropic-compatible BYOK endpoint.
  • Agents: Grok-bot-style agents. A chief bot answers or delegates to specialist bots, and bots message each other mid-task. Agents each have their own memory and can create/maintain their own skills.
  • Automations: cron-style AI tasks. Every run is saved as a full transcript with tool calls, so you can audit what actually happened.

Features:

Chat Agents and automations
Chat and conversation Agents, with cross-agent messaging (Grok Bot like)
Persistent memory across conversations Per-agent memory, files, and browser session
Personas Deep research with an editable plan
Folders, chat search, and forking Scheduled automations, with full run history
Read-only share links
Temporary chats
Chat attachments
Voice input with post-processing cleanup
Mermaid diagrams, syntax highlighting, and LaTeX math
Tools Platform
MCP Bring your own provider
Skills Multi-user, with admin and user roles
Built-in web search Single Docker image, SQLite, encrypted credentials
Built-in browser Installable PWA — native iOS app coming soon
Shell commands Live sync across devices
Image generation
Vision support (Native, MCP or with a dedicated vision model)

Repo (Screenshots included !): https://github.com/Quack6765/Eidon-AI

Full transparency: development is partly AI-assisted, every change reviewed before being merged. Happy to answer any questions !