Show HN: Hob - Open-source, on device alternative to Claude Cowork and ChatGPT

Posted by pancomplex 1 day ago

Counter164Comment42OpenOriginal

Hey HN, I'm Christian and this is a new OSS project I've been noodling on for the last couple of weeks. Hob is a free, MIT-licensed desktop app for Mac, Windows and Linux that works on your files the way the Claude and ChatGPT desktop apps do, except the model runs on your own computer. It uses open-weight models (currently Gemma 4 and gpt-oss). All your chats and files never leave your system. The only things that go online are web search (can be turned off in settings) and any MCP connectors you add yourself.

Main features:

- Automatically finds the best open-weight model for your hardware on first install (Mac/Linux/Windows)

- Writes sandboxed Python code for ad hoc tools (data processing, document conversion, graphs etc.)

- Built-in web search (powered by SearXNG)

- MCP support

- Image recognition

- CRUD to your local filesystem

- Works fully offline with no internet

Before building this I tried every local AI app I could find, but it seemed each one had different problems. The main thing I noticed is that none of them could do what the ChatGPT and Claude apps do with your files, e.g. read and change files in a folder, look at images, run code in a sandbox, draw a chart. The most advanced thing any of them did was paste a plain text file into a small context window, which basically failed as soon as you had a file larger than a few KB. I couldn't find anything that could easily parse images and bigger PDFs.

The OSS solutions that were more advanced all seemed to default to hosted models (either OSS or closed), which defeats the entire point of the privacy that on-device OSS offers. They also seemed to push towards an account/open-core style business.

I build it using Electron bridged with llama.cpp in its own process. On initial load, the system will try and figure out if you have a compatible graphics card and if not default to CPU-only (I ran into a lot of issues of graphics card beeing seemingly compatible but then crashing on first query, there's a whole saga to this lol). Code execution happens in a sandbox that can only write to the chat's folder and has no network unless asked (sandbox-exec on macOS, Landlock on Linux and a low-integrity process on Windows). Images go to a small Qwen3-VL model. Dictation is a local Whisper model.

The hardest part was definitely to get the smaller models to use tools reliably. Ran into a ton of issues of 4B models happily saying "here's your chart" without ever calling the chart tool or get stuck in an infinite call loop. I spent a fair amount of the work building guards vs tweaking prompts (that didn't really work for small models).

I understand the pushback that local models are weaker than frontier cloud models. This is true, but for most tasks for most normal people, I'd argue you rarely need the newest frontier model. From my own evals, systems with 16+ GB of RAM do really well, and if you have a GPU or more RAM, you get very close to what you'll get out of the box with a frontier hosted model.

Excited to hear what you think and see how it runs on other systems!

Comments

Comment by jrm4 1 day ago

So there are a zillion of these, including ones that do what yours does. But that being said, I'm going to always upvote every single one of them because this is better and more important that what the big companies are doing across the board.

Comment by pancomplex 1 day ago

Thank you! Would love to hear which ones you've used. Working with local files without anything going to the cloud was the main thing I wanted. I tried Jan, OpenWork, Chatbox and Lobe, and couldn't get that working well in any of them. If there's one I missed it would be great to check it out!!

Comment by prophesi 1 day ago

Have you tried Open WebUI? It doesn't determine which model works best for your hardware, but it otherwise has a very large feature set with a large community, and runs offline by default. Geared more for technical users, however.

Comment by dfltr 19 hours ago

It feels like the last mile is so long in this space. I'm a SWE with a ton of experience and I still haven't gotten over the decision paralysis of figuring out which model to run locally, and which inference platform should I use, and will my M1 Macbook Pro actually run anything well enough to be useful, and on and on.

It's kind of embarrassing to admit, but having something Just Work(tm) makes getting started so much easier.

Comment by dofm 19 hours ago

Shouldn’t be embarrassing to admit.

It’s a huge new subject area and it’s completely exhausting to learn. I still feel like a total novice.

I have an M1 Max (more memory bandwidth) so I am not sure how much advice I can give about models, but I would suggest maybe trying the new LFM2.5-24B-A2B. It’s surprisingly good. If you want to mess about with multimodal work, Gemma 4 12B is really impressive. (I mostly use Muse Glimmer but it might be rather slow on an M1 Pro)

If you want to have the space to learn the terminology, tinker with what you can control etc., then you have three easy options: LM Studio, Unsloth Desktop or the llama.cpp native Mac app. But don’t get put off by the llama.cpp command line; most of these tools are running it behind the scenes, and most entries on Hugging Face have recommended parameters.

MLX is an option but so far I haven’t found it to have an edge over simple GGUF on Metal on the M1 at least; it seems it might have more advantages on the later M series chips, but it is usually slower for me.

I have explored running OpenCode inside a VM (you can “remote into it” from the OpenCode GUi desktop app). You might want to look at Paseo, which can do a similar thing but with many more coding agents.

I am quite intrigued by Osaurus; on macOS 26 and up it looks like it will manage a container for you.

You might also want to look at Orchard. Not done this myself yet but I can see the appeal.

https://orchard.andon.dev/ai.html

I am an experienced web dev in my fifties. Six months ago everything I have written above would have been total gibberish to me. Learning some of the open weights stuff has made me feel much less helpless than I think I might if I just developed a Claude dependency. Nothing matters more to me than grasping the fundamentals.

I still don’t really use LLMs for hands-off coding. But I have found that a local LLM can be a useful sidekick; even at the most basic level it’s a better Google that remembers the context of queries.

Comment by dfltr 2 hours ago

Thanks for taking the time to write all this up, I'm checking out the projects you mentioned now.

I feel you on the tinkering-to-feel-less-overwhelmed front. I've been through a few ground shifts in my career so far, and even a little bit of "Oh, so that's how it works, ok..." can make it feel so much less daunting.

Comment by dofm 30 minutes ago

No worries. And yes, absolutely. Even the tiniest opportunity to poke around with stuff changes my perspective dramatically.

I've picked up lots of stuff this way — just being able to watch the server logs is great!

P.S. I prodded myself into playing with Osaurus; it's actually rather good.

Comment by felciano 5 hours ago

Excellent, concise overview of stuff to explore—

Comment by dofm 4 hours ago

Thanks :-)

Mostly I think my own approach has been to try to combat my anxiety and exasperation about all of this by taking this measure of control.

While no really small local model comes super-close to a frontier model, the shape of the technology is settling and I think one can learn so much by approaching it the conventional nerdy way: what's a practical setup I can run on kit I already have? What can I build that helps me explore the problems?

I am quite cynical about AI still, including for generative coding, but I am not cynical about what I can run locally. There is no doubt that they are already helpful to me even in a minimal form.

And the really cool thing about being able to run them locally is to understand the tradeoffs.

Comment by universenz 1 day ago

Definitely check out Osaurus for macOS and Windows. Heavily privacy focused with e2ee iOS and iPadOS tethers.

Comment by fmxexpress 1 day ago

In PasClaw, I specifically built it to do local embedding and other local only functionality. Whether it works well or not yet is another story.

Comment by l3x4ur1n 23 hours ago

I am using Hermes and I did not try charts, but the rest it can do with ease. And I use DeepSeek flash API as a driver most of the time.

Comment by ajvs 23 hours ago

Orca works great.

Comment by jrm4 22 hours ago

Fwiw, I'm liking the koboldcpp "ecosystem", including koboldlite; basically it's letting me try a little of everything, though there may be something of a "jack of all trades master of none" thing going on. But it has these nice little presets for, e.g. llms, voice, music, images, a "chatgpt"-esque interface, etc.

Comment by mickelsen 22 hours ago

Haven't tried it yet, but I like that you shared your process in such an honest way, and kept it no frills, as in no LLM wall-of-text readme in the repo. Wish we could see that more often these days.

Comment by pancomplex 22 hours ago

thank you! Haha I always make it a point these days do handwrite these things. I think everyone is tired of overly verbose perfectly written AI text.

Comment by laughing_snyder 1 day ago

Looks great. One thing I am missing is the ability to change the installation directory for the models. For space reasons, I want them to be on a different partition.

Comment by pancomplex 1 day ago

Good call. Are you on PC/Mac/Linux?

Comment by laughing_snyder 1 day ago

Linux. I saw you support HOB_USER_DATA, which is great. But I want my config to remain in .config/Hob and only move the models (or whatever else needs lots of space) to another disk/directory.

Edit: Actually I think HOB_USER_DATA is enough for my use case.

Comment by _aavaa_ 1 day ago

Why does it have to be JS? With all this AI, why can't we ship native apps.

Comment by pancomplex 1 day ago

It's still pretty tricky to do this as a solo dev to keep feature parity in my experience (fun fact, even Claude's own Desktop app is made in Electron).

That being said, majority of the heavy LLM lifting happens natively with llama.cpp :)

Comment by eecks 23 hours ago

> Automatically finds the best open-weight model for your hardware on first install

Do you have examples of what hardware runs what models?

Comment by pancomplex 22 hours ago

Here's roughly what it picks today from my testing:

- 8 GB Mac (M1/M2): Gemma 4 E2B

- 16 to 18 GB Mac: Gemma 4 E4B

- 24 to 64 GB Mac: Gemma 4 26B A4B

- 128 GB Mac Studio: gpt-oss 120B

- Windows/Linux with an RTX 3060 or 4070 (12 GB) and 32 GB RAM: Gemma 4 26B, split between the GPU and system memory

- RTX 4090: Gemma 4 26B fully on the GPU

- No GPU, 16 GB RAM: a compressed Gemma 4 E4B on the CPU

High level, it looks at your memory and memory bandwidth and then picks the smartest one that stays above about 15 tokens a second with room for a decent context.

Comment by iqbal1980 7 hours ago

Interesting, thanks for sharing this. I have some questions? I have a Macbook M5 with 16GB unified memory. What Model would you suggest I use with this. I want something that would replace dot or grokbot , do posting, some marketing work, and email handling. Not coding. What would you suggest?

Comment by pancomplex 4 hours ago

It will automatically pick the best one for your HW on install

Comment by iqbal1980 1 hour ago

Thank you so much, that's helpful. Do you offer any benchmarks comparing with others?

Comment by pancomplex 15 minutes ago

Not yet, but that sounds like a useful overview to add to the landing page!

Comment by uumitbuilders 6 hours ago

[flagged]

Comment by rhedak 23 hours ago

I'm actually building something similar and thank you very much for sharing you gave me a few inspirations. I want mine to integrate seemlesly with an animated Ai companion (it's harder than it sounds haha). Anyways great stuff! Gave it a star.

Comment by pancomplex 22 hours ago

Thank you. Yes please fork that's exactly why I put it out on MIT license :)

Comment by arkdezin 12 hours ago

With the raise of AI, I believe: open-source and local software's will be on the rise, but with the open-source environment there is a real security issues that rise.

Never the less, really appreciate your contribution

Comment by wilg 19 hours ago

I did not enjoy that there was no way for it to clean up the 18GB of models it installed after I determined it was not really usable for any real work.

Comment by pancomplex 17 hours ago

Sorry about that. I’ll make sure it cleans up after itself in the next update. What was the main issue you ran into?

Comment by wilg 14 hours ago

The models are really dumb, mainly.

Comment by julietalfredes 11 hours ago

[flagged]

Comment by vorticalbox 1 day ago

Did you happen to try bionic?

https://lmstudio.ai/

Comment by laughing_snyder 1 day ago

This doesn't seem to be open source? They link a GitHub account, but I don't see the repo for this tool.

Comment by universenz 1 day ago

Correct, they’re closed source and you can’t opt out of analytics

Comment by ourcat 20 hours ago

What made you change it's name from 'Garth'?

Comment by pancomplex 20 hours ago

I went back and forth with my coworkers on the naming and we essentially voted on Hob vs Garth. Vote came to Hob. Do you prefer Garth?

Comment by dofm 19 hours ago

“Garth is the most significant artist that I've worked with and I've worked with Lulu and four other people, so we’re talking crème de la crème.” — Dean Learner

Comment by atmanactive 21 hours ago

Can we configure it to use local models but in LAN? Like Ollama or Strata.

Comment by pancomplex 21 hours ago

So basically allow you to point the LLM to a hosted model on your local network if I understand correctly?

Comment by atmanactive 18 hours ago

Yes.

Comment by advism2 8 hours ago

[flagged]

Comment by neonglow 18 hours ago

[dead]

Comment by julietalfredes 11 hours ago

[flagged]

Comment by sebastienburel 14 hours ago

[flagged]

Comment by yaml_tinkerer 17 hours ago

[flagged]

Comment by fazlerocks 12 hours ago

[flagged]

Comment by kunkka19xx 5 hours ago

[dead]

Comment by fionaswarovskij 21 hours ago

[dead]