Skip to main content
The R2 VFS mounts a Cloudflare R2 bucket at some prefix such as /r2/. All operations involve network I/O to the remote object store. Uses aioboto3 against R2’s S3-compatible API. For credential setup, see R2 Setup. Install the extra:

Config

R2VFS(config) takes an R2Config object with the bucket name and either account_id (endpoint is auto-built as https://{account_id}.r2.cloudflarestorage.com) or an explicit endpoint_url. Both READ and WRITE modes are supported. Fields marked secret are redacted in snapshots. For write: conditional on this provider, see S3-compatible stores.

VFS.md

The VFS.md an agent reads with Cloudflare R2 mounted at /<path>.

Virtual Filesystem

Supported Unix Commands for VFS

Unix commands work on each path as on a local filesystem, as far as the path supports them:

Limitations of Unix Commands for VFS

Where a path differs from a local filesystem:Run man <cmd> or <cmd> --help for one command’s usage.
The R2 VFS maps object keys to virtual paths under the mount prefix. R2 “directories” are prefix-based — there are no real directory objects. For example, if bucket my-bucket contains:
Then mounting at /r2/ exposes:
Path mapping: virtual /r2/assets/logo.png maps to R2 key assets/logo.png.

Cache

The R2 VFS uses IndexCacheStore with index_ttl = 600 (10 minutes). Directory listings are cached for up to 600 seconds before being refreshed from R2. This reduces API calls for repeated directory traversals. A configured index: replaces this lifetime with its own ttl, and the mount’s ttl: caps it.

Integration

What R2 answers through its own API, so fewer files are read. Integration explains each command.

Example

Shell Commands

The R2 VFS supports the full set of shell commands since it operates on real file content (text, binary, JSON, CSV, etc.). Large files benefit from range reads to avoid downloading entire objects.

Read Commands

Text Processing

File Operations

Path Utilities

Compression

Encoding

Use Cases

  • AI agents accessing R2 data: Mount R2 buckets for agents to read and process datasets
  • Data pipelines: Read and write R2 objects with shell-like commands
  • FUSE mounting: Expose R2 buckets through a virtual FUSE mount for external tools