ollie/doc/kde-gui.md

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.

Ollie KDE GUI window showing a session tree, chat history, and prompt input bar with KDE Plasma Breeze theme

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 other 9P clients 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 wraps ollie-9p invocations. 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/kdeglobals and exposes palette properties to QML.