Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/craftos-dev/craftbot/google-sheetnpx skills add CraftOS-dev/CraftBot --skill google-sheetgit clone --depth 1 https://github.com/CraftOS-dev/CraftBotWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/craftos-dev/craftbot/google-sheet)<a href="https://agentmods.dev/skills/craftos-dev/craftbot/google-sheet"><img src="https://agentmods.dev/badge/skills/craftos-dev/craftbot/google-sheet.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00064 | $0.01209 |
| Opus 5 | $0.00032 | $0.00605 |
| Sonnet 5 | $0.00013 | $0.00242 |
| Haiku 4.5 | $0.00006 | $0.00121 |
Grade A, and why
google-sheet scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 143 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Google Sheets Skill
Interact with Google Sheets using a service account.
Setup (One-time)
-
Google Cloud Console:
- Create/select a project
- Enable "Google Sheets API"
- Create a Service Account (IAM → Service Accounts → Create)
- Download JSON key
-
Configure credentials (one of these):
- Set env:
GOOGLE_SERVICE_ACCOUNT_KEY=/path/to/key.json - Place
service-account.jsonorcredentials.jsonin the skill directory - Place in
~/.config/google-sheets/credentials.json
- Set env:
-
Share sheets with the service account email (found in JSON key as
client_email) -
Install dependencies:
cd skills/google-sheets && npm install
Usage
node scripts/sheets.js <command> [args]
Commands
Data Operations
| Command | Args | Description |
|---|---|---|
read |
<id> <range> |
Read cells |
write |
<id> <range> <json> |
Write data |
append |
<id> <range> <json> |
Append rows |
clear |
<id> <range> |
Clear range |
Formatting
| Command | Args | Description |
|---|---|---|
format |
<id> <range> <formatJson> |
Format cells |
getFormat |
<id> <range> |
Get cell formats |
borders |
<id> <range> [styleJson] |
Add borders |
copyFormat |
<id> <source> <dest> |
Copy format between ranges |
merge |
<id> <range> |
Merge cells |
unmerge |
<id> <range> |
Unmerge cells |
Layout
| Command | Args | Description |
|---|---|---|
resize |
<id> <sheet> <cols|rows> <start> <end> <px> |
Resize columns/rows |
autoResize |
<id> <sheet> <startCol> <endCol> |
Auto-fit columns |
freeze |
<id> <sheet> [rows] [cols] |
Freeze rows/columns |
Sheet Management
| Command | Args | Description |
|---|---|---|
create |
<title> |
Create spreadsheet |
info |
<id> |
Get metadata |
addSheet |
<id> <title> |
Add sheet tab |
deleteSheet |
<id> <sheetName> |
Delete sheet tab |
renameSheet |
<id> <oldName> <newName> |
Rename sheet tab |
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 143 lines · 64 tokens per session scan A 238950f517af
google-sheet is a skill published in the GitHub repository CraftOS-dev/CraftBot (378 stars, last pushed 2d ago), licensed MIT. It adds 64 tokens to every session and 1,209 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
feishu
Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI/MCP setup without hardcoding credentials.
dynamic-percentage-and-large-file-analysis
根据文件行数动态切换大文件处理策略(Parquet转换),通过逐行扫描或列匹配提取关键指标并计算占比、均值等统计量,最终输出结构化Excel报告及可视化图表。.
excel-multi-sheet-threshold-analysis
Skill "excel-multi-sheet-threshold-analysis" from OpenSenseNova/SenseNova-Skills, covering excelmultisheetdeduplication, 读取数据,header=none 用于处理无表头或非标准表头文件, 设定目标列索引及过滤关键词, 使用 set 进行高效去重 and 转换为排序后的列表.
excel-threshold-analysis-and-styling
根据 Excel 数据量级自动判断处理策略,执行数值列清洗、条件过滤,并使用 openpyxl 对符合条件的单元格进行样式标记与导出。.
spreadsheet-source-validated
Execute Python scripts for spreadsheet operations with mandatory source data validation and fallback protocols.
document-python-direct
Use direct Python execution for reliable spreadsheet and document/PDF generation operations.