Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Upload, download, and manage files in Dropbox with automatic OAuth token refresh.
Upload, download, and manage files in Dropbox with automatic OAuth token refresh.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Upload, download, list, and search files in Dropbox. Supports automatic token refresh.
VariableRequiredDescriptionDROPBOX_APP_KEY✅ YesYour Dropbox app keyDROPBOX_APP_SECRET✅ YesYour Dropbox app secretDROPBOX_REFRESH_TOKEN✅ YesOAuth refresh token (long-lived)DROPBOX_ACCESS_TOKENOptionalShort-lived access token (auto-refreshed) Store in ~/.config/atlas/dropbox.env: DROPBOX_APP_KEY=your_app_key DROPBOX_APP_SECRET=your_app_secret DROPBOX_REFRESH_TOKEN=xxx... DROPBOX_ACCESS_TOKEN=sl.u.xxx...
Go to https://www.dropbox.com/developers/apps Click "Create app" Choose "Scoped access" Choose "Full Dropbox" (or "App folder" for limited access) Name your app Note the App key and App secret
In the app settings under "Permissions", enable: files.metadata.read files.metadata.write files.content.read files.content.write account_info.read Click "Submit" to save.
Generate the authorization URL: import urllib.parse APP_KEY = "your_app_key" params = { "client_id": APP_KEY, "response_type": "code", "token_access_type": "offline" # This gets you a refresh token! } auth_url = "https://www.dropbox.com/oauth2/authorize?" + urllib.parse.urlencode(params) print(auth_url) Give the URL to the user. They will: Open it in a browser Authorize the app Receive an authorization code
curl -X POST "https://api.dropboxapi.com/oauth2/token" \ -d "code=AUTHORIZATION_CODE" \ -d "grant_type=authorization_code" \ -d "client_id=APP_KEY" \ -d "client_secret=APP_SECRET" Response includes: access_token — Short-lived (~4 hours) refresh_token — Long-lived (never expires unless revoked)
# Account info dropbox.py account # List folder dropbox.py ls "/path/to/folder" # Search files dropbox.py search "query" # Download file dropbox.py download "/path/to/file.pdf" # Upload file dropbox.py upload local_file.pdf "/Dropbox/path/remote_file.pdf"
The script automatically handles token refresh: On 401 Unauthorized, it uses the refresh token to get a new access token Updates dropbox.env with the new access token Retries the original request
TokenLifetimeStorageAccess Token~4 hoursUpdated automaticallyRefresh TokenNever expires*Keep secure, don't share *Refresh tokens only expire if explicitly revoked or app access is removed.
401 Unauthorized on refresh: App may have been disconnected — re-run OAuth flow from step 3 403 Forbidden: Check app permissions in Dropbox console Path errors: Dropbox paths start with / and are case-insensitive Use forward slashes even on Windows
OAuth Guide: https://developers.dropbox.com/oauth-guide API Explorer: https://dropbox.github.io/dropbox-api-v2-explorer/
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.