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 68e7dfa7c2 chat blocks use theme palette colors instead of hardcoded 2026-08-01 10:11:53 +02:00
dolphin add 6th arg (remote) to all CreateSession D-Bus calls 2026-07-24 11:58:09 +02:00
gui chat blocks use theme palette colors instead of hardcoded 2026-08-01 10:11:53 +02:00
kate kate: start chat/state streams on session switch 2026-07-31 20:33:19 +02:00
krunner kill D-Bus: krunner+tray use 9P, remove plasmoid+tray, disable kate 2026-07-31 20:16:25 +02:00
.gitignore gitignore: add CMakeFiles/ 2026-07-16 08:44:23 +02:00
99-ollie-kf5.sh kf5 corrections 2026-07-20 10:25:27 +02:00
99-ollie.sh fix plugin install paths for user-local KDE install 2026-07-19 13:22:31 +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 restore ThemeManager (color scheme, font settings) from git history 2026-08-01 09:57:39 +02:00
README.md readme: krunner uses Generate one-shot, not a session 2026-07-18 23:07:04 +02:00
justfile justfile: fix paths relative to submodule root 2026-07-30 20:50:39 +02:00
test-e2e.sh add 6th arg (remote) to all CreateSession D-Bus calls 2026-07-24 11:58:09 +02:00
test-peers.sh add 6th arg (remote) to all CreateSession D-Bus calls 2026-07-24 11:58:09 +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 org.ollie.SessionManager D-Bus interface.

Architecture

┌──────────────────────────────────────────────────────────────┐
│                     Plasma Desktop                            │
│  System Tray │ KRunner │ Plasmoid │ Kate Plugin │ Dolphin    │
└──────────────────────────┬───────────────────────────────────┘
                           │ D-Bus (org.ollie.SessionManager)
                           │
          ┌────────────────┴────────────────┐
          │                                 │
┌─────────┴──────────┐          ┌───────────┴──────────────────┐
│   ollied (../dbus) │          │  olliesrv -nodbus=false       │
│   Pure D-Bus daemon│          │  (../9p, embedded adapter)    │
│   Go │ godbus      │          │  Go │ 9P + D-Bus              │
└────────────────────┘          └──────────────────────────────┘

Two backends provide the D-Bus interface — pick one:

  • ollied (../dbus/) — standalone D-Bus daemon, pure Go, no 9P. Lighter weight.
  • olliesrv (../9p/) — the full 9P server with an embedded D-Bus adapter (enabled by default; disable with -nodbus).

Both register the same org.ollie.SessionManager bus name. They cannot run side by side — choose one. 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 is installed separately — either ollied from ../dbus/ or use olliesrv from ../9p/ (which includes D-Bus by default).

Usage

KRunner

  • ollie <prompt> — one-shot generation via Generate (no session created); shows result in a popup
  • 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