# Send Dropbox Integration to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "dropbox-integration",
    "name": "Dropbox Integration",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/tirandagan/dropbox-integration",
    "canonicalUrl": "https://clawhub.ai/tirandagan/dropbox-integration",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/dropbox-integration",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dropbox-integration",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "browse.js",
      "download.js",
      "dropbox-helper.js",
      "package.json",
      "references/setup-guide.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "dropbox-integration",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-02T18:12:06.316Z",
      "expiresAt": "2026-05-09T18:12:06.316Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dropbox-integration",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dropbox-integration",
        "contentDisposition": "attachment; filename=\"dropbox-integration-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "dropbox-integration"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/dropbox-integration"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/dropbox-integration",
    "downloadUrl": "https://openagent3.xyz/downloads/dropbox-integration",
    "agentUrl": "https://openagent3.xyz/skills/dropbox-integration/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dropbox-integration/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dropbox-integration/agent.md"
  }
}
```
## Documentation

### Overview

This skill provides read-only access to your Dropbox account, allowing you to browse folders, search files, and download content from OpenClaw. It uses OAuth 2.0 authentication with automatic token refresh for seamless long-term access.

Perfect for: Safely accessing your Dropbox files without worrying about accidental modifications or deletions.

### Browse Files & Folders

List contents of any folder in your Dropbox
View file sizes and modification dates
Navigate folder hierarchies

### Search Files

Full-text search across file names
Find files anywhere in your Dropbox
Get file metadata and locations

### Download Files

Download any file from your Dropbox
Save to local filesystem
Batch download support

### Automatic Token Management

OAuth 2.0 authentication with refresh tokens
Automatic token refresh (no manual re-authentication)
Secure credential storage
Token expiration handling with 5-minute buffer

### Security & Permissions

This skill is configured for read-only access with the following Dropbox scopes:

files.metadata.read - Read file/folder metadata
files.content.read - Read file content
account_info.read - Read account information

NOT included:

❌ files.content.write - Cannot upload or modify files
❌ files.metadata.write - Cannot rename or move files
❌ files.permanent_delete - Cannot delete files

This ensures your Dropbox content remains safe from accidental modifications.

### Prerequisites

Before using this skill, you need:

A Dropbox account (free or paid)
A Dropbox App registration (takes 5 minutes)
App key and App secret from your Dropbox App
Node.js with dropbox package (auto-installed)

Setup time: ~10 minutes

See Setup Guide for step-by-step instructions.

### 1. Create Dropbox App

Visit https://www.dropbox.com/developers/apps/create and create a new app:

API: Scoped access
Access type: Full Dropbox (or App folder for restricted access)
App name: Something unique like "OpenClaw-YourName"

### 2. Configure OAuth

In your app's settings:

Add redirect URI: http://localhost:3000/callback
Copy your App key and App secret
Under Permissions tab, enable:

files.metadata.read
files.content.read
account_info.read

### 3. Save Credentials

Create credentials.json in the skill directory:

{
  "app_key": "your_dropbox_app_key_here",
  "app_secret": "your_dropbox_app_secret_here"
}

Important: This file is gitignored and will never be committed.

### 4. Run OAuth Setup

node setup-oauth.js

This will:

Open your browser for Dropbox authorization
Start a local server to capture the authorization code
Exchange the code for access + refresh tokens
Save tokens securely to token.json

### 5. Test Connection

node test-connection.js

If successful, you'll see your Dropbox account information!

### Browse a Folder

# List root folder
node browse.js

# List specific folder
node browse.js "/Documents"
node browse.js "/Photos/2024"

Output:

📁 Listing: /Documents

📄 report.pdf (2.3 MB) - 2024-02-01
📄 presentation.pptx (5.1 MB) - 2024-01-28
📁 Projects
📁 Archive

Total: 4 items

### Search Files

node search-files.js "budget 2024"
node search-files.js "contract"

Output:

🔍 Searching for: "budget 2024"

✅ Found 3 matches:

📄 /Finance/budget-2024-q1.xlsx
   Size: 156.3 KB
   Modified: 2024-01-15T10:30:00Z

📄 /Reports/budget-2024-summary.pdf
   Size: 2.1 MB
   Modified: 2024-02-01T14:22:00Z

### Download Files

# Download to local file
node download.js "/Documents/report.pdf" "./downloads/report.pdf"

# Download to current directory
node download.js "/Photos/vacation.jpg" "./vacation.jpg"

Output:

📥 Downloading: /Documents/report.pdf
✅ Saved to: ./downloads/report.pdf (2.3 MB)

### Integration with OpenClaw

From OpenClaw, you can use the exec tool to run these scripts:

Browse files:

Run: node /path/to/dropbox-integration/browse.js "/Documents"

Search for files:

Run: node /path/to/dropbox-integration/search-files.js "contract"

Download a file:

Run: node /path/to/dropbox-integration/download.js "/path/in/dropbox" "./local/path"

Or create custom automation workflows that use the dropbox-helper.js module directly.

### Authentication Flow

Initial Setup: User authorizes the app via OAuth 2.0
Token Storage: Access token + refresh token saved to token.json
Auto-Refresh: Before each API call, checks if token needs refresh
Seamless Access: Automatically refreshes tokens 5 minutes before expiration

### Token Lifecycle

Access Token: Short-lived (typically 4 hours)
Refresh Token: Long-lived (doesn't expire unless revoked)
Auto-refresh: Happens transparently in dropbox-helper.js
Refresh Buffer: 5 minutes before expiration to prevent edge cases

### File Structure

dropbox-integration/
├── SKILL.md                 # This file
├── dropbox-helper.js        # Auto-refresh Dropbox client
├── setup-oauth.js           # OAuth setup script
├── browse.js                # Browse folders
├── search-files.js          # Search files
├── download.js              # Download files
├── test-connection.js       # Test authentication
├── credentials.json.example # Template for credentials
├── .gitignore               # Excludes credentials.json and token.json
└── references/
    └── setup-guide.md       # Detailed setup instructions

### "credentials.json not found"

Create credentials.json with your Dropbox app key and secret (see Quick Start step 3).

### "Token refresh failed"

Your refresh token may have been revoked. Re-run node setup-oauth.js to re-authenticate.

### "Permission denied" errors

Check that you enabled the required permissions in your Dropbox App settings under the Permissions tab.

### "redirect_uri_mismatch"

Make sure you added http://localhost:3000/callback to your app's redirect URIs in Dropbox App Console.

### OAuth setup gets stuck

If the local server doesn't catch the redirect, manually copy the full URL from your browser after authorization and look for the code= parameter.

### Limitations

Read-only: Cannot upload, modify, or delete files (by design)
File size: Practical limit ~150MB per download (Dropbox API constraint)
Rate limits: Dropbox API has rate limits (typically not an issue for personal use)
Shared folders: Access depends on your Dropbox account permissions

### Security Best Practices

Never commit credentials: credentials.json and token.json are gitignored
File permissions: Tokens are saved with mode 0600 (user read/write only)
App-specific tokens: Each app has its own tokens (easily revokable)
Scope limitation: Only request permissions you actually need
Token rotation: Refresh tokens are rotated automatically

### References

Setup Guide - Detailed step-by-step instructions with screenshots
Dropbox API Documentation
OAuth 2.0 Guide

### Dropbox Developer Resources

App Console - Manage your apps
API Explorer - Test API calls
SDK Documentation - JavaScript SDK reference

### Using the Helper Module

For custom integrations, import the helper directly:

const { getDropboxClient } = require('./dropbox-helper');

async function myCustomFunction() {
  const dbx = await getDropboxClient(); // Auto-refreshing client
  
  // Use any Dropbox SDK method
  const response = await dbx.filesListFolder({ path: '/Photos' });
  console.log(response.result.entries);
}

The helper automatically handles token refresh, so you never need to worry about expiration.

### Batch Operations

Download multiple files in sequence:

const { getDropboxClient } = require('./dropbox-helper');
const fs = require('fs').promises;

async function downloadMultiple(files) {
  const dbx = await getDropboxClient();
  
  for (const file of files) {
    const response = await dbx.filesDownload({ path: file.dropboxPath });
    await fs.writeFile(file.localPath, response.result.fileBinary);
    console.log(\`Downloaded: ${file.dropboxPath}\`);
  }
}

### Dependencies

This skill requires the dropbox npm package:

npm install dropbox

The package is automatically installed when you install this skill via ClawHub.

### License

MIT - Free to use, modify, and distribute.

### Support

For issues or questions:

Check the Setup Guide for detailed instructions
Review Dropbox API errors in the API documentation
Open an issue on the skill repository

Note: This skill is designed for personal use. For production applications with multiple users, consider implementing proper OAuth flow with state management and error handling for concurrent users.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: tirandagan
- Version: 1.0.1
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-02T18:12:06.316Z
- Expires at: 2026-05-09T18:12:06.316Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/dropbox-integration)
- [Send to Agent page](https://openagent3.xyz/skills/dropbox-integration/agent)
- [JSON manifest](https://openagent3.xyz/skills/dropbox-integration/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/dropbox-integration/agent.md)
- [Download page](https://openagent3.xyz/downloads/dropbox-integration)