Agent skill

Enrich Excel

by tinyfish-io in tinyfish-io/tinyfish-cookbook

Enrich a live Excel spreadsheet by researching missing data with TinyFish and writing results directly into the running Excel app via AppleScript.

MITAuto-check passedDocuments & Office

Install Enrich Excel

skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill enrich-excel -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tinyfish-io/tinyfish-cookbook enrich-excel --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tinyfish-io/tinyfish-cookbook.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/enrich-excel .claude/skills/enrich-excel && rm -rf skills-src

Use ~/.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/

Facts

Skill name
enrich-excel
GitHub stars
2.2k
Token cost
~1.9k tokens
SKILL.md length
675 words
Files
1
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Enrich a live Excel spreadsheet by researching missing data with TinyFish and writing results directly into the running Excel app via AppleScript.

  • Works in 5 steps: Read the active workbook → Identify what needs enrichment → Research with TinyFish → …
  • A user says fill in my spreadsheet
  • SKILL.md covers Pre-flight Check (REQUIRED), Step 1 — Read the active…, Step 2 — Identify what needs… and Step 3 — Research with TinyFish, plus 3 more sections
  • Calls osascript; reaches some-result-url.com

What it does

Enrich Excel is an agent skill from tinyfish-io/tinyfish-cookbook. Enrich a live Excel spreadsheet by researching missing data with TinyFish and writing results directly into the running Excel app via AppleScript. Use when a user says "fill in my spreadsheet", "enrich this Excel file", "research and fill missing data", "update my Excel sheet", "look up data for each row", or any request to populate empty cells in an open Excel workbook with web-sourced data. macOS only.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering Excel spreadsheets. It works with Microsoft Excel and macOS. The repository describes itself as: A collection of sample apps and recipes built with the TinyFish web agent. Open-source examples for you to learn & build! The licence is MIT.

When your agent uses it

  • A user says fill in my spreadsheet
  • Enrich this Excel file
  • Research and fill missing data
  • Update my Excel sheet

Example prompts

  • “fill in my spreadsheet”
  • “enrich this Excel file”
  • “research and fill missing data”
  • “/enrich-excel”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Read the active workbook
  2. Identify what needs enrichment
  3. Research with TinyFish
  4. Write back live via AppleScript
  5. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit 63cd841. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • osascript

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • some-result-url.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Enrich Excel loads about 1.9k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 675 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~105
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from tinyfish-io/tinyfish-cookbook at commit 63cd841, republished under its MIT licence (© tinyfish-io). 675 words, ~1,871 tokens.

Download SKILL.mdSave it as .claude/skills/enrich-excel/SKILL.md (or your agent's skills folder).
name
enrich-excel
description
Enrich a live Excel spreadsheet by researching missing data with TinyFish and writing results directly into the running Excel app via AppleScript. Use when a user says "fill in my spreadsheet", "enrich this Excel file", "research and fill missing data", "update my Excel sheet", "look up data for each row", or any request to populate empty cells in an open Excel workbook with web-sourced data. macOS only.

Enrich Excel with TinyFish

Research missing data with TinyFish and write it directly into a live Excel workbook on macOS — cell by cell, in real time, via AppleScript. No file saves or reloads needed.

Pre-flight Check (REQUIRED)

Run ALL three checks before doing anything else:

bash
# 1. TinyFish CLI installed?
which tinyfish && tinyfish --version || echo "TINYFISH_CLI_NOT_INSTALLED"

# 2. Authenticated?
tinyfish auth status

# 3. Excel running with a workbook?
osascript -e 'tell application "Microsoft Excel" to get name of active workbook'

If any check fails, stop and tell the user what to fix. Do NOT proceed.


Step 1 — Read the active workbook

Write a temporary AppleScript file and execute it. Do NOT use inline heredoc with osascript — it breaks in many shell environments. Always write to a temp file first.

bash
cat > /tmp/tf_read_excel.scpt << 'APPLESCRIPT'
tell application "Microsoft Excel"
    set ws to active sheet of active workbook
    set output to ""
    repeat with r from 1 to 50
        set rv to ""
        set hasValue to false
        repeat with c from 1 to 15
            set cv to (value of cell r of column c of ws) as text
            if cv is not "missing value" and cv is not "" then
                set hasValue to true
                set rv to rv & c & ":" & cv & "|"
            else
                set rv to rv & c & ":|"
            end if
        end repeat
        if hasValue then set output to output & r & ">" & rv & linefeed
    end repeat
    return output
end tell
APPLESCRIPT
osascript /tmp/tf_read_excel.scpt

Parse the output format: row_number>col_num:value|col_num:value|...

If the sheet has more than 50 rows or 15 columns, increase the limits and re-run.


Step 2 — Identify what needs enrichment

From the parsed output:

  1. Find the header row — the first row where multiple cells have non-empty values. These are your column labels.
  2. Map columns — associate each column number with its header text (e.g., column 2 = "Company", column 3 = "Revenue").
  3. Find data rows — rows after the header with at least one non-empty cell.
  4. Find empty cells — in each data row, identify which columns are blank. These are what we need to fill.
  5. Respect user instructions — if the user specified which columns to fill or what to research, narrow the scope accordingly.

Tell the user what you found:

Found 5 data rows. Headers: Company, Revenue, HQ, CEO. Missing data in: Revenue (3 rows), CEO (4 rows). Researching now...


Step 3 — Research with TinyFish

CRITICAL: Use tinyfish search — it is fast (1-2s) and cheap. Do NOT use tinyfish agent or tinyfish browser — they are 10-60x slower and completely unnecessary for data lookups.

For each row with missing data, build a search query from the existing cell values + the column headers you need to fill:

bash
tinyfish search query "Yann LeCun h-index latest paper company affiliation 2025"

The output is JSON: {"results": [{"snippet": "...", "title": "...", "url": "..."}]}. Extract the data points you need from the snippets.

If snippets aren't detailed enough for a specific value, fetch the full page content (still fast):

bash
tinyfish fetch content get "https://some-result-url.com"

Research all rows before writing. Collect all the data first, then write it all in Step 4. This avoids interleaving slow network calls with fast AppleScript writes.

Batch smartly: If multiple rows need similar info (e.g. all are researchers, all are companies), you can sometimes combine queries:

bash
tinyfish search query "Jeff Dean h-index Google Scholar 2025"
tinyfish search query "Demis Hassabis h-index latest paper 2025"

Run searches in parallel when possible (multiple Bash tool calls in one message).


Show full SKILL.md (285 more words)Show less

Step 4 — Write back live via AppleScript

After collecting ALL research results, write them into Excel using a Python script. This gives the user a live animation of cells filling in:

python
import subprocess, time

def set_cell(cell, value):
    escaped = str(value).replace('\\', '\\\\').replace('"', '\\"')
    subprocess.run(["osascript", "-e",
        f'tell application "Microsoft Excel" to set value of cell "{cell}" of active sheet of active workbook to "{escaped}"'
    ], capture_output=True)

# Write all collected data row by row
rows = [
    # (cell_ref, value)
    ("C3", "LeJEPA: Provable and Scalable Self-Supervised Learning (2025)"),
    ("D3", "171"),
    ("E3", "Meta / Advanced Machine Intelligence Labs"),
    ("C4", "Gemini 2.5 (2025)"),
    ("D4", "134"),
    ("E4", "Google DeepMind (Chief Scientist)"),
]

for cell, value in rows:
    set_cell(cell, value)
    time.sleep(0.3)

print("Done")

Column mapping: 1=A, 2=B, 3=C, ..., 26=Z, 27=AA.

Go row by row with 0.2–0.4s delays between cells so the user sees the animation.


Step 5 — Verify

Read back the updated cells to confirm everything landed:

bash
cat > /tmp/tf_verify_excel.scpt << 'APPLESCRIPT'
tell application "Microsoft Excel"
    set ws to active sheet of active workbook
    set output to ""
    repeat with r from FIRST_ROW to LAST_ROW
        set rv to ""
        repeat with c from FIRST_COL to LAST_COL
            set cv to (value of cell r of column c of ws) as text
            set rv to rv & c & ":" & cv & "|"
        end repeat
        set output to output & r & ">" & rv & linefeed
    end repeat
    return output
end tell
APPLESCRIPT
osascript /tmp/tf_verify_excel.scpt

Show the user a summary:

Done! Filled 12 cells across 4 rows. All values verified in the live workbook.


Important Rules

  • Always read first — never assume what's in the sheet.
  • Never overwrite — only fill empty cells unless the user explicitly asks to overwrite.
  • Use tinyfish search, NOT tinyfish agent — search is fast and cheap. Agent is for interactive browser automation and is massive overkill for data lookups. Only escalate to agent if search + fetch genuinely cannot get the data (e.g., behind a login wall).
  • Research first, write second — collect all data before writing to Excel. Don't interleave slow network calls with AppleScript writes.
  • Write AppleScript to temp files — do NOT use inline heredoc osascript << 'EOF'. It breaks. Always write to /tmp/*.scpt and run osascript /tmp/file.scpt.
  • Handle "missing value" — Excel returns the string "missing value" for empty cells in AppleScript. Treat it as empty.
  • Rate limits — if TinyFish rate-limits, wait 60 seconds and retry. If still limited, fall back to your own knowledge and note which values are from training data.
  • Show progress — tell the user what you're researching. Don't go silent.
  • macOS only — AppleScript only works on macOS with Microsoft Excel for Mac.
  • Escape values — always escape " and \ in cell values before passing to osascript.
  • Large sheets — for 100+ rows, process in batches of 10–20 and show progress between batches.

© tinyfish-io, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/enrich-excel of tinyfish-io/tinyfish-cookbook.

Open the folder on GitHubat commit 63cd841

Compare with similar skills

Enrich Excel 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.

Enrich Excel compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Enrich Excel this skilltinyfish-io/tinyfish-cookbook2.2k—~1.9kAutomated safety check: PassMIT
Compdf Conversion CLILeoYeAI/openclaw-master-skills2.2k—~5.9kAutomated safety check: PassProprietary
Editaplotliushunqi8-hash/editaplot2026128—~5.8kAutomated safety check: PassApache-2.0
Excel Automationdaymade/claude-code-skills1.4k—~2.6kAutomated safety check: PassMIT
MarkitdownImCa0/just-laws78214 repos~3.2kAutomated safety check: NotesMIT
Data Table Managern8n-io/n8n207k—~2.3kAutomated safety check: PassCustom licence

Similar skills

  • Compdf Conversion CLI

    LeoYeAI/openclaw-master-skills

    MUST use for ANY PDF or image format conversion task — converting PDF and images (JPG/JPEG/PNG/BMP/TIFF/TIF/WEBP/JPEG2000) to 10 formats (Word, Excel, PPT, HTML, Image, TXT, JSON, Markdown, RTF…

    2.2k GitHub stars~5.9k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Editaplot

    liushunqi8-hash/editaplot2026

    Analyze local scientific CSV, TXT, XLS, or XLSX data; recommend publication-informed charts and Chinese scientific palettes; freeze a reproducible plan; and automate editable figures through a…

    128 GitHub stars~5.8k tokensUpdated 18 days ago
    Documents & OfficeAuto-check passed
  • Excel Automation

    daymade/claude-code-skills

    Create, parse, and control Excel files on macOS. An agent skill from daymade/claude-code-skills.

    1.4k GitHub stars~2.6k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    782 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Official

    Load before calling data-tables or parse-file. An agent skill from n8n-io/n8n.

    207k GitHub stars~2.3k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Docx4j

    plutext/docx4j

    A skill your agent uses when writing Java code that creates, reads or edits Word (.docx), PowerPoint (.pptx) or Excel (.xlsx) files with docx4j — including generating documents, editing existing…

    2.4k GitHub stars~2.5k tokensUpdated today
    Documents & OfficeAuto-check passed

More from tinyfish-io/tinyfish-cookbook

All 28 skills in this repo
  • Tinyfish Social Listening

    tinyfish-io/tinyfish-cookbook

    Monitor brand mentions, sentiment, and industry chatter across the web using TinyFish Search and Fetch.

    2.2k GitHub stars~5.4k tokensUpdated today
    Auto-check passed
  • Academic Research Mapper

    tinyfish-io/tinyfish-cookbook

    Map the research landscape for any technical or academic topic by searching arXiv, Semantic Scholar, and Google Scholar in parallel.

    2.2k GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Agent

    tinyfish-io/tinyfish-cookbook

    Default browser automation agent — click, fill forms, navigate, log in, and extract structured data from any website using a natural-language goal, or run the same task across multiple sites in…

    2.2k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Company Hiring Intelligence

    tinyfish-io/tinyfish-cookbook

    Reverse-engineer what a company is building by scraping their job postings, careers page, LinkedIn Jobs, and engineering blog using TinyFish web agents.

    2.2k GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Competitor Product Monitor

    tinyfish-io/tinyfish-cookbook

    Monitor competitor product releases and new feature announcements.

    2.2k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Dep Security

    tinyfish-io/tinyfish-cookbook

    Check every dependency in a package.json against live CVE databases and security advisories in real time — specifically targeting vulnerabilities disclosed in the last 48 hours, the window that…

    2.2k GitHub stars~2.4k tokensUpdated today
    Auto-check passed

Questions about Enrich Excel

What does Enrich Excel do?

Enrich a live Excel spreadsheet by researching missing data with TinyFish and writing results directly into the running Excel app via AppleScript. Enrich Excel is an agent skill from tinyfish-io/tinyfish-cookbook. Enrich a live Excel spreadsheet by researching missing data with TinyFish and writing results directly into the running Excel app via AppleScript.

When should I use Enrich Excel?

Enrich Excel fits situations like: A user says fill in my spreadsheet; enrich this Excel file; research and fill missing data; update my Excel sheet.

How do I install Enrich Excel in Claude Code?

Run `npx skills add tinyfish-io/tinyfish-cookbook --skill enrich-excel -a claude-code`. Or copy the skill folder (skills/enrich-excel in tinyfish-io/tinyfish-cookbook) into .claude/skills/enrich-excel in your project. Claude Code loads it when a task matches its description.

How do I install Enrich Excel in Codex?

Run `npx skills add tinyfish-io/tinyfish-cookbook --skill enrich-excel -a codex`. Or copy the skill folder (skills/enrich-excel in tinyfish-io/tinyfish-cookbook) into .agents/skills/enrich-excel in your project. Codex loads it when a task matches its description.

Can I use Enrich Excel in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tinyfish-io/tinyfish-cookbook --skill enrich-excel -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/enrich-excel, .gemini/skills/enrich-excel, .github/skills/enrich-excel and .opencode/skills/enrich-excel in your project.

What does Enrich Excel need to run?

Going by SKILL.md and its folder, Enrich Excel needs the command-line tools its instructions call (osascript). Our summary lists: Python 3.

Does Enrich Excel access the network?

SKILL.md names 1 domain. In commands or code: some-result-url.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Enrich Excel safe to install?

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.

What licence does Enrich Excel use?

Enrich Excel is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Enrich Excel use?

About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Enrich Excel?

Skills that share tags, products or a category with Enrich Excel: Compdf Conversion CLI (LeoYeAI/openclaw-master-skills, 2.2k stars), Editaplot (liushunqi8-hash/editaplot2026, 128 stars), Excel Automation (daymade/claude-code-skills, 1.4k stars) and Markitdown (ImCa0/just-laws, 782 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Enrich Excel?

tinyfish-io (a GitHub organization) maintains it in tinyfish-io/tinyfish-cookbook, which has 2,226 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 8, 2026.

Source: tinyfish-io/tinyfish-cookbook on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.