21 comments

[ 2.6 ms ] story [ 31.7 ms ] thread
I just built and installed this harness on my MacBook Pro and am very happy with its clean, fast performance with local models and llama.cpp.

Well done, Oleksandr!

Nice work! Thank you for sharing it.
If it's minimalist and written in C why does it have such specific system requirements?
I don't understand how specific requirements has anything to do with being minimalist.
I don't understand why anyone would still start a new software project in C today, given the long track record of mistakes developers can make in it.
C is the most portable language on the planet.

Literally every single cpu/mcu architecture from the past 40 years supports it.

There are hundreds of such architectures and CPU/MCU types. (x86 is just SINGLE type from maaaaany).

Because despite all the fear, uncertainty and doubt thrown at the C language over the last 20 years, the truth is that its a relatively 'easy' language to use.

What do I mean by 'easy' ?

C books can typically be about 300-500 pages give or take. Compare that with modern languages especially a Java book in the 2000's, it would be closer to 600-1000 pages.

Why? Because half the book is talking about Object Oriented Programming.

C is simpler by comparison, once you get your head around it quirks and gotchas. Afterall, every language has their own gotchas!

To me, there is a difference between good C programmers and bad or non skilled ones. Those that understand C can write some good and efficient programs that care about performance and memory.

With all the above... the truth is that you could write this towards ANY language. They all have their pros and cons.

> I don't understand why anyone would still start a new software project in nodejs today, given the long track record of mistakes developers can make in it.

> I don't understand why anyone would still start a new software project in python today, given the long track record of mistakes developers can make in it.

> I don't understand why anyone would still start a new software project in java today, given the long track record of mistakes developers can make in it.

And dare I say this one...... ???

> I don't understand why anyone would still start a new software project in rust today, given the long track record of mistakes developers can make in it.

OK. You can argue that rust is not old enough to be labelled the "..given the long track record.." - but everything else stands.

Would love to hear more about the decision to create the terminal in C? Also what did you use to record your demo video? It looks awesome!
This is cool! There were a few rust attempts I played around with last year, but they all seemed to fizzle out in favor of everything running on top of js or python.

I know that Google just launched a go version a couple months ago, but I haven't really spent any time with it, because well, gemini isn't really useful to me right now.

The thing I constantly ran into with using non-platform (ie. claude code or codex) agents is that even though their tool call API seems flexible, they've finetuned these "agentic" models around their specific agents. Opus is the worst I've seen about this. It really wants to use specific bash tools and if you restrict or hide it, it'll start writing python code to call into bash to do it.

This looks really interesting! Excited to give it a try.
I just installed it via homebrew on macos and used the anthropic-compatible custom provider option to configure it to use with deepseek-flash and then used this setup to build a quick rust project that I had been deferring for months - total cost: 1 us cent and under 10 minutes total for setup and etc. Thank you for making such a lean and clean option.
Something about having a very fast, very small harness written in C only to drive LLMs amuses me. Like putting a big ass spoiler on a minivan or something.
The LLM can run elsewhere, such as the cloud.

For the part that runs locally, efficiency might matter.

Omg C, so insecure! You should be ashamed of my insecurity!
I didn't try Hax but I hope someone who has can answer a question: does it support suspending current operation if user hits ESC key?

EDIT: I just looked at interrupt.c in the github repo: handles user interrupts. I trashed my Common Lisp harness because I had problems handling interrupts in a portable way. I did better with Racket. I am traveling on vacation without a computer, will try Hax when I get home.

Tried it after seeing the comment about it yesterday and loving it so far. Very clean, easy and fast to build. Performance is great, and the minimal UI is a breath of fresh air.