diff --git a/README.md b/README.md index 95f6971..828e082 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,56 @@ olliesrv start -yolo # arbitrary code, no sandbox olliesrv start -strict -yolo # tools only, no sandbox ``` +## Remote Access + +Two approaches: mount the 9P namespace directly with `9pfuse`, or reach it over HTTP via `ollie-httpgw`. + +### 9P mount + +Because `olliesrv` speaks 9P over TCP, a remote instance can be mounted into the local namespace using `9pfuse`. Agent sessions, tools, and all other filesystem state on a remote host become ordinary local files — no special client needed. + +```sh +# On the remote host: +olliesrv start -tcp :9564 + +# Locally: +olliesrv mount remotehost:9564 ~/mnt/remotehost +ls ~/mnt/remotehost # s/, ... +``` + +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. + +### HTTP gateway + +`ollie-httpgw` translates HTTP to 9P, letting any HTTP client interact with `olliesrv` without a 9P library. It's also the backend for the web UI. + +```sh +# Connect to local server: +ollie-httpgw + +# Connect to remote server: +ollie-httpgw -net tcp -addr remotehost:9564 +``` + +See [doc/USAGE.md](https://github.com/lneely/ollie/blob/main/doc/USAGE.md) for full details on the gateway and web UI. + +### Container + +A `Containerfile` is included (at the monorepo root) 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 or point httpgw at it: + +```sh +olliesrv mount localhost:9564 ~/mnt/container-ollie +# or +ollie-httpgw -net tcp -addr localhost:9564 +``` + ## Sessions ### Create