AWS BucketBuddy
Browse, upload, download, and manage Amazon S3 objects directly from VS Code — without ever leaving your editor.
AWS BucketBuddy gives developers a visual S3 browser in the VS Code sidebar. No AWS Console access required. Connect using any AWS CLI profile — standard credentials, SSO, assumed roles, or process credentials — and navigate your S3 buckets like a file explorer. Connect multiple profiles simultaneously to browse cross-account buckets side-by-side and copy objects between them.
Publisher: kkmohan
Author: Krish Kanchinadam
What it looks like
S3 Buckets
│
├── 👤 work-profile | us-east-1
│ ├── ➡️ Go to bucket…
│ ├── 📁 prod-data
│ │ ├── 📂 configs/
│ │ │ └── 📄 app.json 12.4 KB
│ │ ├── 📂 logs/
│ │ └── 📄 README.md 1.1 KB
│ └── 📁 staging-bucket
│ └── 📄 deploy.zip 4.2 MB
│
├── 👤 personal | eu-west-1
│ ├── ➡️ Go to bucket…
│ └── 📁 my-backups
│ ├── 📂 2024/
│ └── 📄 archive.tar.gz 820 MB
│
└── ➕ Connect another profile…
Features
| Feature |
Description |
| 🪣 Browse Buckets |
Lists all owned S3 buckets per profile. Cross-account buckets can be accessed directly by URL. |
| 📁 Navigate Folders |
Drill into S3 prefixes as if they were folders — lazy-loaded with pagination. |
| 👁️ Open in Editor |
Preview text, JSON, YAML, CSV, Markdown, and images inline in VS Code. |
| ⬇️ Download |
Download any object to a local path via a Save dialog. |
| ⬆️ Upload |
Upload local files into any bucket or prefix via file picker. |
| 🗑️ Delete |
Delete objects with an optional confirmation prompt. |
| ✏️ Rename / Move |
Copy to a new key then delete the original — atomic rename in one step. |
| 🔗 Copy S3 URI |
Copies s3://bucket/key to the clipboard. |
| 🌐 Pre-signed URL |
Generates a time-limited shareable URL (5 min, 1 hr, or 24 hr). |
| 🔍 Search |
Search objects by prefix within any bucket or folder. |
| 👥 Multi-profile |
Connect multiple AWS profiles simultaneously — browse side-by-side. |
| 🔄 Cross-profile Copy |
Copy objects between profiles/accounts — streams through client (works cross-account). |
Direct Bucket Access
No s3:ListAllMyBuckets permission? No problem. Use Go to bucket… (first entry under each profile, or the → toolbar button) to navigate directly to any bucket by name or s3:// URL — even cross-account buckets your credentials have been explicitly granted access to.
This mirrors the aws s3 ls s3://bucket-name --profile my-profile workflow, without the terminal.
Multiple Profiles Simultaneously
Connect as many AWS profiles as you need — each appears as a collapsible root node in the tree with its own bucket list. This is useful when:
- You have buckets in different AWS accounts
- You need to copy objects from a work account to a personal account
- Your IAM role grants direct bucket access but not
ListAllMyBuckets
To add a session: click the + button in the panel header, or the ➕ Connect another profile… node at the bottom of the tree.
To remove a session: right-click the profile root node → Disconnect Profile.
To disconnect all sessions: click the disconnect button in the panel header toolbar.
Cross-Profile Object Copy
Right-click any object → Copy to Another Profile…
- Select the target profile session
- Enter the target bucket name
- Confirm (or edit) the target key
The object is streamed from the source account through VS Code to the target account — no server-side copy required, so it works across AWS accounts and regions.
Getting Started
1. Install
From a .vsix file:
Extensions panel → ⋯ → Install from VSIX…
Or via the install script:
./install.sh # macOS / Linux
install.bat # Windows
BucketBuddy uses your existing AWS CLI profiles. If you haven't set one up:
aws configure
# or for SSO:
aws configure sso
Click the BucketBuddy icon in the Activity Bar. The extension activates and loads your default profile automatically.
4. Browse or go to a bucket
- Owned buckets appear in the tree automatically if your credentials have
s3:ListAllMyBuckets
- Direct access — click "Go to bucket…" and enter a bucket name or
s3:// URL. Works without ListBuckets permission — ideal for cross-account access.
5. Connect a second profile
Click the + icon in the panel header. Select a profile from the list — it opens alongside your existing session. Both are browseable independently.
| Icon |
Action |
| ℹ️ |
Open About page |
| 🔄 |
Refresh the tree |
| ➕ |
Connect a new profile session |
| ➡️ |
Go to bucket by URL |
| 🔍 |
Search objects |
| 🔌 |
Disconnect all profile sessions |
On a profile session node (root):
- Disconnect Profile
- Go to Bucket…
On a bucket or folder:
- Upload File
- Search Objects
- Copy S3 URI
On an object:
- Open in Editor
- Download
- Copy S3 URI
- Copy Pre-signed URL
- Rename / Move
- Copy to Another Profile…
- Delete
Commands
| Command |
Description |
BucketBuddy: Refresh |
Reload the tree |
BucketBuddy: Connect Profile… |
Add a new profile session |
BucketBuddy: Disconnect Profile |
Remove a profile session (right-click session node) |
BucketBuddy: Disconnect All Profiles |
Remove all active sessions at once |
BucketBuddy: Go to Bucket… |
Navigate directly to a bucket or s3:// URL |
BucketBuddy: Copy to Another Profile… |
Copy an object cross-account |
BucketBuddy: About |
View version info and data loss disclaimer |
Settings
| Setting |
Default |
Description |
bucketbuddy.defaultProfile |
"default" |
AWS CLI profile to activate on first launch |
bucketbuddy.credentialsFilePath |
"" |
Override path to ~/.aws/credentials |
bucketbuddy.configFilePath |
"" |
Override path to ~/.aws/config |
bucketbuddy.maxItems |
500 |
Max items per list operation |
bucketbuddy.confirmBeforeDelete |
true |
Show confirmation dialog before deleting objects |
bucketbuddy.defaultBucket |
"" |
Bucket to navigate to automatically on launch |
Security
- No credentials stored. BucketBuddy never persists access keys anywhere. Only profile names (plain strings) are saved across sessions.
- No network calls from WebViews. All AWS API calls run in the VS Code extension host.
- Credential chain per session:
fromIni() → fromSSO() → fromEnv() → fromProcess() — standard AWS SDK v3 resolution, independently per profile.
⚠️ Data Loss Warning
This extension performs live operations directly against Amazon S3. Object deletions are permanent and irreversible unless versioning is enabled on the bucket. The author accepts no responsibility for any accidental, inadvertent, or unintended deletion, modification, or loss of data. Use at your own risk. Always ensure critical buckets have versioning enabled and maintain independent backups.
Requirements
- VS Code 1.85.0 or later
- AWS CLI configured with at least one profile (
aws configure)
- Node.js is not required — the extension bundles all dependencies
License
Proprietary. Copyright © 2026 Krish Kanchinadam / kkmohan. All rights reserved.
See LICENSE for full terms.