
Onedrive
Wire your coding agent to Microsoft OneDrive for cloud file and folder operations without building OAuth yourself.
Overview
onedrive is an agent skill for the Build phase that connects Microsoft OneDrive through the Membrane CLI so agents can manage cloud files, folders, permissions, and search with handled authentication.
Install
npx skills add https://github.com/membranedev/application-skills --skill onedriveWhat is this skill?
- Membrane CLI handles login, tenant binding, and credential refresh for OneDrive
- Covers files, folders, permissions, and search actions against Microsoft Graph-backed storage
- Free-tier Membrane accounts supported; MIT-licensed skill package
- npm global install of @membranehq/cli is the documented setup path
- Focused trigger: use when the user wants to interact with MS OneDrive data
- MIT-licensed Membrane application skill
- Documented entities: File, Folder, Search with permissions
Adoption & trust: 1.2k installs on skills.sh; 178 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need your agent to read or change OneDrive files but do not want to implement and maintain Microsoft OAuth and Graph API credential refresh.
Who is it for?
Indie builders adding OneDrive-backed document sync, backups, or agent file tools on top of Membrane’s integration platform.
Skip if: Teams that require direct Graph SDK control, air-gapped environments without network access, or storage outside Microsoft 365.
When should I use this skill?
Use when the user wants to interact with MS OneDrive data.
What do I get? / Deliverables
After setup, the agent can run Membrane-backed OneDrive actions from the terminal with auth managed by Membrane rather than custom token code.
- Authenticated Membrane session bound to OneDrive
- Agent-executable OneDrive file, folder, search, and permission operations
Recommended Skills
Journey fit
Cloud storage wiring happens while you are implementing product features and agent toolchains, not during idea or launch work. OneDrive is an external service integration accessed through Membrane’s CLI and account linking.
How it compares
An agent integration skill via Membrane, not a self-hosted MCP server or a raw Microsoft Graph cheat sheet alone.
Common Questions / FAQ
Who is onedrive for?
Solo and indie developers using Claude Code, Cursor, or similar agents who need Microsoft OneDrive as a connected datastore during product build.
When should I use onedrive?
Use it in Build → integrations when the user asks to list, upload, search, or permission OneDrive files; also when prototyping agent tools that must attach to real Microsoft cloud storage.
Is onedrive safe to install?
The skill requires network access and a Membrane account; review the Security Audits panel on this Prism page and your org’s data policies before production use.
SKILL.md
READMESKILL.md - Onedrive
# MS OneDrive MS OneDrive is a cloud storage service provided by Microsoft. It allows users to store files, photos, and documents in the cloud and access them from any device. OneDrive is commonly used by individuals and businesses for personal and collaborative file management. Official docs: https://learn.microsoft.com/en-us/onedrive/developer/ ## MS OneDrive Overview - **File** - **Content** - **Permissions** - **Folder** - **Permissions** - **Search** Use action names and parameters as needed. ## Working with MS OneDrive This skill uses the Membrane CLI to interact with MS OneDrive. Membrane handles authentication and credentials refresh automatically — so you can focus on the integration logic rather than auth plumbing. ### Install the CLI Install the Membrane CLI so you can run `membrane` from the terminal: ```bash npm install -g @membranehq/cli@latest ``` ### Authentication ```bash membrane login --tenant --clientName=<agentType> ``` This will either open a browser for authentication or print an authorization URL to the console, depending on whether interactive mode is available. **Headless environments:** The command will print an authorization URL. Ask the user to open it in a browser. When they see a code after completing login, finish with: ```bash membrane login complete <code> ``` Add `--json` to any command for machine-readable JSON output. **Agent Types** : claude, openclaw, codex, warp, windsurf, etc. Those will be used to adjust tooling to be used best with your harness ### Connecting to MS OneDrive Use `membrane connection ensure` to find or create a connection by app URL or domain: ```bash membrane connection ensure "https://onedrive.live.com/login/" --json ``` The user completes authentication in the browser. The output contains the new connection id. This is the fastest way to get a connection. The URL is normalized to a domain and matched against known apps. If no app is found, one is created and a connector is built automatically. If the returned connection has `state: "READY"`, skip to **Step 2**. #### 1b. Wait for the connection to be ready If the connection is in `BUILDING` state, poll until it's ready: ```bash npx @membranehq/cli connection get <id> --wait --json ``` The `--wait` flag long-polls (up to `--timeout` seconds, default 30) until the state changes. Keep polling until `state` is no longer `BUILDING`. The resulting state tells you what to do next: - **`READY`** — connection is fully set up. Skip to **Step 2**. - **`CLIENT_ACTION_REQUIRED`** — the user or agent needs to do something. The `clientAction` object describes the required action: - `clientAction.type` — the kind of action needed: - `"connect"` — user needs to authenticate (OAuth, API key, etc.). This covers initial authentication and re-authentication for disconnected connections. - `"provide-input"` — more information is needed (e.g. which app to connect to). - `clientAction.description` — human-readable explanation of what's needed. - `clientAction.uiUrl` (optional) — URL to a pre-built UI where the user can complete the action. Show this to the user when present. - `clientAction.agentInstructions` (optional) — instructions for the AI agent on how to proceed programmatically. After the user completes the action (e.g. authenticates in the browser), poll again with `membrane connection get <id> --json` to check if the state moved to `READY`. - **`CONFIGURATION_ERROR`** or **`SETUP_FAILED`** — something went wrong. Check the `error` field for details.