From e9f10eeb9296148fe25360bc88a9c7dd6bbc8e83 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Thu, 16 Apr 2026 23:32:37 +0200 Subject: [PATCH] add remote access via TCP: Containerfile, mount subcommand, docs - Containerfile: multi-stage podman build for running olliesrv as a remote server (port 9564, no FUSE needed on server side) - olliesrv mount
[mountpoint]: mounts a remote olliesrv namespace locally via 9pfuse over TCP - olliesrv start -tcp : adds TCP listener alongside Unix socket - README: document remote access and container usage - doc/IDEAS.md: remove Network & Remote Access (implemented) Co-Authored-By: Claude Sonnet 4.6 --- 9p | 2 +- Containerfile | 27 +++++++++++++++++++++++++++ README.md | 36 ++++++++++++++++++++++++++++++++++++ doc/IDEAS.md | 4 ---- 4 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 Containerfile diff --git a/9p b/9p index 3b5f494..f177741 160000 --- a/9p +++ b/9p @@ -1 +1 @@ -Subproject commit 3b5f494aefe76c52a21f87b51ee043e4e4d10a3c +Subproject commit f17774163cbfd518c9919fb9a455a601a6648aa7 diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..f9188de --- /dev/null +++ b/Containerfile @@ -0,0 +1,27 @@ +FROM docker.io/library/golang:latest AS builder +WORKDIR /src +COPY 9p/ 9p/ +COPY core/ core/ +WORKDIR /src/9p +RUN go build -o /olliesrv . + +FROM docker.io/library/debian:bookworm-slim +RUN apt-get update && apt-get install -y \ + bash \ + python3 \ + ripgrep \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=builder /olliesrv /usr/local/bin/olliesrv +COPY tools/ /root/.config/ollie/tools/ +COPY agents/ /root/.config/ollie/agents/ +COPY prompts/ /root/.config/ollie/prompts/ + +RUN chmod +x /root/.config/ollie/tools/* + +ENV HOME=/root +ENV NAMESPACE=/tmp/ns +RUN mkdir -p /tmp/ns + +EXPOSE 9564 +CMD ["olliesrv", "fgstart", "-tcp", ":9564"] diff --git a/README.md b/README.md index 40d97c5..1071baa 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,42 @@ OLLIE_MEMORY_PATH=~/.config/ollie/memory # directory for memory files (ollie/m) Shell environment variables take precedence over the env file. +## Remote Access + +Because `olliesrv` speaks 9P over TCP, a remote instance can be mounted into the local namespace using `9pfuse`. This means agent sessions, tools, and all other filesystem state on a remote host are accessible as ordinary files — no special client needed. + +### Start a remote server + +On the remote host (or in a container): + +```sh +olliesrv start -tcp :9564 +``` + +### Mount the remote namespace locally + +```sh +olliesrv mount remotehost:9564 ~/mnt/remotehost +ls ~/mnt/remotehost # s/, t/, b/, ... +``` + +Sessions created under `~/mnt/remotehost/s/` run on the remote host, so tool calls execute close to the remote filesystem rather than over the wire. + +### Container + +A `Containerfile` is included for running a self-contained remote server: + +```sh +podman build --network=host -t olliesrv . +podman run --network=host -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY olliesrv +``` + +Then mount locally: + +```sh +olliesrv mount localhost:9564 ~/mnt/container-ollie +``` + ## Development Update all submodules to latest: diff --git a/doc/IDEAS.md b/doc/IDEAS.md index 48bbde1..bd00c49 100644 --- a/doc/IDEAS.md +++ b/doc/IDEAS.md @@ -16,10 +16,6 @@ **Lightweight TUI alternatives** — `watch cat state` as a status bar, `tail -f chat` in one pane, prompt submission in another. Compose a working interface entirely from standard tools. -### Network & Remote Access - -**Remote access** — 9P is a network protocol. Export the namespace over the network and access agent sessions from another machine using the same file interface, with no additional daemon or API layer. - ### Multi-Agent Workflows Two distinct patterns apply depending on whether work is delegated to ephemeral agents or distributed across persistent concurrent sessions.