Skip to main content
This walkthrough shows how examples/sharepoint-mount gives an agent filesystem access to a SharePoint document library. A Docker container runs the Omnara daemon next to an rclone FUSE mount, and the agent uses that mount as its working directory. The same bring-your-own-machine pattern works for private networks, databases, and internal APIs. The daemon connects outbound to the control plane, so the container needs no inbound ports. If it disconnects, the agent remains durable; commands against the machine return retryable errors until it reconnects.

The pieces

Four files do the work. The repository README covers the Microsoft authentication options and exact setup:

Register the machine

In the dashboard: open Machines and click Connect machine. Pick the machine name — agent configs reference machines by name, so choose something stable — and the project whose agents may use it, then copy the machine token (shown once). The script feeds that token to the daemon:
The container needs --cap-add SYS_ADMIN --device /dev/fuse because rclone mounts FUSE inside it; the script passes both. These are elevated container permissions, so use a dedicated, trusted container.

A minimal agent config

Once the machine is online, this minimal config points an agent at the machine and mount:
machine_name selects this specific machine instead of creating one from a pool. cwd makes the mounted library the default directory for commands. The image includes tools such as pandoc and openpyxl; the instruction tells the agent how to use them. Launch an agent from this config (dashboard or API) and verify:
It should list the document library’s contents from /mnt/sharepoint. The mount is not a one-time copy. When its SharePoint credentials allow writes, files the agent creates or edits are written back to SharePoint. Likewise, changes made in SharePoint appear back in the mount.