This repository has been archived on 2026-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Levi Neely c907aee653 use Qt native MarkdownText for prose blocks
Stop hand-rolling markdown with regex. Qt 6 Text supports
textFormat: Text.MarkdownText natively — handles backticks,
bold, italic, links, lists correctly. Code blocks and diffs
still use our custom KSyntaxHighlighting rendering.
2026-07-16 07:23:41 +02:00
dolphin dolphin: split desktop file for KF5/KF6 authorization compatibility 2026-07-06 13:37:16 +02:00
gui use Qt native MarkdownText for prose blocks 2026-07-16 07:23:41 +02:00
kate multi-line prompt input across all front-ends 2026-07-16 06:19:14 +02:00
krunner use system font sizes instead of hardcoded pixel values 2026-07-06 13:40:40 +02:00
plasmoid multi-line prompt input across all front-ends 2026-07-16 06:19:14 +02:00
prompts add gui_brightness tool (percentage-based brightness control) 2026-07-14 11:56:01 +02:00
skills add prompts, skills, tools (D-Bus API versions) 2026-07-07 12:07:39 +02:00
tools add gui_brightness tool (percentage-based brightness control) 2026-07-14 11:56:01 +02:00
tray kate/krunner/tray: add session rename, pick session, CMakeLists-active 2026-07-06 13:19:05 +02:00
.gitignore gitignore build directory 2026-07-16 06:10:10 +02:00
CMakeLists-active.txt kate/krunner/tray: add session rename, pick session, CMakeLists-active 2026-07-06 13:19:05 +02:00
CMakeLists-kf5.txt Add KF5/Qt5 support for Plasma 5.27 2026-07-06 09:18:04 +02:00
CMakeLists.txt rich output rendering for ollie-gui 2026-07-16 06:29:18 +02:00
Makefile kate: config page improvements, status bar dedup, default backend/model 2026-07-14 14:53:13 +02:00
README.md remove daemon (moved to ollie-dbus submodule) 2026-07-07 13:02:34 +02:00
test-e2e.sh phase 2: interaction + state queries 2026-07-05 22:46:37 +02:00
test-peers.sh phase 6: peers verified end-to-end 2026-07-05 23:31:48 +02:00

README.md

ollie-kde

KDE-native integration for ollie — thin KDE clients (system tray, Plasmoid, KRunner, Kate plugin, Dolphin menus) that talk to the ollied D-Bus daemon.

Architecture

┌──────────────────────────────────────────────────────────────┐
│                     Plasma Desktop                            │
│  System Tray │ KRunner │ Plasmoid │ Kate Plugin │ Dolphin    │
└──────────────────────────┬───────────────────────────────────┘
                           │ D-Bus (org.ollie.SessionManager)
┌──────────────────────────┴───────────────────────────────────┐
│                  ollied (../dbus)                             │
│              Pure Go │ godbus │ ollie/core                   │
└──────────────────────────────────────────────────────────────┘

The daemon lives in ../dbus/ (the ollie-dbus submodule). KDE components here are pure D-Bus clients — lightweight, stateless, and independently restartable.

Dependencies

  • Qt 6 (Core, DBus, Widgets, Quick) or Qt 5 (Core, DBus, Widgets, Quick, Qml)
  • KDE Frameworks 6 (StatusNotifierItem, Runner, TextEditor, CoreAddons, Config) or KDE Frameworks 5 (Notifications, Runner, TextEditor, CoreAddons, Config, Plasma)
  • Plasma 6 or Plasma 5 (for Plasmoid)
  • ECM (Extra CMake Modules)

KF6/Qt6 is the default. To build against KF5/Qt5:

make kf5

Build

make          # builds tray + KRunner + Kate + Plasmoid via CMake

Outputs:

  • build-cmake/ollie-tray — system tray icon
  • build-cmake/lib/kf6/krunner/krunner_ollie.so — KRunner plugin
  • build-cmake/lib/kf6/ktexteditor/ollie_kate.so — Kate plugin
  • build-cmake/org/ollie/private/ — Plasmoid QML plugin

Install

sudo make install      # all KDE components (KF6)
sudo make kf5-install  # all KDE components (KF5)

# Individual:
make krunner-install
make dolphin-install
make plasmoid-install

The D-Bus daemon (ollied) is installed separately from the ../dbus/ submodule.

Usage

KRunner

  • ollie <prompt> — one-shot: creates session, submits, shows popup with result
  • ollie list — show active sessions
  • ollie kill <id> — terminate a session

Dolphin

Right-click any file or directory:

  • Ask Ollie about this — one-shot prompt with file context, shows result in kdialog
  • Start Ollie session here — creates a persistent session in that directory

Kate

Enable the "Ollie" plugin in Settings → Configure Kate → Plugins. Panel appears on the right with:

  • Session indicator + CWD label
  • New — create session in project/file directory
  • Ask File — send current file path for description
  • Explain — send selected text for explanation
  • Prompt input for free-form messages
  • Live-streaming chat view

Plasmoid

Add the "Ollie" widget to your panel or desktop:

  • Session list with state indicators (○ idle, ● thinking, ⚡ tool call)
  • Live chat view with auto-scroll
  • Inline prompt input
  • Real-time updates via D-Bus signals

System Tray

  • Tooltip: session count
  • Status: passive (no sessions), active (sessions idle), attention (agent working)
  • Right-click: New Session, Sessions submenu (kill each), Stop All, Quit

File Layout

ollie-kde/
├── Makefile                        # CMake orchestration
├── CMakeLists.txt
├── tray/
│   ├── main.cpp
│   └── ollie_tray.h/cpp            # KStatusNotifierItem
├── krunner/
│   ├── metadata.json
│   └── ollie_runner.h/cpp          # KRunner plugin
├── kate/
│   ├── metadata.json
│   └── ollie_kate.h/cpp            # KTextEditor plugin
├── plasmoid/
│   ├── metadata.json
│   ├── contents/ui/main.qml
│   └── plugin/
│       └── olliedbusclient.h/cpp   # QML singleton (D-Bus client)
├── dolphin/
│   ├── ollie-actions.desktop       # Service menu entries
│   ├── ollie-ask                   # One-shot helper script
│   └── ollie-session-here          # Session creation helper
└── test-e2e.sh                     # End-to-end test script