🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

OneDrive Integration

by @moodykong

Copy large/long files to OneDrive for sharing when the user is on Telegram or WhatsApp and wants to view a full document or long file. Use to place files int...

Versionv0.1.0
Downloads1,479
TERMINAL
clawhub install onedrive-integration

📖 About This Skill


name: onedrive-integration description: Copy large/long files to OneDrive for sharing when the user is on Telegram or WhatsApp and wants to view a full document or long file. Use to place files into OneDrive under an OpenClaw folder and provide the new filename/location.

onedrive-integration

Goal

When the user needs a *full* document / long file in Telegram/WhatsApp (where pasting is awkward), copy the file(s) into OneDrive so the user can open/share from there.

Prerequisites

command -v python3
python3 --version

Configuration (portable)

Machine-specific config lives alongside the skill:

  • Example (do not edit): ~/.openclaw/skills/onedrive-integration/config.env.example
  • Real (machine-specific): ~/.openclaw/skills/onedrive-integration/config.env
  • Keys:

  • ONEDRIVE_ROOT (required) — e.g. /mnt/c/Users//OneDrive
  • ONEDRIVE_SUBDIR (optional) — default openclaw
  • If config is missing/unset, do not guess—ask Boss to confirm the correct OneDrive folder, then write config.env.

    Initialization / installation / onboarding

    Preferred (chat-first)

    Because the primary interface is chat (Telegram), the preferred onboarding flow is:

    1. Ask Boss to confirm the correct OneDrive root folder. 2. Write the real config file: config.env. 3. Run a smoke test by copying a small temp file.

    Optional (terminal)

    If you are running in a real terminal, you can use the interactive onboarding script:

    ~/.openclaw/skills/onedrive-integration/scripts/onboard.sh
    

    How it works

    Copy requested file(s) into:

  • ${ONEDRIVE_ROOT}/${ONEDRIVE_SUBDIR}/ (defaults to openclaw/)
  • During copy, rename files to include their source path to avoid collisions.

    Rename rules

  • Convert absolute path into a safe filename:
  • - strip leading / - replace path separators (/ and \\) with - - lowercase - replace any non [a-z0-9._-] with - - collapse multiple -

    Examples:

  • /home/miles/folder1/file1.mdwsl-home-miles-folder1-file1.md
  • /mnt/c/Users//folder1/file1.mdc-users--folder1-file1.md
  • Implementation

    Canonical executable lives inside the skill folder:

  • ~/.openclaw/skills/onedrive-integration/scripts/copy_to_onedrive.py
  • Run:

    ~/.openclaw/skills/onedrive-integration/scripts/copy_to_onedrive.py 
    

    (Reads config.env automatically.)

    Optional overrides:

  • .../copy_to_onedrive.py --onedrive-root "..." --subdir "..."
  • .../copy_to_onedrive.py --config /path/to/config.env
  • The script:

  • creates ${ONEDRIVE_ROOT}/${ONEDRIVE_SUBDIR}/ if missing
  • copies files (preserve timestamps)
  • prints the destination paths (no secrets)
  • Notes

  • If the request is a *browser-only* document (no local file), download it to a temp path first, then copy.
  • If ONEDRIVE_ROOT is unset, do not guess—ask for confirmation.
  • Executables / bin placement

  • Keep the canonical script inside the skill folder.
  • Optional: symlink into a common PATH dir (only if you want a short command):
  • mkdir -p ~/.local/bin
    ln -sf ~/.openclaw/skills/onedrive-integration/scripts/copy_to_onedrive.py ~/.local/bin/copy-to-onedrive
    

    ⚙️ Configuration

    command -v python3
    python3 --version
    

    📋 Tips & Best Practices

  • If the request is a *browser-only* document (no local file), download it to a temp path first, then copy.
  • If ONEDRIVE_ROOT is unset, do not guess—ask for confirmation.