Chat & UI
ChatWalaʻau talks to AI agents over the AG-UI protocol (SSE streaming) and renders replies in a clean, modern chat surface.
Rich message rendering
- Markdown, code blocks, math (KaTeX), and Mermaid diagrams
- LLM reasoning visualization -- collapsible "thinking" blocks for reasoning models
- Web search with inline citations -- OpenAI hosted web search for OpenAI-family models, Anthropic hosted web search for Claude
- Multimodal image analysis -- attach images by file picker, drag-and-drop, or URL for vision models
- Attach a PDF and analyze it -- an attached PDF is given to the model as context,
the same way an image is. On Azure OpenAI / OpenAI / Foundry it is attached natively
(the model reads text, tables, even scanned pages); on providers whose connector can't
take a PDF (e.g. Anthropic) the text is extracted and included instead. Controlled by
PDF_ATTACH_MODE(auto/native/text); the text path is capped byPDF_INLINE_MAX_CHARS(default 20000), and a scanned/image-only PDF there suggests the RAG pipeline - Images are served privately -- attached and generated images load through an
authenticated request (your session cookie), so an image URL only opens for a
signed-in user and gives an authentication error to anyone else. When web login
(
AUTH_USERNAME) is enabled this holds even onlocalhostand behind a dev/reverse proxy; with no web login configured, local (loopback) use stays open with no configuration
Paint a drawing
Open Paint from the "+" menu next to the message box to compose an image right in the chat, then attach it like any other picture.
- Full-screen canvas -- draw freehand strokes, lines, arrows, rectangles, ellipses, and text; select, move, and scale/rotate each object with handles
- A page on a workspace -- the drawing has a fixed size (the artboard) and floats on a grey backdrop; anything you draw outside it is dimmed, so it is always obvious what will end up in the exported image
- Pick a canvas size -- presets for 16:9, 4:3, and 1:1 (up to 4K), a Swap orientation button, Fit to window, or a Custom size with an optional aspect-ratio lock. A new drawing starts at 1280x720, so the same drawing exports at the same size on every machine. Sizes are capped at 4096 px per side and 12 megapixels total, and an over-budget size is refused as you type it rather than when you try to attach it
- Pan and zoom -- the Hand tool (
H), or hold Space and drag, or drag with the middle mouse button, or use the wheel (Shift+wheel scrolls sideways). Ctrl+wheel zooms where your cursor is. Zoom spans 5%-800%, with Fit (Ctrl+0), 1:1 (Ctrl+1), and Zoom to selection. The view opens fitted to the artboard and re-fits whenever the drawing area changes size, until you zoom or pan yourself -- after that your view is kept, and Fit hands it back to automatic framing - Arrows and lines that stick to your shapes -- draw an arrow between two boxes and it stays attached when you move them, re-aiming at the facing edges. Choose the shape (straight / elbow / curved) and the head at each end (none / arrow / triangle / diamond / circle / bar). Drag an endpoint near a shape and it snaps; hold Alt to place it freely. Arrows are edited by dragging their two endpoints, which is what you actually want on a diagonal, and deleting a shape leaves the arrow where it is rather than making it vanish
- Layers -- reorder objects front-to-back and toggle visibility or lock per object
- Duplicate and copy/paste objects -- right-click an object on the canvas, or its row
in the Layers panel, for Duplicate / Cut / Copy / Paste, front-and-back ordering,
lock, hide, and delete.
Ctrl+D,Ctrl+X,Ctrl+C,Ctrl+Vwork too, and pasting from the canvas menu drops the copy where you clicked - Bring in art from anywhere -- drag-and-drop or paste an image to place it on the canvas; paste SVG markup and it is detected automatically and added as editable vector shapes. Pasting from another app always wins over the internal object clipboard, so this keeps working exactly as before
- Load an image from your device or the coding workspace -- the Import button offers
From this device and, when the coding workspace is enabled, From workspace (a
picker that browses the workspace for images) -- handy where local file uploads are
restricted. Only image files (
png/jpg/jpeg/gif/webp/bmp/svg) are offered, and a loading indicator runs until the image is on the canvas - Undo/redo while you work
- Download or attach -- save your drawing as a PNG, or attach it straight to the message. The exported image is the artboard and nothing else, and it looks the same whatever your current zoom and scroll position
- Re-edit later -- an attached drawing keeps an editable copy, so you can reopen it from the thumbnail before sending, or from a sent message (which starts a fresh, editable attachment) and keep working. Drawings saved before this release reopen at the size they were saved with
Reading long conversations
- Conversation navigator -- a floating right-edge rail of your questions in long chats; click to jump straight to any of your messages (shown on the full-page chat when the window is wide enough)
- Step through messages -- previous / next buttons beside the scroll-to-bottom control move you one message at a time, through both your messages and the assistant's. They appear whenever the conversation is long enough to scroll, and the arrow that no longer applies is hidden at the very top or bottom
- Context window consumption display -- a progress bar above the input that turns amber at 80% and red at 95%
- Per-turn token usage -- input/output token counts on each assistant message
- Collapse long messages -- a long message you sent is shown trimmed to about five lines with a Show more / Show less toggle, so the transcript stays easy to scan
- Smooth large sessions -- opening a long conversation stays responsive; only the streaming message re-renders, so scrolling and typing do not slow down as the message count grows
Message actions
Hover any message for copy, edit, regenerate, branch, and delete.
- Edit opens a full-screen editor (a modal covering ~80% of the window), so revising a long message is comfortable. Editing a question re-runs the conversation from that point; editing an answer updates it in place. Cmd/Ctrl+Enter saves, Esc cancels.
Layouts and language
- Three layout scenarios -- Chat, Popup, and Sidebar
- Multilingual chat -- browser auto-translation is suppressed so multilingual content renders correctly
Temporary Chat
A Temporary Chat is an "incognito-style" throwaway conversation, started from the top-right of the chat screen.
- It does not appear in your history or search, and cannot be resumed -- closing, leaving, or reloading discards it.
- It runs de-personalized: the agent uses only its base Identity and never reads or writes your saved preferences, while all other tools stay available.
- The input turns dark while active.
- For safety it is briefly retained server-side
(
TEMPORARY_CHAT_RETENTION_DAYS, default 30) and then auto-deleted -- "not in your history", not "never stored".
It is also available on the API via an opt-in temporary flag (default off).
Privacy Screen
Presenting from your real instance? Privacy Screen scrambles the private side of the screen so you can share it. Toggle it with the eye-with-a-slash icon at the top right of the chat screen, just left of Temporary Chat.
While it is on:
- Chat history, your own messages, folder names, and attached filenames render as scrambled text. Line breaks and character widths are kept, so nothing on the page moves when you toggle it.
- Images and PDFs in past messages become placeholders, and they are not downloaded at all while the mode is on.
- Search still works, but results are scrambled and matches are not highlighted.
- Copying a message of yours copies the scrambled text, so the original cannot reach your clipboard by accident.
- Editing a message and renaming a chat are unavailable -- both would have to put the original text back on screen in an editable box.
The setting survives a reload, so refreshing mid-presentation will not un-scramble your screen. The amber Privacy pill is always visible while it is on, so you can tell at a glance.
What it does not cover
Privacy Screen hides your side of the conversation, not the whole app. It does not hide:
- the agent's replies -- and if a reply quotes your message, that text is visible;
- tool call arguments, saved memory, prompt templates, workspace files, scheduled jobs, or your account name;
- whatever you type live -- the message box and the search field are yours to control.
For a demo where none of that can appear, present from a chat prepared for the purpose.
Related
- Voice & Speech -- voice input and text-to-speech
- Memory & Sessions -- saving, organizing, and titling chats