My entry into self-hosting was never going to run through a terminal, so LM Studio's one-click install and clean GUI is what got me running local models, and it's been my default ever since. But the longer I lean on local AI, the more I run into things LM Studio either doesn't do or makes me set up by hand. That's what pushed me toward llama.cpp recently, and although it does have a GUI, you still need the terminal to launch it.
So I wanted something that's the best of both worlds. GUI-first like LM Studio, but open-source and not gatekept behind a terminal. Jan kept coming up in self-hosting circles, so I finally tested it, brought my own model over, and put it through my usual local setup.
Want to stay in the loop with the latest in AI? The XDA AI Insider newsletter drops weekly with deep dives, tool recommendations, and hands-on coverage you won't find anywhere else on the site. Subscribe by modifying your newsletter preferences!
I replaced Claude Pro with a local 9B model for a week, and finally found out what I was paying $20 a month for
The gap was smaller than I expected
Why I went looking past LM Studio in the first place
Jan just has a bit more to offer
I'm not actually quitting LM Studio completely, it's still the easiest first runner for anyone getting into local AI in my opinion. But I've been outgrowing it for a while mostly because the local LLM space moves fast and LM Studio is conservative about what it ships. The stuff I keep wanting tends to be newer and LM Studio either doesn't have it or requires roundabout setups. MCP support is the clearest case - it's there, but you have to wire it up piece by piece. And it also doesn't have audio support, which is why I went to llama.cpp because it supports functions for newer models that LM Studio doesn't.
Jan sits right between the two. GUI-first like LM Studio, but open-source with more of the modern stuff already built in, and it's a desktop app. That's a real differentiator from LM Studio, which is free to use but proprietary and closed. Jan's whole philosophy is local-first and file-over-app, so every chat, config, and model file lives on my disk in formats I can open and move around myself. The UI is deliberately ChatGPT-style, and it's just a good option for people who liked LM Studio's GUI but want the open-source pedigree and more of the new features in one app.
Bringing my own model
Local, cloud, or both: Jan doesn't force you to choose
The first thing that caught me off guard is that Jan isn't actually local-only. It ships with about a dozen remote providers already, so if I want to point it at my Claude or ChatGPT subscription, I can put in an API key and use one interface for both my local models and my cloud ones. There's also a Hugging Face Router provider that gives me hosted models like Kimi-K2 and DeepSeek-R1 on a pay-as-you-go basis, without an account for each underlying provider.
But I wanted to test Jan as a local runner so I brought my Gemma 4 E4B GGUF from Hugging Face, it's my go-to for daily chat and creative work because it's a fast and conversational multimodal model that runs fine on my 8GB VRAM. So instead of redownloading it through Jan, I just imported the existing files through the Llama.cpp Import. I actually moved the GGUF into a clean folder first because it was sitting next to a bunch of llama.cpp binaries and Jan links to files in place rather than copying them. If I cleaned that folder out later, it'd break the model.
Jan supports audio, unlike LM studio, so I was actually able to utilize Gemma's audio function alongside image and document uploads, which was one of the bigger wins of this swap.
MCP setup that actually makes sense
Browser automation didn't take forever to wire up
This is really where Jan pulled ahead of LM Studio for me. Quick clarification first, because the naming threw me. Jan Browser MCP is an MCP server that ships pre-configured inside Jan, and it runs through npx with a STDIO bridge to a Chrome extension that's its other half. So the whole setup is installing the Chrome extension and toggling the server on in the settings, with no JSON to edit or server to register by hand. Compare that to my Brave Search MCP in LM Studio, which I had to wire up myself, editing JSON and adding an API key before restarting and debugging it.
Jan Browser MCP works in any Chromium browser so my Brave install was good to go. Once it was installed, I locked down the extension's permissions in Brave: site access is set to On click so it only runs when I summon it. I also disabled it in private and Tor windows, and turned off file URL access. Agentic browser tools have broad permissions by design, so limiting when they're actually live matters for reducing the prompt injection risk.
Save on Software & AI Deals for Local Models
And after that, the browser worked smooth as butter in Jan; my model was able to pull live data without fuss. Jan also has web search baked in through Exa as its own tool, so for quick and plain lookups, I don't need the browser at all. Anything past what Jan lists by default, you can grab from the mcp.so directory and wire in through the MCP Servers settings yourself.
I finally found a local LLM I want to use every day (and it's not for coding)
Local AI that actually fits into my day
Jan is the middle ground I wish I'd found sooner
Jan delivered on the GUI-friendly side without giving up the open-source side, and I wish I'd tried it sooner instead of going from LM Studio to llama.cpp and skipping straight over it. The privacy side is also better than LM Studio because the code is auditable on GitHub, and the file-over-app philosophy keeps my chat history and configs in plain formats on my device.
The parameter controls go deeper too. Jan exposes advanced llama.cpp samplers like DRY, which LM Studio still doesn't, along with Mirostat and dynamic temperature, plus lower-level controls like tensor buffer overrides and MoE placement. Most of it is right in the model settings popover without leaving the GUI. Ultimately, Jan is the perfect middle ground between LM Studio's friendliness and the openness of llama.cpp.
