|
Two additions to the chat window.
A context meter in the top bar shows how much of the active model's window
the next request will occupy: system prompt, prior turns, attachments and
the current draft. The router does not report a usable context size in
router mode (/props returns n_ctx 0), so the limit comes from ctx-size in
presets.ini. Streaming requests now ask for usage statistics, which makes
the figure exact after each reply at no extra round trip; before that it is
an estimate marked with a leading ~.
The estimate reads low on models with a reasoning budget, since thinking
tokens cannot be known before the reply arrives. The tooltip says so.
System prompts are markdown files in the prompts/ directory beside the
config, one per file, so they can be edited in an editor and kept in
version control. default.md is global, any other file is a named preset
that replaces it rather than adding to it, and a conversation may instead
carry one-off text or opt out entirely. The choice is stored per session so
reopening a chat restores the prompt it was built with.
Prompt names are reduced to safe filenames, so a name like ../../etc/passwd
cannot write outside the prompts directory, and a name that reduces to
nothing is rejected rather than creating a dotfile.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
A native PySide6 chat client for a local llama.cpp server in router mode.
Runs as a single persistent process with a Unix-socket control channel, so
a Hyprland keybind toggles the window with a socket round trip rather than
a process start. The control commands do not import Qt and answer in under
a tenth of a second.
Features: one-shot and multi-turn chat modes, runtime model discovery from
/v1/models, streaming replies rendered as markdown, collapsible reasoning
for models with a thinking budget, drag-and-drop file and image attachment
with context-aware truncation, and SQLite history with FTS5 search.
Markdown is parsed with MarkdownNoHTML so markup in a reply is displayed
rather than interpreted, and links a reply produces cannot drive the
interface.
Includes the Hyprland Lua snippets for autostart, keybind and window rules,
and a self-check suite covering everything except the GUI.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|