Spreadsheet Agent
mastra-ai/mastra
Authoring playbook for building agents that read or write tabular data — Google Sheets, Microsoft Excel, CSV, Airtable, Notion databases, or any spreadsheet.
Turn Google Sheets into a powerful database and workflow engine using formulas, Apps Script, and integrations.
$ npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills spreadsheet-automation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/spreadsheet-automation .claude/skills/spreadsheet-automation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "spreadsheet-automation" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/spreadsheet-automation into .claude/skills/spreadsheet-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-automation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/spreadsheet-automationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills spreadsheet-automation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/spreadsheet-automation .agents/skills/spreadsheet-automation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spreadsheet-automation" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/spreadsheet-automation into .agents/skills/spreadsheet-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-automation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills spreadsheet-automation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/spreadsheet-automation .cursor/skills/spreadsheet-automation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "spreadsheet-automation" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/spreadsheet-automation into .cursor/skills/spreadsheet-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-automation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/spreadsheet-automation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills spreadsheet-automation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/spreadsheet-automation .gemini/skills/spreadsheet-automation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "spreadsheet-automation" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/spreadsheet-automation into .gemini/skills/spreadsheet-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-automation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills spreadsheet-automationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/spreadsheet-automation .github/skills/spreadsheet-automation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "spreadsheet-automation" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/spreadsheet-automation into .github/skills/spreadsheet-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-automation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills spreadsheet-automation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/spreadsheet-automation .opencode/skills/spreadsheet-automation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "spreadsheet-automation" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/spreadsheet-automation into .opencode/skills/spreadsheet-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-automation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
spreadsheet-automationTurn Google Sheets into a powerful database and workflow engine using formulas, Apps Script, and integrations.
Spreadsheet Automation is an agent skill from LeoYeAI/openclaw-master-skills. Turn Google Sheets into a powerful database and workflow engine using formulas, Apps Script, and integrations. Use when building systems in Sheets, automating data entry, creating dashboards, or replacing expensive tools with spreadsheet-based solutions. Covers advanced formulas, Apps Script basics, integration strategies, and real workflow examples. Trigger on "automate spreadsheet", "Google Sheets automation", "Apps Script", "spreadsheet workflow", "Sheets as database", "automate data entry".
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `_meta.json`).
It sits in Documents & Office, covering Excel spreadsheets. It works with Google Sheets and Airtable. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.twitter.comAlso links to:
developers.google.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Spreadsheet Automation loads about 4.5k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 1,484 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,484 words, ~4,451 tokens.
.claude/skills/spreadsheet-automation/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Google Sheets isn't just for budgets and lists. With the right formulas, Apps Script, and integrations, it becomes a database, CRM, project tracker, analytics dashboard, and workflow engine — all in one free tool. This playbook shows you how to build production-grade systems in Sheets that replace $50-500/month SaaS tools.
Not every workflow belongs in Sheets. Here's when Sheets is the right tool.
Good use cases for Sheets automation:
Bad use cases (use a real database or tool instead):
Audit your current manual work (10 min):
Low-hanging fruit checklist:
Most Sheets automation starts here. Master these formulas and you can build 80% of what you need without Apps Script.
QUERY (SQL-like queries in Sheets):
=QUERY(A1:D100, "SELECT A, B, C WHERE D > 1000 ORDER BY C DESC")SELECT [columns] WHERE [condition] ORDER BY [column] LIMIT [number]IMPORTRANGE (pull data from other sheets):
=IMPORTRANGE("spreadsheet_url", "Sheet1!A1:D100")ARRAYFORMULA (apply formula to entire column):
=ARRAYFORMULA(IF(A2:A="",,B2:B*C2:C))VLOOKUP / XLOOKUP (lookup values from another table):
=VLOOKUP(A2, Sheet2!A:B, 2, FALSE)FILTER (dynamic filtering):
=FILTER(A2:D100, D2:D100>1000, C2:C100="Active")UNIQUE (remove duplicates):
=UNIQUE(A2:A100)REGEXEXTRACT (extract patterns from text):
=REGEXEXTRACT(A2, "[0-9]{3}-[0-9]{3}-[0-9]{4}")IMPORTXML / IMPORTHTML (scrape web data):
=IMPORTXML("https://example.com", "//h1")Single-sheet solutions are limited. Real power comes from connecting multiple sheets into a system.
System architecture pattern:
SHEET 1: Data Entry (input form or manual entry)
↓
SHEET 2: Master Database (cleaned, validated, enriched)
↓
SHEET 3: Dashboard (charts, summaries, insights)
↓
SHEET 4: Exports/Reports (formatted for sharing)Example: Simple CRM in Sheets
Sheet 1: Lead Entry Form
Sheet 2: Master Lead Database
IMPORTRANGE or direct reference=IF(ISBLANK(D2), "New", D2) (auto-set status to "New" if empty)Sheet 3: Dashboard
=COUNTA(MasterDB!A2:A)=COUNTIF(MasterDB!E2:E, ">="&TODAY()-7)=COUNTIF(MasterDB!D2:D, "Closed")/COUNTA(MasterDB!A2:A)Sheet 4: Weekly Report
=FILTER(MasterDB!A2:E, MasterDB!E2:E>=TODAY()-7)Key principles:
Apps Script lets you do things formulas can't: send emails, make API calls, create custom menus, run code on a schedule.
When to use Apps Script:
How to access Apps Script:
function onEdit(e) {
var sheet = e.source.getActiveSheet();
// Only run on "Lead Entry" sheet
if (sheet.getName() !== "Lead Entry Form") return;
// Get edited row and column
var row = e.range.getRow();
var col = e.range.getColumn();
// If new row added (row > 1 to skip header)
if (row > 1 && col === 1) {
var name = sheet.getRange(row, 1).getValue();
var email = sheet.getRange(row, 2).getValue();
// Send email notification
MailApp.sendEmail({
to: "you@example.com",
subject: "New Lead: " + name,
body: "Name: " + name + "\nEmail: " + email
});
}
}How to set up:
onEdit → From spreadsheet → On edit → Savefunction fetchAPIData() {
var url = "https://api.example.com/data";
var options = {
"method": "GET",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
};
var response = UrlFetchApp.fetch(url, options);
var data = JSON.parse(response.getContentText());
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("API Data");
// Clear existing data
sheet.clear();
// Write headers
sheet.appendRow(["ID", "Name", "Value"]);
// Write data rows
data.forEach(function(item) {
sheet.appendRow([item.id, item.name, item.value]);
});
}How to set up:
url and YOUR_API_KEYfetchAPIData → Time-driven → Hour timer → Every hourfunction archiveOldRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName("Active Tasks");
var archiveSheet = ss.getSheetByName("Archive");
var data = sourceSheet.getDataRange().getValues();
var today = new Date();
var cutoffDate = new Date(today.getTime() - (30 * 24 * 60 * 60 * 1000)); // 30 days ago
// Start from row 2 (skip header)
for (var i = data.length - 1; i >= 1; i--) {
var rowDate = new Date(data[i][3]); // Column D = date
if (rowDate < cutoffDate) {
// Copy row to archive
archiveSheet.appendRow(data[i]);
// Delete from source
sourceSheet.deleteRow(i + 1);
}
}
}Common Apps Script patterns:
sheet.getRange("A1:D10").getValues()sheet.getRange("A1").setValue("Hello")sheet.appendRow([val1, val2, val3])MailApp.sendEmail(to, subject, body)UrlFetchApp.fetch(url, options)new Date()Apps Script resources:
Sheets becomes 10x more powerful when integrated with other tools.
Integration strategies:
Use case: Collect data from forms, webhooks, or other tools → write to Sheets for storage
Example workflow (Zapier/Make):
TRIGGER: New Typeform submission
ACTION 1: Add row to Google Sheets
ACTION 2: Send email confirmation (optional)Example workflow (Webhook → Sheets):
TRIGGER: Webhook received (from website, Stripe, etc.)
ACTION: Parse JSON → Write to Google SheetsUse case: When row added/updated in Sheets → trigger action elsewhere
Example workflow:
TRIGGER: New row in Google Sheets (check every 15 min)
CONDITION: Status column = "Approved"
ACTION: Create task in Asana / Send email / Post to SlackUse case: Sheets pulls data from Tool A, processes it, pushes to Tool B
Example workflow (sync CRM to email tool):
TRIGGER: New row in Google Sheets (CRM export)
CONDITION: Email column not empty + Tag column = "Newsletter"
ACTION: Add contact to ConvertKit / MailchimpBest tools for Sheets integration:
Common integrations:
Problem: Manually tracking invoices sent, paid, and overdue
Solution:
Sheet 1: Invoice Log
Formula magic:
Status = =IF(G2="Paid", "Paid", IF(E2<TODAY(), "Overdue", "Pending"))
Days Overdue = =IF(E2<TODAY(), TODAY()-E2, 0)Apps Script (run daily):
function sendOverdueReminders() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Invoice Log");
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
var status = data[i][6]; // Status column
var client = data[i][1];
var invoiceNum = data[i][0];
var amount = data[i][2];
if (status === "Overdue") {
MailApp.sendEmail({
to: "client@example.com",
subject: "Reminder: Invoice " + invoiceNum + " Overdue",
body: "Hi " + client + ",\n\nInvoice " + invoiceNum + " for $" + amount + " is overdue. Please remit payment.\n\nThank you!"
});
}
}
}Trigger: Time-driven, daily at 9am
Problem: Manually qualifying leads based on fit
Solution:
Sheet 1: Lead Data
Formula scoring:
Score = =
IF(B2="Enterprise", 30, IF(B2="Mid-Market", 20, 10)) +
IF(C2="SaaS", 20, IF(C2="E-commerce", 15, 5)) +
IF(D2>10000, 30, IF(D2>5000, 20, 10)) +
IF(E2="Immediate", 20, IF(E2="This Quarter", 10, 0))
Priority = =IF(F2>=70, "Hot", IF(F2>=50, "Warm", "Cold"))Automation (Zapier):
TRIGGER: New row in Google Sheets
CONDITION: Priority = "Hot"
ACTION 1: Add to Pipedrive as high-priority deal
ACTION 2: Send Slack notification to sales teamProblem: Manually tracking and scheduling social posts
Solution:
Sheet 1: Content Calendar
Apps Script (run hourly):
function publishScheduledPosts() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Content Calendar");
var data = sheet.getDataRange().getValues();
var now = new Date();
for (var i = 1; i < data.length; i++) {
var scheduleDate = new Date(data[i][0]);
var status = data[i][4];
// If scheduled for now or past, and not yet published
if (scheduleDate <= now && status === "Scheduled") {
var platform = data[i][1];
var text = data[i][2];
// Call API to post (Twitter, LinkedIn, etc.)
postToAPI(platform, text);
// Mark as published
sheet.getRange(i+1, 5).setValue("Published");
}
}
}
function postToAPI(platform, text) {
// Example: Twitter API call
var url = "https://api.twitter.com/2/tweets";
var payload = JSON.stringify({"text": text});
var options = {
"method": "POST",
"headers": {
"Authorization": "Bearer YOUR_TWITTER_TOKEN",
"Content-Type": "application/json"
},
"payload": payload
};
UrlFetchApp.fetch(url, options);
}When Sheets starts to slow down:
Problem: Sheet with 10K+ rows, complex formulas → slow to load/edit
Solutions:
A2:A1000 instead of A:A (entire column)When to migrate away from Sheets:
Backup strategy:
ROI calculation:
Time Saved per Month (hours) = (Minutes per task / 60) × Frequency per month
Monthly Value = Time Saved × Hourly Rate
Setup Cost = (Setup time in hours × Hourly Rate) + Tool costs
Payback Period (months) = Setup Cost / Monthly Value
If payback period < 3 months → Definitely worth it
If payback period > 6 months → Probably not worth itExample:
Task: Manually entering form submissions into CRM (15 min, 40x/month = 10 hours/month saved)
Your hourly rate: $50/hour
Monthly value saved: $500
Setup time: 2 hours
Setup cost: $100 (time) + $0 (Google Forms + Sheets are free)
Payback: $100 / $500 = 0.2 months → Absolutely worth itRule: If it saves 5+ hours/month, automate it.
NOW(), TODAY(), RAND() recalculate constantly and slow down sheets. Use sparingly.© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/spreadsheet-automation of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Spreadsheet Automation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Spreadsheet Automation this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.5k | Automated safety check: Pass | MIT | |
| Spreadsheet Agentmastra-ai/mastra | 29k | — | ~2.1k | Automated safety check: Pass | Custom licence | |
| Managing Google Workspacetaylorwilsdon/google_workspace_mcp | 3.3k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Gdoc To Markdowniurykrieger/claude-bedrock | 105 | 1 repos | ~3.8k | Automated safety check: Notes | MIT | |
| XLSXzzhonglei/GeoCode-Release | 189 | — | ~3.1k | Automated safety check: Pass | MIT | |
| List Buildergrowthenginenowoslawski/coldoutboundskills | 753 | — | ~4.7k | Automated safety check: Notes | MIT |
mastra-ai/mastra
Authoring playbook for building agents that read or write tabular data — Google Sheets, Microsoft Excel, CSV, Airtable, Notion databases, or any spreadsheet.
taylorwilsdon/google_workspace_mcp
Manages Google Workspace operations across 12 services (Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script, Custom Search).
iurykrieger/claude-bedrock
Internal fetcher module for Google Docs and Sheets. An agent skill from iurykrieger/claude-bedrock.
zzhonglei/GeoCode-Release
Create, edit, analyze, or convert Excel spreadsheets (.xlsx, .xlsm) where the workbook file is the primary deliverable.
growthenginenowoslawski/coldoutboundskills
META skill — build the largest possible qualified lead list for any request, end to end.
googleworkspace/cli
Google Sheets: Append a row to a spreadsheet. An agent skill from googleworkspace/cli.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Categories
Turn Google Sheets into a powerful database and workflow engine using formulas, Apps Script, and integrations. Spreadsheet Automation is an agent skill from LeoYeAI/openclaw-master-skills. Turn Google Sheets into a powerful database and workflow engine using formulas, Apps Script, and integrations.
Spreadsheet Automation fits situations like: building systems in Sheets; automating data entry; creating dashboards; replacing expensive tools with spreadsheet-based solutions.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a claude-code`. Or copy the skill folder (skills/spreadsheet-automation in LeoYeAI/openclaw-master-skills) into .claude/skills/spreadsheet-automation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a codex`. Or copy the skill folder (skills/spreadsheet-automation in LeoYeAI/openclaw-master-skills) into .agents/skills/spreadsheet-automation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill spreadsheet-automation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spreadsheet-automation, .gemini/skills/spreadsheet-automation, .github/skills/spreadsheet-automation and .opencode/skills/spreadsheet-automation in your project.
SKILL.md names no scripts, command-line tools or credentials: Spreadsheet Automation is instructions for the agent only. Our summary lists: A credential in YOUR_API_KEY.
SKILL.md names 2 domains. In commands or code: api.twitter.com; the agent is likely to contact it when it follows the instructions. As links in the text: developers.google.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Spreadsheet Automation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Spreadsheet Automation: Spreadsheet Agent (mastra-ai/mastra, 29k stars), Managing Google Workspace (taylorwilsdon/google_workspace_mcp, 3.3k stars), Gdoc To Markdown (iurykrieger/claude-bedrock, 105 stars) and XLSX (zzhonglei/GeoCode-Release, 189 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.