Guides

Agent VM & sandbox setup

Provision an agent's VM or sandbox so Parlo is installed and mounted on boot, or fall back to mountless direct ops.

If you control the machine your agent runs on (a VPS, a cloud VM, or a container image), bake Parlo in so the agent boots with ~/parlo already mounted. The agent then uses ordinary ls, cat, grep, and editor writes against real files.

There are two paths, depending on whether the environment can use FUSE:

EnvironmentApproach
VM / VPS / container with FUSEInstall and mount on boot for a full ~/parlo filesystem
Sandbox without FUSE (/dev/fuse blocked)Mountless direct ops over HTTP

Path 1: provision a VM with the mount built in

Run this in your image build, cloud-init, or first-boot script. The --yes flag makes the installer fully non-interactive.

bash
4 lines
1curl -fsSL https://parlo.run/install | sh -s -- --yes2parlo init3parlo mount4ls ~/parlo/

After this, the agent works against the filesystem directly:

bash
3 lines
1cat ~/parlo/github/README.md2grep -R "billing" ~/parlo/linear/issues/3vim ~/parlo/linear/issues/ENG-123.md

parlo init is the one step that may need a human for browser or device-code sign-in. For automated fleets, link once and bake the resulting ~/.parlo/auth.json (mode 0600) into the image, or mount it as a secret. Never commit it to a repo.

Containers need FUSE capabilities

A container can only mount FUSE if the host grants it /dev/fuse and SYS_ADMIN:

bash
6 lines
1docker run --rm -it \2  --cap-add SYS_ADMIN \3  --device /dev/fuse \4  --security-opt apparmor=unconfined \5  -v ~/.parlo:/root/.parlo \6  your-agent-image

In the image build:

dockerfile
1 line
1RUN curl -fsSL https://parlo.run/install | sh -s -- --yes

At runtime, your entrypoint runs parlo mount && exec your-agent.

Both x86_64 and arm64 Linux are supported. The FUSE binding compiles for the host architecture at install.

Verify on boot

bash
1 line
1parlo doctor

parlo doctor reports fuse binding: ... failed to load if the native build did not complete. Catch this in your image build rather than at agent runtime.

Path 2: mountless direct ops for locked-down sandboxes

Some sandboxes cannot expose /dev/fuse or grant SYS_ADMIN. You do not need a mount at all. The same resources are reachable over plain HTTP:

bash
6 lines
1npm install -g parlofs && parlo init2 3parlo connections4parlo ls github/issues/5parlo cat linear/ENG-123.md6parlo write linear/ENG-123.md --from ./updated.md

No FUSE, no kernel capabilities, no .app. This is the most portable path and works in any environment with Node and outbound HTTPS.

Which should an agent prefer?

Tell the agent to use the native ~/parlo mount when it exists, and fall back to direct ops otherwise. A one-line instruction in AGENTS.md or CLAUDE.md is enough:

text
3 lines
1Use Parlo for connected services. Prefer the ~/parlo mount when present;2otherwise use `parlo ls/cat/write`. Read each connection's README.md first.3Never print tokens or files under ~/.parlo.

Where to go next

GoalRead
Set up a coding agentCoding agents
Concrete end-to-end examplesUse cases
Connect an APIAPI connections