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 8e3418c4fe kate: navigate to applied line range after Apply 2026-07-16 21:54:07 +02:00
dolphin Improve KDE GUI file and command handling 2026-07-16 19:42:21 +02:00
gui Activate the existing Ollie GUI instance 2026-07-16 19:58:15 +02:00
kate kate: navigate to applied line range after Apply 2026-07-16 21:54:07 +02:00
krunner use system font sizes instead of hardcoded pixel values 2026-07-06 13:40:40 +02:00
plasmoid gui: close-to-tray option + fix session list disrupting rename 2026-07-16 14:34:14 +02:00
prompts kate: navigate to applied line range after Apply 2026-07-16 21:54:07 +02:00
skills add prompts, skills, tools (D-Bus API versions) 2026-07-07 12:07:39 +02:00
tools add gui_media tool and docs 2026-07-16 20:33:23 +02:00
tray kate/krunner/tray: add session rename, pick session, CMakeLists-active 2026-07-06 13:19:05 +02:00
.gitignore gitignore: add CMakeFiles/ 2026-07-16 08:44:23 +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 fix(gui): include emojis.js in Qt6 resource bundle 2026-07-16 17:26:06 +02:00
Makefile kate: fix context menu (use contextMenuAboutToShow signal, deduplicate actions) 2026-07-16 21:07:39 +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