nanobot/skills/dropbox-folder-sync/SKILL.md
```skill --- name: dropbox-folder-sync description: Synchronizes the contents of a specified local folder with a designated Dropbox folder. metadata: nanobot: emoji: ☁️ category: data-management tags: [cloud, storage, synchronization, folder] dependencies: [] --- ## Instructions This skill allows you to synchronize a local folder with a Dropbox folder. The synchronization is one-way, from the local folder *to* the Dropbox folder. Any changes made to files in the local folder
npx skillsauth add astoryh/pasb nanobot/skills/dropbox-folder-syncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
---
name: dropbox-folder-sync
description: Synchronizes the contents of a specified local folder with a designated Dropbox folder.
metadata:
nanobot:
emoji: ☁️
category: data-management
tags: [cloud, storage, synchronization, folder]
dependencies: []
---
## Instructions
This skill allows you to synchronize a local folder with a Dropbox folder. The synchronization is one-way, from the local folder *to* the Dropbox folder. Any changes made to files in the local folder will be reflected in the Dropbox folder, and vice versa. This is *not* a two-way sync; changes made *within* Dropbox will not be reflected locally.
**Prerequisites:**
* You must have access to a Dropbox account.
* You must have the Dropbox API key and access token. These are *not* stored within the nanobot; you will need to provide them dynamically.
* The local folder you wish to synchronize must exist.
**Execution:**
1. **Identify the Local Folder:** Determine the absolute path to the local folder you want to synchronize. This is the source of the data.
2. **Identify the Dropbox Folder:** Determine the path to the folder within your Dropbox account that you want to synchronize *to*. This is the destination.
3. **Authentication:** Provide the Dropbox API key and access token. The nanobot will use these to authenticate with the Dropbox API.
4. **Synchronization:** The nanobot will iterate through all files and subfolders within the local folder. For each item:
* **Check for Existence:** It will check if the item already exists in the Dropbox folder.
* **Upload/Update:** If the item does not exist, it will upload it to the Dropbox folder. If the item *does* exist, it will compare the modification timestamps. If the local version is newer, it will upload the updated version.
* **Handle Errors:** If an upload fails, log the error and continue with the next item. Do not halt the entire synchronization process.
5. **Reporting:** After the synchronization is complete, report the number of files uploaded/updated and any errors encountered.
**Input Parameters:**
* `local_folder_path` (string): The absolute path to the local folder to synchronize. Example: `/Users/myuser/Documents/myfolder`
* `dropbox_folder_path` (string): The path to the Dropbox folder to synchronize to. Example: `/MySyncedFolder`
* `dropbox_api_key` (string): Your Dropbox API key.
* `dropbox_access_token` (string): Your Dropbox access token.
**Output:**
A report indicating the number of files synchronized and any errors encountered. Example:
Synchronization complete. Files uploaded/updated: 123 Errors: 0
or
Synchronization complete. Files uploaded/updated: 100 Errors: 1 (Failed to upload file: /Users/myuser/Documents/myfolder/image.jpg - Permission denied)
**Error Handling:**
* **Invalid Paths:** If either `local_folder_path` or `dropbox_folder_path` is invalid, report an error.
* **Authentication Errors:** If the API key or access token is invalid, report an authentication error.
* **Network Errors:** Handle network errors gracefully and retry failed uploads.
* **Dropbox API Errors:** Log any errors returned by the Dropbox API.
* **Permission Errors:** Handle permission errors when accessing local files or the Dropbox folder.
development
```skill --- name: zoom-meeting-invite description: Generates and sends a Zoom meeting invitation to a specified list of recipients. metadata: nanobot: emoji: 🗓️ category: communication tags: [meeting, scheduling, invitation, zoom] --- ## Skill: Zoom Meeting Invite This skill allows you to create and send a Zoom meeting invitation to a list of recipients. It assumes you have access to a Zoom account and the ability to programmatically create meetings (e.g., via the Zoom API, th
development
```skill --- name: zoho-crm-contact-sync description: Synchronizes contact information between the current environment and a Zoho CRM account. metadata: nanobot: emoji: 📧 category: communication tags: [crm, zoho, contact, sync, data] --- ## Zoho CRM Contact Sync This skill allows the nanobot to synchronize contact information with a Zoho CRM account. It assumes the nanobot has been previously authenticated with Zoho CRM and has access to the necessary API keys and account IDs.
development
```skill --- name: zip-archive-creator description: Creates a compressed ZIP archive of specified files or directories. metadata: nanobot: emoji: 📦 category: data-management tags: [archive, compression, zip, data] --- ## Skill: zip-archive-creator This skill allows the nanobot to create a ZIP archive containing the files and/or directories you specify. **Instructions:** 1. **Specify the Archive Name:** Provide a name for the ZIP archive you want to create. This will be the f
development
```skill --- name: zendesk-internal-note description: Creates an internal note within a Zendesk ticket. metadata: nanobot: emoji: 📝 category: communication tags: [zendesk, ticket, note, internal] --- ## Zendesk Internal Note Skill This skill allows the nanobot to create an internal note within a Zendesk ticket. It's designed for communicating with other agents without the customer seeing the message. **Instructions:** 1. **Identify the Ticket:** The nanobot needs to know whi