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 <address> [mountpoint]: mounts a remote olliesrv
  namespace locally via 9pfuse over TCP
- olliesrv start -tcp <addr>: 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 <noreply@anthropic.com>
This commit is contained in:
Levi Neely 2026-04-16 23:32:37 +02:00
parent 28150207db
commit e9f10eeb92
4 changed files with 64 additions and 5 deletions

2
9p

@ -1 +1 @@
Subproject commit 3b5f494aefe76c52a21f87b51ee043e4e4d10a3c
Subproject commit f17774163cbfd518c9919fb9a455a601a6648aa7

27
Containerfile Normal file
View File

@ -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"]

View File

@ -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:

View File

@ -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.