ollie is a 9p-based generative agent surface
Go to file
Levi Neely fa5828b2d3 rename workdir to cwd throughout codebase
Completes the rename started with the 9P file change.

Go API: WorkDir→CWD, SetWorkDir→SetCWD, WorkDirSetter→CWDSetter.
Unexported: workdir→cwd in fields, params, locals.
Template: {{.WorkDir}}→{{.CWD}}.
Docs: ARCHITECTURE.md, PLANNING.md, README.md, IDEAS.md.
2026-04-13 18:02:54 +02:00
9p@818ccf2632 rename workdir to cwd in docs, toys, and submodule refs 2026-04-13 15:51:58 +02:00
agents move agents/ and prompts/ from core to monorepo root 2026-04-13 10:32:53 +02:00
core@a035913514 update core and el submodules 2026-04-13 16:22:08 +02:00
doc rename workdir to cwd throughout codebase 2026-04-13 18:02:54 +02:00
el@44df406c15 update core and el submodules 2026-04-13 16:22:08 +02:00
prompts rename workdir to cwd throughout codebase 2026-04-13 18:02:54 +02:00
sandbox rename sandbox/anvilmcp.yaml to restricted.yaml 2026-04-13 10:35:43 +02:00
skills@7da6494608 submodules: update agent-skills (add shell-file-editing skill) 2026-04-11 16:17:46 +02:00
toys rename workdir to cwd in docs, toys, and submodule refs 2026-04-13 15:51:58 +02:00
tui@e4d9abbadb rename workdir to cwd in docs, toys, and submodule refs 2026-04-13 15:51:58 +02:00
.gitmodules submodules: add agent-skills 2026-04-11 16:13:47 +02:00
README.md readme 2026-04-13 16:31:00 +02:00
mkfile update submodules; copy help.md in mkfile data target 2026-04-13 14:45:20 +02:00

README.md

ollie

What happens if agent primitives are exposed as an ordinary filesystem? How much can be subtracted from AI agent implementations without reducing their usefulness? These are some of the motivating questions behind ollie.

  • The core system provides a public library of AI agent primitives.
  • The 9p filesystem server (Go) creates a virtual filesystem exposing the important state and behaviors as ordinary files and operations.
  • A reference TUI implementation proves that it is possible to build a functioning and user-friendly terminal front-end using only the Go standard library.
  • And, just because I like my Emacs friends, a reference Emacs interface front-end implementation.

Project Structure

  • core/:
  • tui/:
  • 9p/:
  • el/:

Getting Started

Clone with submodules:

git clone --recurse-submodules https://github.com/lneely/ollie.git

Or after cloning:

git submodule update --init --recursive

Building

Build everything from the monorepo root:

mk

Or build specific components:

mk core    # Build core library
mk tui     # Build terminal UI
mk 9p      # Build 9p filesystem server

For Emacs Lisp, copy el/ollie.el into your own Emacs configuration directory, and:

(require 'ollie)

Development

Update all submodules to latest:

git submodule update --remote

Observed Benefits

Crash resiliency — reasoning_plan persists plans to the ollie/pl filesystem by default. If a session crashes or is killed mid-task, recovery is trivial: point a fresh session at the plan that was being executed. The agent's prompting already tells it how to discover plans in pl/, so it can resume cold — reading the plan, seeing which steps are done and which aren't, and picking up where the previous session left off. No context replay, no manual re-prompting, no lost work.

Credits

Many sources of inspiration:

  • Plan 9 from Bell Labs — for an interesting system
  • @9fans — for the Plan 9 port
  • Suckless — for articulating good software development principles
  • @simonfxr — for a solid agent baseline to "borrow" from, and other nifty ideas
  • @aws — for a solid open-source agent implementation

License

GPLv3