Install
openclaw skills install sharepoint-by-altf1beSecure SharePoint file operations and Office document intelligence via Microsoft Graph API — certificate auth, Sites.Selected, read/write Word (mammoth), Exc...
openclaw skills install sharepoint-by-altf1beInteract with SharePoint document libraries via Microsoft Graph API using certificate-based authentication.
Sites.Selected permission and certificate auth.env in {baseDir}):SP_TENANT_ID=your-azure-tenant-id
SP_CLIENT_ID=your-app-client-id
SP_CERT_PATH=/path/to/certificate.pem
SP_SITE_ID=your-sharepoint-site-id
SP_DRIVE_ID=optional-specific-drive-id
cd {baseDir} && npm install# Show site and drive info
node {baseDir}/scripts/sharepoint.mjs info
# List files in library root
node {baseDir}/scripts/sharepoint.mjs list
# List files in a subfolder
node {baseDir}/scripts/sharepoint.mjs list --path "Meeting Notes/2026"
# Read file content (extracts text from Office formats)
node {baseDir}/scripts/sharepoint.mjs read --path "Report.docx"
# Upload a file
node {baseDir}/scripts/sharepoint.mjs upload --local ./report.docx --remote "Reports/Q1-2026.docx"
# Search for files
node {baseDir}/scripts/sharepoint.mjs search --query "quarterly review"
# Create folder
node {baseDir}/scripts/sharepoint.mjs mkdir --path "Meeting Notes/2026"
# Delete (requires --confirm flag)
node {baseDir}/scripts/sharepoint.mjs delete --path "Drafts/old-file.txt" --confirm
# Safe edit: checkout → upload modified file → checkin (recommended)
node {baseDir}/scripts/sharepoint.mjs edit --path "Report.docx" --local ./modified.docx --comment "Updated summary"
# Check out a file (lock for exclusive editing)
node {baseDir}/scripts/sharepoint.mjs checkout --path "Report.docx"
# Check in a file (unlock + publish)
node {baseDir}/scripts/sharepoint.mjs checkin --path "Report.docx" --comment "Reviewed and approved"
# Get an edit link to open in Office Online
node {baseDir}/scripts/sharepoint.mjs edit-link --path "Report.docx"
The read command extracts text content from:
.docx → full text extraction via mammoth.xlsx → sheet names + cell data via exceljs.pptx → slide text extraction via jszip.pdf → text extraction via pdf-parse.txt / .md → raw contentOutput is plain text suitable for AI processing (summarization, reformatting, action item extraction).
@azure/identity — certificate-based Azure AD authentication@microsoft/microsoft-graph-client — Microsoft Graph API clientmammoth — Word document text extractionexceljs — Excel spreadsheet parsingjszip — PowerPoint XML extractionpdf-parse — PDF text extractioncommander — CLI frameworkdotenv — environment variable loadingSites.Selected permission (access limited to one SharePoint site)../ is rejected--confirm flagFor complete setup from scratch (Entra app, certificate, Sites.Selected, Key Vault): See the GitHub repository README.
Abdelkrim BOUJRAF — ALT-F1 SRL, Brussels 🇧🇪 X: @altf1be