This is cool, but does no one even look at what libraries they're shipping anymore? I mean, why does this Clippy-style LLM interface bundle:
- A JavaScript implementation of the Jinja templating language
- A full GitHub API client
- A library that takes a string and tells you if it's a valid npm package name
- A useless shim for the JavaScript Math module
And 119 other libraries? This thing would have taken up 10% of the maximum disk space available on a Windows 95 FAT16 volume.
The real answer is that some of us (the Electron maintainers) have been playing with local LLMs in desktop apps and right now, node-llama-cpp is by far the easiest way to experiment - but it's also not meant for desktop apps and hence has _a lot_ of dependencies.
In general, pruning libraries in Electron isn't as easy as it should be - it's probably something for us to work on.
So to be clear, your complaint is that the nostalgia Clippy app that puts a cartoon paper clip on your desktop, isn't efficient enough?
I think it’s legitimate to ask why these dependencies are necessary. LLMs have created whole new classes of vulnerabilities, and things like a GitHub client (which downloads arbitrary data/code) and a templating engine (which executes it) expose an even larger attack surface.
If someone’s going to get RCE on my machine, I don’t want it to be through the silly Clippy LLM UI, you know?
Maybe it was vibe coded and the libraries were added while going down paths that turned out to be dead ends and the LLM never cleaned up after itself?
People have been perfectly capable of making that mistake themselves since long before "vibe coding" existed.
> A JavaScript implementation of the Jinja templating language
A guess without looking into the code: Jinja templating is used to define how to prompt the model (i.e. system first, then this specific character / token, then user, then if it's a tool prepend this and append that, etc.)
It seems that this is possibly not necessary, since LLaMA.cpp already integrates Jinja with CPP implementation (through minja)
I think this is explained on the linked project page:
This project isn't trying to be your best chat bot. I'd like you to enjoy a weird mix of nostalgia for 1990s technology paired with one the most magical technologies we can run on our computers in 2025.
You might be looking for the more minimalist Grumpy which is hand-hewn from a pure silicon monocrystal.