HomerandClaude Opus 5.5 7f54d18375 CI on dev, the app started on X11 and Wayland; no silent re-release
ci.yml runs on dev too, adds the hygiene check, check-ui.sh (the modules parsed
as modules; nothing sets HTML) and the vendor pin, and a start job: a debug
build with the bundled page, started under Xvfb and under a headless Weston with
GTK's Wayland backend, which must still be running after 25 seconds.
release.yml refuses a tag that already has a release unless run by hand with
replace, marks betas as pre-releases, and gives a beta's .deb a ~beta version
so it sorts below its release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 04:55:03 +00:00

LLeMbas Desktop

Your LLeMbas server in a window of its own, with the agent on this computer.

  • The whole web UI: chats, agent chats, the library, reports, settings. Same account, models, permissions and credits as in the browser; the app is a front end to the server you already run.
  • The agent, built in. LLeMbas Desktop carries the LLeMbas CLI and runs it in the background as this computer's device, so agent chats started on the server can work in your projects here, without a terminal.
  • Its own window: a LLeMbas title bar with the agent's state and a menu (start and stop the agent, link the computer, reload, change server, quit). Close the window and the agent keeps running in the tray, which has the same menu.

Alpha. Linux first (.deb and AppImage, x86-64). Windows and macOS later.

Install

Download the .deb or the AppImage from the latest release. Check it against SHA256SUMS in the same release.

sudo apt install ./llembas-desktop_*_amd64.deb      # Debian, Ubuntu (replaces 0.1.0's l-le-mbas)
chmod +x llembas-desktop_*.AppImage && ./llembas-desktop_*.AppImage

On GNOME the tray needs the AppIndicator extension; without it, the title bar's menu has everything, and starting the app again brings a hidden window back.

Updates

LLeMbas Desktop looks for a new release when it starts and every six hours. When there is one, an update button appears in the title bar (and Install LLeMbas x.y.z… in its menu; Check for updates… otherwise). Installing asks for your password to update the .deb (an AppImage updates itself), then the app starts again. Every package is checked against the release signing key built into the app before anything is installed.

Use

  1. Start LLeMbas and enter your server's address. Sign in there as you would in a browser.
  2. From the tray, Link this computer. The approval page opens in the window; approve it.
  3. The agent starts. Choose the folders it may work in (Settings…, Add folder…); a new computer allows none until you do.
  4. In the server's Agents tab, start an agent chat on Local and pick one of those folders.

The agent is the LLeMbas CLI's lembas service, using the CLI's own configuration (~/.config/lembas). The app's copy of the CLI lives in its own directory (/usr/lib/llembas-desktop/), not on your PATH. If you also installed the CLI and run lembas service yourself, the app sees it and does not start a second one: they are the same device.

Build

Needs Rust (stable) and, on Linux, WebKitGTK 4.1 and an AppIndicator library:

sudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev libxdo-dev
scripts/fetch-cli.sh                 # the bundled CLI, checked against its release signature
scripts/fetch-tokens.sh              # verifies ui/tokens.css against tokens.lock.json
cargo install tauri-cli --version "^2" --locked
cargo tauri dev                      # or: cargo tauri build

There is no Node and no bundler: the app's one local page is plain HTML, CSS and JavaScript in ui/. Everything else on screen is the server's own web UI. The version of the CLI it carries is in lembas-cli.version.

Two files in ui/ are generated and committed. ui/tokens.css is the server's design tokens, copied by scripts/fetch-tokens.sh <server tag> from a checkout of the server beside this repository (../LLeMbas, or LEMBAS_SERVER) and pinned in tokens.lock.json; run it with a new tag when the server's look changes. ui/i18n.js is the pages' words in the server's languages, written by scripts/gen-i18n.py from the server's catalogues and the script's own table; run it when a string on the page changes.

Licence

MIT; see LICENSE. The bundled LLeMbas CLI is MIT too, with its own third-party notices.

2026-10-25 19:53:07 +00:00
Languages
Rust 31.8%
JavaScript 21.9%
Python 20.6%
CSS 18.4%
Shell 4.3%
Other 3%