BucketBuddy

Features

Everything you need to work with S3 — without leaving VS Code.

Trust & Safety

BucketBuddy is locked by default, everywhere, always. Browsing, downloading, and searching never require unlocking anything — the only way any bucket content changes is if you explicitly unlock it first.

🔒

Read-Only Lock, on by default

Every profile and every bucket starts locked (read-only) the moment you connect it — no setup, nothing to remember to turn on. Click the lock icon to unlock a bucket or an entire profile before making any change.

🔐

Protected Profiles

Mark profiles or buckets as protected by env value or profile name pattern (production* by default). Protected items are skipped by "Unlock All" — they can still be unlocked one at a time, deliberately, never in bulk.

📜

Activity Log

Every successful write — upload, delete, rename, restore, copy, tag edit, folder sync — is timestamped in a dedicated output channel. A locked-by-default workflow still gives you a full audit trail for the writes that did happen.

⚠️

Unlock, then retry — deliberately

Attempting a write against a locked target shows a warning with an "Unlock Now" button — it only unlocks. Your original action does not run automatically, so a single click can never both unlock and delete or overwrite; you unlock, then retry the action.

🆚

Overwrite Diff Preview

Before confirming an overwrite, BucketBuddy shows existing vs. incoming size and last-modified date side by side, so "Overwrite?" is never a blind guess.

🛡️

Permission Diagnostics

Check whether your current credentials can read and list a bucket — without ever creating, changing, or deleting anything. Write access is never tested by writing.

🔓

Lock All / Unlock All

Bulk-lock or bulk-unlock every connected profile in one step. Unlock All automatically skips profiles or buckets marked Protected — those still unlock individually, just never in bulk.

Browsing & Navigation

🪣

Browse Buckets

Buckets are listed and the tree auto-expanded the moment a profile connects — no manual click needed. Each profile gets its own colour-coded root node so you always know which account you are in.

📁

Navigate Folders

S3 prefixes are rendered as folders. Drill down into any depth of prefix hierarchy just like a local file explorer. An Up button lets you navigate back without collapsing the tree, and the full path is always one hover or a right-click "Copy S3 URI" away.

🏷️

Environment Grouping

Add env=DEV / Staging / Prod (or any custom value) to a profile in your AWS config, or right-click a profile in the tree and pick "Set Environment/Group…" if you’d rather not touch the config file at all. Either way, similar profiles group under one banner — dev, staging, and prod accounts read as distinct sections, not a flat list.

🔍

Search

Find objects by prefix or wildcard pattern within any bucket or folder.

🌐

Search All Buckets

Search across every already-listed bucket for every connected profile in a single command — bounded to buckets you have already browsed once, so it stays fast.

🔖

Saved Searches & Paths

Save a reusable cross-bucket search query, or bookmark a specific bucket/folder path for one-click navigation back to it later.

🕘

Recent Objects

Quickly reopen recently viewed objects from any connected profile — most-recent-first, deduplicated, remembered across VS Code restarts.

🔃

Sort

Sort the contents of any expanded folder by name, last modified date, or object size. Toggle between ascending and descending order.

🔢

Object Counts

After expanding a bucket or folder, BucketBuddy shows the total number of items directly in the tree node label.

📦

Storage Class

Objects stored in GLACIER, DEEP_ARCHIVE, INTELLIGENT_TIERING, and other non-STANDARD classes are labelled inline so you know before attempting to open or download them.

🔁

Refresh Node

Refresh a single bucket or folder without reloading the entire tree. Right-click any node and choose Refresh.

File Operations

👁️

Open in Editor

Preview text files, JSON, YAML, CSV, Markdown, and images directly in a VS Code editor tab. The file is fetched on demand — nothing is saved to disk unless you explicitly download it.

✍️

S3 Draft Editing

Open a text object as an editable draft, make changes, then explicitly upload it with "Save Active S3 Draft." Content type and metadata are retained. The target bucket must be unlocked to save — twice-checked, once on open and once on save.

⬇️

Download

Download a single object or an entire folder to any local path. Multi-select is supported. Multi-file transfers can be cancelled mid-operation.

⬆️

Upload

Open the file picker to choose one or more files to upload to the current folder. You can also drag files from the OS file explorer directly onto a bucket or folder node.

🗑️

Delete

Delete individual objects or folders (all objects under a prefix). A confirmation dialog prevents accidental deletions. Multi-select bulk delete is supported.

✏️

Rename / Move

Rename or move an object in a single step. BucketBuddy copies the object to the new key and deletes the original — the operation is atomic from your perspective.

📁

Rename Folder

Rename an entire folder at once — every object under its prefix is copied to the new prefix and the originals deleted, with a confirmation naming the object count up front.

📂

Create Folder / File

Create a new prefix (folder) or an empty file anywhere in the tree, with overwrite confirmation.

🪣

Create Bucket

Create a new S3 bucket for the connected profile without leaving VS Code. Specify the bucket name and region — BucketBuddy handles the rest.

🔄

Configured Folder Sync

Opt-in local-folder-to-S3 sync with include/exclude filters. Every run opens a preview and requires an explicit "Apply Sync" confirmation — nothing uploads or deletes without you reviewing the plan first. Remote deletion is disabled unless you turn it on.

Object Inspection

ℹ️

Object Properties

Inspect object size, ETag, content type, cache-control, encryption, storage class, and custom metadata.

📊

Storage Insights

Summarize object count and total bytes by storage class for a bucket or prefix, at a glance — up to 5,000 objects scanned.

📋

Bucket Details

Read-only view of a bucket’s policy, encryption, lifecycle rules, and versioning status.

🔐

S3 Object Lock

Display an object’s retention and legal-hold state when the profile is authorized to read it.

🏷️

Object Tags

View, add, edit, or remove S3 object tags directly from the tree.

Insights & Maintenance

📋

List All Files

Right-click a bucket or folder for a plain-text listing (up to 5,000 objects) you can search or copy — choose recursive (every object in every subfolder) or this-folder-only.

💰

Cost Estimate

A directional, clearly-labelled storage-only cost estimate by storage class for a bucket or prefix, using public list rates — not a bill, but a quick sanity check.

🧹

Clean Up Incomplete Multipart Uploads

Preview every incomplete multipart upload in a bucket — these quietly accrue storage costs without appearing as objects — then explicitly confirm before aborting them.

⚙️

Bulk Edit Object Properties

Apply a new Cache-Control or Content-Type to a multi-selection of objects at once, with a single confirmation before anything is rewritten.

📡

Event Notifications Viewer

Read-only view of a bucket’s configured S3 event notifications (Lambda, SQS, SNS, EventBridge) — change them in the AWS Console or your infrastructure-as-code workflow.

✅

Checksum Verification

Verify a downloaded object against the SHA-256 checksum S3 computed on upload, confirming the bytes you got match what’s stored.

📥

Transfer Queue

See every active and recent upload/download for the current session in one place, including which ones failed.

Multi-Profile & Cross-Account

👥

Multiple profiles simultaneously

Connect as many AWS profiles as you have configured in ~/.aws/config. Each profile appears as a separately colour-coded root node. There is no limit on the number of simultaneous connections.

🔄

Cross-Account Copy

Copy objects — or an entire folder in one go — between two different AWS accounts entirely client-side — no intermediary server, no extra storage. BucketBuddy streams bytes from the source profile to the destination profile. The target bucket must be unlocked.

💾

Persistent Sessions

Which profiles are connected and which buckets are pinned is saved across VS Code restarts. Your workspace is exactly as you left it every time you reopen VS Code.

🏷️

Connect/Disconnect All in a Group

Env-grouped profiles (Dev, Staging, Prod) each get their own Connect All / Disconnect All, scoped to just that group — no need to reach for the profile-wide toolbar action when you only want one environment.

Developer Tools

🔗

Copy S3 URI

Right-click any object to copy its S3 URI (s3://bucket/key) to the clipboard. Paste directly into AWS CLI commands, SDK code, or Terraform configs.

🌐

Pre-signed URL

Generate a time-limited pre-signed URL for any object. Choose expiry: 5 minutes, 1 hour, or 24 hours. The URL is copied to the clipboard and requires no AWS credentials to use.

🖥️

Copy as AWS CLI

Right-click an object to get a ready-to-run aws s3 cp command copied to the clipboard. Useful when you need to script a download or reference the exact CLI syntax.

🌀

Copy as curl

Generates a pre-signed curl command for the object. Works anywhere curl is available — no AWS CLI or SDK needed on the target machine.

🔗

Open in AWS Console

Jump directly to any object, folder, or bucket in the AWS Management Console in your default browser. The link is region-aware and opens the correct console page.

☁️

CloudFront Invalidation

Create a CloudFront cache invalidation for a bucket, folder, or object straight from the tree — paths are pre-filled from what you clicked, with an explicit confirmation before it runs.

Version History

🕐

Browse versions

For buckets with versioning enabled, open the Version History panel to see every version of an object — version ID, size, last modified, and whether it is a delete marker.

🕐

Open, download, or restore

Preview any historical version in the editor, download it to disk, or restore it as the current version. Restoring copies the selected version to a new version — the history is never destructively modified.

🆚

Compare Versions

Diff any two object versions side by side in VS Code’s native diff editor.

Drag & Drop

🖱️

Drag from OS file explorer

Drag files from Finder (macOS) or Explorer (Windows) directly onto a bucket or folder node in the BucketBuddy sidebar. The drop triggers an upload to that location.

🖱️

Drag between buckets

Drag objects from one bucket or folder to another — even across different profiles and accounts. BucketBuddy handles the copy (and optional delete) transparently.

Feedback

⭐

Rate on Marketplace

An occasional, unobtrusive prompt after real usage (10+ launches, 7+ days) asks if you’d rate BucketBuddy — snoozeable or dismissible for good, and always available manually from the Command Palette.

📧

Send Feedback

One command opens a pre-filled email draft with your BucketBuddy and VS Code version included, so reporting a bug or a request takes one click, not a blank email.

All features are free. No tiers. No sign-up.

Install for VS Code — It's Free
See how to get started →