Skip to content

Latest commit

 

History

581 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Llooma

Llooma /ˈluː.mə/

A (less) minimal LLM chat app that runs entirely in your browser.

Documentation · Roadmap · Changes from Hollama

This is a fork of Hollama by fmaclen.

Warning

Local mode is going away, and your data will go with it. If you are using it today, export a backup from Settings → Data → Backup & restore before you update. Read on for why, and for how to push back if you disagree.

I have tried to keep the spirit of Hollama while modernising it and pushing on features, usability and flexibility. The more I do that, the clearer it gets that keeping local mode around costs me real time, and costs the codebase more than it gives back.

Some of it is concrete. Everything in local mode lives in the browser's localStorage, which is about 5 MB for all your conversations, knowledge, personas, playbooks and persona memory put together. API keys sit there in plain text, where any browser extension can read them. Image generation cannot work at all, because the bytes have nowhere to go. And a few features exist twice: conversation search, for instance, is written once for the browser and once as SQLite full text search. Around 75 places in the code branch on which mode you are running.

Both modes are the same install anyway. You run the same Node server either way, and a single environment variable decides the rest.

Llooma is not getting much attention right now, so most of what I add is what I need myself, and I am aware that may not be what anyone else wants. Nobody has told me what they would want from an app like this, so I am guessing. If someone turns up with a good reason to keep local mode, I will happily talk it through in Discussions and I am willing to change my mind. Otherwise I will start merging towards removing it.

This is not me dropping the Hollama spirit. The plan is to keep a local mode on top of the server architecture: no account, no login screen, everything created for you on first run. You get the same quick single user access, plus proper storage, keys actually encrypted at rest, and room to do things localStorage cannot, image generation being the obvious one.

The sidebar, the Library, the Interface settings, and a conversation over a wallpaper

Warning

This project is an early preview. Not made for production use. Expect breaking changes, unfinished features, and rough edges.

I'm not a professional developer and I'm still learning. I've made use of AI assistance while trying to remain responsible. Any audit, suggestion or PR is more than welcome. If AI is not your thing, you can check the original project instead or other forks, no hard feelings, just being transparent.

What it is

Bring your own models, from Ollama, OpenAI, Claude, Infomaniak or anything OpenAI-compatible, and chat with them from an app that is yours.

  • Two ways to run it. Local keeps everything in your browser with your own keys. Server signs users in, stores their data per account, and keeps the API keys where a browser can never read them.
  • Personas. Give a model a face, a voice and a name. A coach, a tutor, a companion, each with its own avatar, prompt, model, greeting and knowledge. Import existing ones, including OpenWebUI exports, and share them across a team.
  • Knowledge and documents. Write down what you keep re-explaining and attach it anywhere. Drop in a PDF, a spreadsheet or a Word file and it is read in your browser, never uploaded, even in server mode.
  • Tools that stay yours. Web search, page reading, interactive choices. Every instruction behind them is a text box you can rewrite.
  • Replies that survive the page. A generation runs in the server, so reloading, navigating away or letting your phone sleep no longer costs you the answer: the conversation picks it back up where it was. Switch it off in one click if you would rather nothing left the tab.
  • Compaction. When a conversation gets too long, /compact replaces what was said with a structured summary so it keeps fitting. Nothing is deleted, and one click puts it all back.
  • Full-text search across every conversation, answering with the passage itself.
  • Six themes, each with a light and a dark ramp, English and French, installable as a PWA.

The documentation covers each of these properly.

Get started

docker run --rm -d -p 4173:4173 --name llooma ghcr.io/cedhuf/llooma:latest

Then open http://localhost:4173. That is local mode, with nothing stored outside your browser.

For a real deployment, Docker Compose, server mode, every environment variable, and the security notes that matter before exposing an instance:

Contributing

Important

Feel free to participate, there is no bad contribution. One rule to keep the project manageable: issues are for bugs only. For a feature request or anything else, please open a discussion. If the community backs it, and we agree on the technical approach, it will become an issue. Thanks!

See CONTRIBUTING.md, and Working on Llooma for how the codebase is laid out.

Screenshots

Themes

The six themes, left to right: Classic, Dracula, Catppuccin, Gruvbox, Nord and Solarized. Light ramps on the top row, dark on the bottom.

A conversation Dark mode A wallpaper
Library Interface settings The collapsed rail

On a phone

A conversation Your conversations The home screen

Similar projects

Llooma is not trying to be the biggest of these. It is meant to be small enough to read, to run in one container, and to have accounts only when you actually need them. If that is not what you are after, one of these probably is.

  • Hollama is what this is forked from: smaller still, no accounts, no server. If you want one person, one browser, nothing else, start there. What we changed is listed in Changes from Hollama.
  • hollama-spark is another fork of it, aimed at running local models well.
  • OrionChat runs in the browser with no build step, talks to many providers, and does things we do not: text to speech, speech to text, and previewing HTML a model writes.
  • Open WebUI, LibreChat and Lobe Chat are the large ones. They do far more than this: pipelines, plugin ecosystems, retrieval over your documents, whole admin surfaces. They also ask more of you to run and to keep running.
  • AnythingLLM and Jan come at it from the desktop instead of the server.

every-chatgpt-gui keeps the exhaustive list, which is longer than anyone expects.

License

MIT

Document reading is powered by officeparser (MIT) and pdf.js (Apache-2.0).

About

A (less) minimal LLM chat app. This is a fork of Hollama by fmaclen.

Topics

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages