Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| README.md | ||
| ellie.el | ||
README.md
ellie
An ollie front-end, via ollie-9p, for our emacs friends. Provides a chat buffer, prompt composition, interrupt handling, and session management. The agent core, backends, and tools are handled by the ollie-9p server.
Background
ollie-tui proved that a full interactive client could be built on top of the ollie-9p filesystem using nothing but plain file I/O. ellie asks the same question in a different environment: can the same interface be built as an Emacs package, with no knowledge of ollie's internals and no dependencies beyond Emacs itself?
The answer is yes. The implementation uses only built-in Emacs file operations: write-region to submit prompts, a half-second timer to tail the chat log by comparing file sizes, and insert-file-contents to read new content into a buffer. The ollie-9p filesystem is the entire API surface.
Prerequisites
olliesrv must be running and mounted before use:
olliesrv start
By default the server mounts at ~/mnt/ollie. Set OLLIE to use a different path.
Installation
Add ellie.el to your load path:
(add-to-list 'load-path "/path/to/ellie")
(require 'ellie)
Or with use-package:
(use-package ellie
:load-path "/path/to/ellie")
Optionally set a mount path and default session options:
(setq ollie-mount-directory "/custom/mount")
(setq ollie-default-session-opts '(("backend" . "ollama") ("model" . "qwen3:8b")))
Usage
| Command | Description |
|---|---|
M-x ellie |
Open chat; attach to last session for default-directory, or create a new one |
M-x ellie-new-and-open |
Force-create a new session and open chat |
M-x ellie-attach-and-open |
Attach to an existing session by ID |
UI
In the *ellie* buffer:
| Key | Action |
|---|---|
RET |
Open input window and compose a prompt |
C-c C-q |
Open input window and compose a queued prompt |
C-c C-c |
Interrupt the running turn |
C-c C-k |
Kill the current session |
C-c C-r |
Rename the current session |
C-c C-n / n |
New session |
C-c C-a |
Attach to a different session |
C-c C-d |
Open the ollie mount in Dired |
g |
Force-refresh the chat log |
In the *ellie-input* window:
| Key | Action |
|---|---|
C-c C-c |
Submit |
C-c C-k |
Cancel |
The input window accepts multi-line prompts. Queued prompts are held until the current turn finishes.
The mode line shows the active session ID and current state (idle or the running state name).
License
GPLv3