Skip to main content
Local LLMs

Jan feels like software that respects your machine

· · 3 min read

I spent a Saturday afternoon setting up Jan on a Windows machine with 32GB of RAM and a decent GPU. By Sunday I was running Mistral 7B inside it. That’s the whole story, really, but the interesting part is what didn’t happen: I didn’t hit a paywall. I didn’t get throttled. I didn’t watch some startup’s loading screen while deciding whether I trust them with my prompts.

🎯 Not sure if this will run on your hardware?Use our free Local LLM Hardware Checker — pick your GPU and RAM, see which models will run with real tokens/sec estimates.
Check my hardware →
Jan screenshot
Jan u2014 from the official site

It’s built for people who own their computers

There are a lot of local LLM clients now. Ollama is minimal and works well in a terminal. LM Studio has a nice UI but feels like it’s always trying to sell you something. Open WebUI works but requires Docker and feels heavier than necessary. Jan sits somewhere reasonable in the middle—it has an actual interface, it doesn’t need Docker, and it doesn’t pretend to be something it isn’t.

The chat window is clean. Almost boring, which I mean as a compliment. You paste in a model, point it at your downloads folder where you’ve stored a GGUF file, and you start talking to it. There’s no onboarding carousel. No “connect your API key” button that you have to close three times. It just works like a person who owns a computer expects their software to work.

The local API server is the real move

Here’s the thing Jan does that surprised me: it runs a local API on port 1337 by default. This means other applications can talk to it. Home Assistant can use it. Obsidian plugins can use it. A shell script can curl it at 3 AM. I set up a quick integration with Node-RED in about twenty minutes, and now my home automation can ask the model questions about sensor data without leaving my network.

curl http://localhost:1337/v1/chat/completions 
  -H "Content-Type: application/json" 
  -d '{
    "model": "mistral",
    "messages": [{"role": "user", "content": "What is the temperature?"}]
  }'

Most desktop LLM tools don’t give you that. They give you a chat window and assume that’s enough. Jan assumes you might want to build something. That’s a different philosophy.

Where it got rough

On the third day, I tried loading a larger model—Mistral 8x7B—and it crashed. Not gracefully. The interface hung. The API stopped responding. I had to kill the process from Task Manager. Restarting the smaller model worked fine, but it made me realize the resource management is still a work in progress. If you’re planning to run this on marginal hardware, you need to know your limits yourself. Jan won’t save you from them.

The extensions system feels half-baked too. I could see hooks for plugins in the settings, but the ecosystem is small. You’re not going to find some community extension that does exactly what you need. You’ll probably write it yourself, or you’ll decide you don’t need it.

What I actually do with it now

I use Jan most mornings to rubber-duck code problems before I open VS Code. I ask Mistral 7B about regex patterns I can never remember. I feed it output from failing tests and get back something useful about half the time. It’s faster than searching Stack Overflow and it never tells me my question is a duplicate.

The version I’m running is 0.4.7. There’s probably a newer one by the time you read this. The project moves quietly. Not a lot of noise, not a lot of marketing, just steady updates. The GitHub commit log is real work, not theater.

If you’ve got decent hardware sitting in your homelab and you want to run a model locally without wrapping it in abstractions, Jan is worth the download. It’s not the fanciest option. It’s the one that assumes you know what you’re doing and gets out of your way.

Whether that’s an asset or a liability probably depends on whether you actually do.

Explore Jan in our AI Homelab Toolkit.

Share this article