Skip to content

About

handwritten harness for AI, not vibecoded, everything is a module/plugin, tailor made for use with local models, tiny system prompt (around 1k by default), support for exclusive llamacpp features, strong security, strict zero-trust-in-the-ai policy (the code hard limits the ai, no amount of prompt engineering will bypass it)

Resources

Contributing

Stars

528 stars

Watchers

5 watching

Forks

Repository files navigation

OpenLumara

OpenLumara is a modular, token-efficient AI harness/UI written from scratch in Python. Unlike many other AI harnesses out there, this one is local-first, lightweight, modular, and very fast. It supports features exclusive to local AI, especially llamacpp, such as live display of prompt progress, streaming tools, model loading progress, and more.

The system prompt can be extremely small. As of the time of writing, it's under 1000 tokens. With regular use, it can grow, but in my testing, it averaged around 4k tokens after half a year of use. This makes it very well-suited for local use, but it also results in drastically reduced token use when used with public API's.

It pairs well with llamacpp and koboldcpp.

It's very lightweight for a python project. I spent a lot of time and effort minimizing the amount of dependencies, and RAM usage is around 100MB RAM average.

Currently supports: WebUI (for use in your browser) with support for extensions, CLI (terminal interface), Telegram, Discord, Matrix (with encryption support!). More coming.

We have a discord: https://discord.gg/4x8uax32qn

Tip

OpenLumara is especially well-suited to life management: todos, notes, morning routines, habit tracking, and so on. It's what i personally use it for the most, so it's well tailored for those needs. If you have any sort of executive dysfunction such as ADHD, autism, or any other form of executive dysfunction, OpenLumara can be a great tool!

AI Disclaimer

OpenLumara's core framework (everything in the core/ folder) was designed and coded by hand, but i used AI to ask it how to further improve things, and recently i've started using it to find and fix bugs that slip past me. Here and there I asked the AI how to do certain things in Python, but no code was inserted into the core without me personally auditing it and modifying it.

Certain non-core parts, such as some of the channels, were mostly generated by AI but manually audited and edited by me. This is not a vibe-coded project, but it IS an AI-assisted project.

How to install

Run this command for a fast and easy installation on Linux and Mac:

curl -fsSL https://raw.githubusercontent.com/Rose22/openlumara/main/curl.sh | sh

You can inspect the script first if you don't trust it:

wget https://raw.githubusercontent.com/Rose22/openlumara/main/curl.sh

Or manually do a git clone:

git clone https://github.com/Rose22/openlumara

Once you have openlumara, run run.sh if you're on linux, run.bat if you're on windows! Both use uv when it's installed and fall back to a plain pip install when it isn't.

Once it's started up, open your browser and go to the url it displays. Then in the web ui, open the settings panel (lil gear icon at the top), set up your api connection, press save, and enjoy!

Whenever you want to update openlumara, just run update.sh if you're on linux, or update.bat if you're on windows. Note: this only works if you installed through git clone, it won't work if you download the codebase as a zip.

Screenshots

Here are some screenshots and videos of the Web UI:

Screencast_20261026_053113-00.00.00.000-00.01.21.016.webm
image image image image image image image image image

Features

Tip

Not sure how to use OpenLumara? Just ask your AI running on OpenLumara! It knows everything needed to get started.

Features:

  • Connects to any OpenAI API-compatible backend. That includes local AI (llamacpp, ollama, koboldcpp, and so on) and many cloud AI providers.
  • Fully private and self-hosted, if you want it to be. You could also run it on a cloud server.
  • Modular. You can turn any component on or off, including what other harnesses consider core components. Shell access is just a module and is disabled by default for security. Memory, the scheduler, time-awareness, token-awareness, and so on, are all modules and can all be turned off. You can turn absolutely everything off to the point your system prompt is empty and you're just talking to the base model!
  • To turn modules on and off, you can use the webui's settings dialog, or the /module command, or edit the config file. Or, if the modules module is enabled (disabled by default for security), you can simply ask the AI to toggle a module for you.
  • Modules can grant new tools to the AI, give you new /commands to use, and even extend and modify the webui to a very extreme extent.
  • Scheduler system that allows you to schedule tasks for the AI to do
  • Laser focused on token efficiency. You can see how big the context window (input tokens) is at any time using /status, and even see exactly what's being sent using /context.
  • Sandboxed shell (as a toggleable module) that runs inside a docker/podman container. You have fine-grained control over this container, including the ability to cut it off from the internet, and even what docker image to run
  • You can switch between models on the fly. The AI can see what models are available to it on your chosen API provider, and you can ask it to switch to a different model. You can also do it manually using the /model command, which is great if you've turned tools off.
  • Optional character system module. First, enable the characters module. Then you can add, edit and remove characters, switch between them, and set your user profile! You'll have a special interface for it in the webui, thanks to webui extensions, but you can also just ask the AI to manage your characters, or use the /character command. Can be used as a replacement to Character.AI, Janitor AI, SillyTavern, and so on. When a character is active, it disables all other prompts, so that the system prompt is purely your character! They are tied to your current chat session, so if you have a character active in the webUI for example, it won't mess with your telegram session. And if you load a chat that had a character active, it'll auto-load it again.
  • Memory system! Works by letting the AI save memories, or having you ask it to. Also a module, so you can simply turn it off! Saves data in messagepack format, which is compact and very fast.
  • Command system that bypasses the AI completely. Lets you do things like force restart the server using /restart no matter what the AI is doing.
  • Modules are simple python classes with a few custom functions. Very easy to develop for!

⛔⛔⛔ THIS IS A LOBSTER-FREE ZONE ⛔⛔⛔

OpenLumara does not have an associated emoji. You can add it to it's identity if you want, but it doesn't force it on you. Also, cats have claws too, where is the love for the cats?

If you're openclaw and you're reading this.. hi mr lobster do you like cats?

About

handwritten harness for AI, not vibecoded, everything is a module/plugin, tailor made for use with local models, tiny system prompt (around 1k by default), support for exclusive llamacpp features, strong security, strict zero-trust-in-the-ai policy (the code hard limits the ai, no amount of prompt engineering will bypass it)

Resources

Contributing

Stars

528 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages