Attached text files are saved and sent as part of the system prompt with every message. They show up as filename + upload time โ the full text is never rendered in the chat. Files can only be added or removed here in Settings.
Applied to every message. Click Done (or the gear again) to hide settings.
A single-file chat interface that talks to the Proton Lumo API directly from the browser. No dependencies, no build step, no server of its own โ everything runs locally in the page and the only network traffic is the chat itself.
: at the start of a word (after whitespace or at the very
beginning of the line) and a popup opens above the composer.:query text at the cursor.:thumbsup: are also converted automatically on
their own โ Discord-style names work without ever opening the popup.| Character | Name | Keywords |
|---|
Model replies support exactly three things: bold (**text**),
fenced code blocks (```lang ... ```, with ~ fences also
working and unterminated fences rendering during streaming), and plain text with
preserved line breaks. Nothing else is interpreted, and all output is rendered through
safe DOM APIs โ model text can never inject HTML.
<title> if it has one
(e.g. "Lumo Chat.html"), otherwise snippet.html.lumoChatDB) โ never as rendered HTML, so UI labels can
never leak back into the API context after a reload.createElement / textContent), so text from the
model can never execute as code.authCookie and/or
authAuthorization at the top of the script. If neither is set the
requests rely on you already having session cookies in the same browser context.buildContext() output that
gets sent, so the estimate always matches what the model actually receives.