3.1 KiB
3.1 KiB
ollie-gui — Qt6 desktop frontend for ollie
ollie-gui is a free-standing Qt6/QML desktop application that talks to an ollie session directly through ollie-9p. No D-Bus, no Plasma dependencies — it runs on any Linux desktop with Qt6 installed.
Prerequisites
olliesrv must be running:
olliesrv
Installation
# From the repo root:
just install-kde
Or build manually:
cd kde/gui
cmake -B build -DCMAKE_INSTALL_PREFIX=~/.local
cmake --build build
cmake --install build
Usage
Launch from the application menu or terminal:
ollie-gui
Interface
- Session list — left panel showing all active and inactive sessions with agent state indicators (○ idle, ● thinking, ⚡ tool call). Right-click for session actions.
- Chat view — center panel showing the conversation log. Block markers (
[[[type]]]/[[[end]]]) are rendered as styled headers. - Input bar — bottom panel for composing prompts. Supports slash commands for common operations.
- Theme — automatically adapts to the active KDE Plasma color scheme. Falls back to Qt Quick Controls Basic style when running outside Plasma.
Slash commands
Type / in the input bar to trigger:
| Command | Action |
|---|---|
/model |
Set the model for the current session |
/backend |
Switch backends |
/agent |
Switch to a different agent |
/stop |
Interrupt the running turn |
/kill |
Terminate the current session |
/new |
Create a new session |
/compact |
Compact the agent context |
/help |
Show available commands |
Keyboard shortcuts
| Key | Action |
|---|---|
Escape |
Interrupt the running agent |
Enter |
Submit prompt |
Ctrl+Enter |
New line in input |
Architecture
ollie-gui is a pure 9P client. It spawns ollie-9p as a subprocess and communicates through the 9P filesystem — the same interface the o CLI and ellie.el use. There is no D-Bus, no FUSE mount, and no intermediate daemon.
┌────────────────┐ ollie-9p read/write ┌──────────────┐
│ ollie-gui │ ◄─────────────────────────► │ olliesrv │
│ (Qt6 / QML) │ Unix socket (9P2000) │ (agent core)│
└────────────────┘ └──────────────┘
Components
Ollie9pClient— C++ backend that wrapsollie-9pinvocations. Manages session discovery, agent listing, prompt submission, and chat streaming.ChatBlockModel— renders chat log content as styled blocks (plain text, assistant responses, tool output, markdown fences).ThemeManager— reads the active KDE Plasma color scheme from~/.config/kdeglobalsand exposes palette properties to QML.
