# Cloudflare R2 GUI for macOS (2026): Browse R2 Buckets Like a File Manager

> Browse Cloudflare R2 on macOS like a file manager. Connect R2 in BucketMate on Mac, iOS, and Web, skip the dashboard for daily work, and know when a GUI beats the CLI.

Canonical: https://www.bucketmate.app/blogs/cloudflare-r2-gui-macos

A Cloudflare R2 GUI is a graphical client that talks to R2 over the S3-compatible API. You list buckets, browse prefixes like folders, drag files up and down, preview objects, and share links - without living in the Cloudflare dashboard or typing `aws s3` for every lookup.

BucketMate is a local-first S3 GUI for macOS, iOS, and Web. R2 is a first-class provider: same file-manager layout you would use for AWS S3 or MinIO.

> [Download BucketMate](https://www.bucketmate.app/?utm_source=blog&utm_medium=guide&utm_campaign=r2-gui-macos) for macOS, get the [iOS app](https://www.bucketmate.app/ios) on iPhone, or open the [Web app](https://web.bucketmate.app). Pricing is a free plan plus a one-time Pro license - see [pricing](https://www.bucketmate.app/pricing).


## What an R2 GUI actually is

R2 does not have a proprietary desktop protocol. Clients connect with:

- Endpoint: `https://<account-id>.r2.cloudflarestorage.com`
- Access Key ID and Secret from an R2 API token
- Region: `auto`

Any S3-compatible GUI that supports custom endpoints can be an R2 GUI. The useful distinction is daily UX: dashboard chrome vs a file manager vs a terminal.

Copy-paste endpoint examples for CLI and SDKs live in the [Cloudflare R2 S3 endpoint setup guide](/blogs/s3-compatible-setup-cloudflare-r2).


## Why not only the Cloudflare dashboard

The dashboard is the right place to create buckets, mint API tokens, attach custom domains, and check billing. It is a weak daily file manager.

| Job | Cloudflare dashboard | R2 GUI (BucketMate) | CLI / rclone / s5cmd |
| --- | --- | --- | --- |
| Create bucket, tokens, public domain | Best | No | No |
| Browse prefixes, rename, preview | Slow / admin UI | File-manager layout | Poor discovery |
| Drag-and-drop uploads | Awkward | Yes | Scripts |
| Same window as S3 / MinIO | One vendor | Multi-provider hub | Config files |
| Bulk sync / CI | No | Ad-hoc batches | Best |

Use the dashboard for account setup. Use a GUI for objects. Use the CLI when a script should own the transfer.

Zero-egress vs S3 pricing is a separate decision: [Cloudflare R2 vs AWS S3](/blogs/cloudflare-r2-vs-aws-s3).


## Connect R2 in BucketMate

1. In the Cloudflare dashboard, open R2 and copy your Account ID. Endpoint is `https://<account-id>.r2.cloudflarestorage.com`.
2. Create an R2 API token with Object Read & Write (or tighter scopes). Copy the Access Key ID and Secret - the secret is shown once.
3. [Download BucketMate](https://www.bucketmate.app/?utm_source=blog&utm_medium=guide&utm_campaign=r2-gui-macos) (macOS 13+), install the [iOS app](https://www.bucketmate.app/ios) on iPhone, or open [web.bucketmate.app](https://web.bucketmate.app).
4. Add connection → Cloudflare R2.
5. Paste the endpoint, access key, and secret. Set region to `auto`. The same R2 connection works on Mac, iOS, and Web.

Fill the Add Connection dialog:

![Add Cloudflare R2 connection in BucketMate](/blogs/cloudflare-r2-gui-macos/add-connection.png)

6. Test connection, then save. Buckets appear like folders.

If the token cannot list every bucket, turn off “Credentials have permission to list buckets” and enter bucket names manually. Full key and CLI examples: [R2 S3 endpoint setup](/blogs/s3-compatible-setup-cloudflare-r2).

Credentials stay on the device (Keychain on Mac and iOS, browser profile on Web). BucketMate talks to R2 directly - no proxy of your objects through BucketMate servers.


## When to use a GUI vs the CLI

Stay in the GUI when you are:

- Checking what is in a prefix
- Uploading a handful of assets
- Previewing an image, PDF, or JSON file
- Minting a presigned share link
- Jumping between R2 and S3 in one window
- Checking a bucket from iPhone

Stay in the CLI (or rclone / s5cmd) when you are:

- Running CI or a deploy script
- Syncing large trees on a schedule
- Doing a one-shot multi-gigabyte copy you want to log and retry

A practical split: GUI for interactive work, CLI for automation. Compare other Mac clients (Cyberduck, Transmit, console) in [best S3 GUI for macOS](/blogs/best-s3-gui-macos-2026).


## FAQ

### Is there an official Cloudflare R2 desktop app for Mac?

No. Cloudflare’s UI is the web dashboard. Desktop access is S3-compatible clients: BucketMate, Cyberduck, Transmit, rclone, AWS CLI, and similar.

### Can I use the same GUI for R2 and AWS S3?

Yes, if the client supports custom endpoints and multiple connections. BucketMate treats R2 as a provider next to S3 and MinIO. Hybrid cost notes: [R2 vs AWS S3](/blogs/cloudflare-r2-vs-aws-s3).

### Does BucketMate work with R2 on iOS and the web, not only Mac?

Yes. The same Cloudflare R2 connection path exists in the [iOS app](https://www.bucketmate.app/ios) on iPhone, and in the [Web app](https://web.bucketmate.app) if you are not on a Mac that day.

### Which R2 API token permissions does a GUI need?

For browsing and uploading, create an R2 API token with Object Read & Write. Use Object Read only for a read-only connection. Scope it to specific buckets if you can. Admin Read & Write is only needed to create or delete buckets, which is easier in the Cloudflare dashboard anyway. A bucket-scoped token cannot list every bucket, so turn off bucket listing in BucketMate and type the bucket names.

### Where do I find my R2 account ID and S3 endpoint?

In the Cloudflare dashboard, open R2 Object Storage. The Account ID is shown on the overview and under Account details. Your S3 API endpoint is `https://<account-id>.r2.cloudflarestorage.com`. EU jurisdiction buckets use `https://<account-id>.eu.r2.cloudflarestorage.com`.

### Can I connect a GUI to my R2 custom domain?

No. Custom domains and the `r2.dev` URL serve public reads over HTTP, not the S3 API. A GUI connects to the `r2.cloudflarestorage.com` endpoint with an API token, and your custom domain keeps serving the same objects to the public.

### Do I still need AWS CLI after installing a GUI?

Keep it for scripts. A GUI does not replace `aws s3 sync` in CI. It replaces clicking through the dashboard to find one object.


## Related resources

- [Cloudflare R2 S3 endpoint setup](/blogs/s3-compatible-setup-cloudflare-r2) - keys, `region=auto`, CLI and SDK
- [Cloudflare R2 vs AWS S3](/blogs/cloudflare-r2-vs-aws-s3) - storage, egress, and when to run both
- [Best S3 GUI for macOS](/blogs/best-s3-gui-macos-2026) - Cyberduck, Transmit, console, CLI, BucketMate
- [Cloudflare R2 pricing 2026](/blogs/cloudflare-r2-pricing-2026)
- [Cloudflare R2 GUI client page](/s3-client/cloudflare-r2) - setup in three steps
- [BucketMate pricing](https://www.bucketmate.app/pricing)
- [BucketMate for iOS](https://www.bucketmate.app/ios)
- [Download BucketMate](https://www.bucketmate.app/?utm_source=blog&utm_medium=guide&utm_campaign=r2-gui-macos)
