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 4bd7a60e78 session rename: clean up comment, use ollie-9p mv 2026-08-01 15:50:31 +02:00
dolphin add 6th arg (remote) to all CreateSession D-Bus calls 2026-07-24 11:58:09 +02:00
gui session rename: clean up comment, use ollie-9p mv 2026-08-01 15:50:31 +02:00
kate fix: kate plugin and krunner compilation 2026-08-01 15:07:50 +02:00
krunner fix: kate plugin and krunner compilation 2026-08-01 15:07:50 +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 gui: syntax-highlight fenced code/diff blocks at stream end 2026-08-01 11:36:43 +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