README: strip all D-Bus references, 9P is the only surface

This commit is contained in:
Ollie Agent 2026-08-04 20:18:22 +02:00
parent bc648a5c95
commit 491f259a2b
2 changed files with 9 additions and 52 deletions

View File

@ -1,15 +1,9 @@
# ollie
Ollie is an AI agent runtime. A single binary (`olliesrv`) exposes agent sessions
over two surfaces: a **9P2000 filesystem** (the canonical interface) and a
**D-Bus service** (`org.ollie.SessionManager`). Both are thin adapters over the
same core — the agent loop, tool dispatch, sandboxing, and multi-backend routing.
Choice of surface is per-deployment: 9P for its Unix composability, D-Bus for
desktop integration, or both.
The core is deliberately minimal. Capabilities come from composing small pieces —
tool executables, skill files, metadata sidecars — rather than building a
monolithic framework.
over a single surface: a **9P2000 filesystem**. The core is deliberately minimal;
capabilities come from composing small pieces — tool executables, skill files,
metadata sidecars — rather than building a monolithic framework.
## Getting started
@ -70,7 +64,7 @@ Single Go module with one Git submodule (kde).
| `cmd/olliesrv/` | Go | The main binary |
| `cmd/ollie-9p/` | Go | 9P client |
| `cmd/ollie-remote/` | Go | Remote execution binary |
| `kde/` | C++/Qt6 | KDE plasmoid, GUI, Kate plugin, KRunner, tray *(submodule)* |
| `kde/` | C++/Qt6 | KDE plasmoid, GUI, Kate plugin, KRunner *(submodule)* |
| `data/agents/` | JSON | Agent configs |
| `data/prompts/` | Markdown | System prompt templates |
| `data/tools/` | Mixed | Tool executables (scripts + compiled) + `.meta` sidecar files |
@ -120,13 +114,9 @@ graph TB
TOOLS -->|SSH| REMOTE
```
`olliesrv` is a single binary. Which surface it exposes is a flag:
| Mode | Flags | Interface | Frontends |
|------|-------|-----------|-----------|
| +9p +dbus | (default) | 9P filesystem + D-Bus signals | All |
| +9p -dbus | `-nodbus` | 9P filesystem only | Terminal, acme, Emacs, web |
| -9p +dbus | `-no9p` | D-Bus only | KDE (plasmoid, GUI, Kate, KRunner, tray) |
`olliesrv` exposes the agent runtime over a single surface: a 9P2000 filesystem.
The KDE GUI, Kate plugin, and KRunner use 9P internally to communicate with the
server — there is no D-Bus interface.
## 9P: everything is a file
@ -249,44 +239,11 @@ with a 10-line shell script instead of a framework.
- **Multiplexing** — multiple clients mount the same server simultaneously,
each with an independent view through per-fid state
## D-Bus: desktop integration
The D-Bus interface (`org.ollie.SessionManager`) is embedded in `olliesrv`
(enabled by default, or exclusively via `-no9p`). It provides typed method
calls and real-time signals.
```sh
# Create a session
dbus-send --session --dest=org.ollie.SessionManager --type=method_call --print-reply \
/org/ollie/SessionManager org.ollie.SessionManager.CreateSession \
string:"$PWD" string:"" string:"" string:"default" string:"" string:""
# Submit a prompt
dbus-send --session --dest=org.ollie.SessionManager --type=method_call \
/org/ollie/SessionManager org.ollie.SessionManager.Submit \
string:"SESSION_ID" string:"fix the bug"
# Read state
dbus-send --session --dest=org.ollie.SessionManager --type=method_call --print-reply \
/org/ollie/SessionManager org.ollie.SessionManager.GetState string:"SESSION_ID"
```
### Signals
D-Bus signals push events without polling:
- **`ChatUpdated`** — new chat output (session_id, offset, text)
- **`StateChanged`** — transition notifications
- **`SessionCreated` / `SessionKilled` / `SessionRenamed`** — lifecycle events
- **`ProcessDetached` / `ProcessExited`** — background process events
GUI frontends subscribe once and react — no timers, no file watches, no busy loops.
### KDE integration
### KDE frontends
- **Plasmoid** — embed an agent chat widget in the Plasma panel
- **Kate plugin** — inline AI assistance in the text editor
- **KRunner** — launch prompts from the desktop search bar
- **System tray** — status indicator and quick actions
- **Standalone GUI** — full-featured Qt6 chat application
## Tool registry: zero built-in tools

View File

@ -196,7 +196,7 @@ state transition via `statewait` — zero CPU when idle.
## Other front-ends
- **[ellie](ellie.md)** — Emacs session tree, chat, multi-agent
- **KDE** — plasmoid, standalone GUI, Kate plugin, KRunner, system tray
- **KDE** — plasmoid, standalone GUI, Kate plugin, KRunner
For technical details (generation parameters, sandboxing, multi-agent workflows,
tool discovery, and the raw 9P filesystem), see [doc/whitepaper.md](whitepaper.md).