Agent skill

Herald Sheets

by iamlukethedev in iamlukethedev/Herald-OS

Work in Herald Sheets, the spreadsheet in Herald OS - read workbooks, write values and formulas (a formula from a description, explaining one, filling it down), fill a column from examples, clean…

MITAuto-check passedDocuments & Office

Install Herald Sheets

skills CLI
$ npx skills add iamlukethedev/Herald-OS --skill herald-sheets -a claude-code

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

GitHub CLI
$ gh skill install iamlukethedev/Herald-OS herald-sheets --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/iamlukethedev/Herald-OS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/herald-os-bridge/skills/herald-sheets .claude/skills/herald-sheets && 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
herald-sheets
GitHub stars
365
Token cost
~4.6k tokens
SKILL.md length
2,546 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Work in Herald Sheets, the spreadsheet in Herald OS - read workbooks, write values and formulas (a formula from a description, explaining one, filling it down), fill a column from examples, clean…

  • Works in 5 steps: Find the workbook. sheets action=list… → Read first. sheets action=read gives the… → Write values and formulas. `sheets… → …
  • Tasks that involve Excel spreadsheets
  • SKILL.md covers The workflow, A formula from a description, Explaining a formula and Filling a column from examples, plus 12 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Herald Sheets is an agent skill from iamlukethedev/Herald-OS. Work in Herald Sheets, the spreadsheet in Herald OS - read workbooks, write values and formulas (a formula from a description, explaining one, filling it down), fill a column from examples, clean data (duplicates, spaces, numbers and dates kept as text, splitting a column, letter case, filling down), make and change charts, summarize a table as a pivot table does, name ranges, set dropdown lists and other validation, comment on cells and leave notes, say what stands out, build a workbook such as a trip budget…

Its SKILL.md is about 4.6k 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 and CSV and tabular files. It works with Microsoft Excel. The repository describes itself as: An agent-native operating system, with Hermes Agent as the interface. Independent project, not affiliated with Nous Research. The licence is MIT.

When your agent uses it

  • Tasks that involve Excel spreadsheets
  • Tasks that involve CSV and tabular files

Example prompts

  • “/herald-sheets”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Find the workbook. sheets action=list shows the workbooks open in Herald Sheets: name,
  2. Read first. sheets action=read gives the sheets (size, hidden, frozen panes) and, without
  3. Write values and formulas. `sheets action=write range="A1" values=[["Item", "Cost"],
  4. One call, one step. Every call is one step the person can undo (Ctrl+Z, ⌘Z on a Mac, or
  5. Check. Read back what you changed (range="E2:E6") and look at what it shows. An error in

What it can do on your machine

Read from SKILL.md and the folder at commit 1b35085. 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

    No scripts in the folder and no shell commands in SKILL.md.

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

  • Network

    No URLs in SKILL.md.

    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

Herald Sheets loads about 4.6k tokens when it runs. Until then it costs about 175 tokens; SKILL.md has 2,546 words of instructions outside code blocks.

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

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 iamlukethedev/Herald-OS at commit 1b35085, republished under its MIT licence (© iamlukethedev). 2,546 words, ~4,577 tokens.

Download SKILL.mdSave it as .claude/skills/herald-sheets/SKILL.md (or your agent's skills folder).
name
herald-sheets
description
Work in Herald Sheets, the spreadsheet in Herald OS - read workbooks, write values and formulas (a formula from a description, explaining one, filling it down), fill a column from examples, clean data (duplicates, spaces, numbers and dates kept as text, splitting a column, letter case, filling down), make and change charts, summarize a table as a pivot table does, name ranges, set dropdown lists and other validation, comment on cells and leave notes, say what stands out, build a workbook such as a trip budget, format numbers and cells, sort, filter, freeze, manage sheets, put a range in a Herald Docs report, save Excel and CSV files and export PDFs, all through the sheets tool

Herald Sheets

Herald Sheets is the spreadsheet built into Herald OS. It opens and saves Excel workbooks (.xlsx) and CSV files, and the person watches every change land in the Sheets window. Use the sheets tool whenever they want a spreadsheet read, built or changed: "total this column", "what does this formula do", "remove the duplicates", "make me a budget for the Lisbon trip", "what stands out in these sales", "sort by date", "save it as a CSV".

The workflow

  1. Find the workbook. sheets action=list shows the workbooks open in Herald Sheets: name, path, unsaved edits, the one in front (active) and the range selected in each. sheets action=list_all adds what is open in Herald Docs and Slides, and os_ui action=state carries the same list as office. "This sheet" is the one in front, and "these cells" are its selection (range=selection). Name a workbook by its file (workbook="~/Documents/Budget.xlsx") or by its tab (workbook="Budget.xlsx"); left out, a call works on the one in front.
  2. Read first. sheets action=read gives the sheets (size, hidden, frozen panes) and, without range, the cells that hold something on the sheet in front: values, formulas where there are any, and text (what the cells show: formatted numbers and dates) where it differs. A big sheet comes back from its top, as many rows as fit in 10,000 cells; read the rest by range (range="A200:F400"). From the read, learn the headers (usually row 1), where the data starts and ends, which columns hold numbers, dates or text, and which formulas are already there. sheets action=find text="Lisbon" lists the cells where something is.
  3. Write values and formulas. sheets action=write range="A1" values=[["Item", "Cost"], ["Rent", 1200]] writes rows from that cell (at most 10,000 cells a call); a whole range takes exactly its size, and one value (values=[["0"]]) fills every cell of it.
    • Text starting with = is a formula: English function names, commas between arguments (=SUMIFS($D$2:$D$90, $C$2:$C$90, "Food")), $ for references that must not move.
    • Numbers go in as plain numbers (1200, 0.15, -40), never "1,200" or "$1,200"; show them as money or percentages with a number format. Text that only looks like a number (an ID, a phone number, a postcode with a leading zero) stays text, and a leading ' keeps any value as text.
    • Dates are numbers shown in a date format. Write =DATE(2026, 3, 14), or write the dates as text and turn them into dates with convert_to_dates, which gives them a date format.
  4. One call, one step. Every call is one step the person can undo (Ctrl+Z, ⌘Z on a Mac, or sheets action=undo, with steps=3 for several); comment threads are the one thing outside it. Land a whole change in one call: several writes, formats, fills, charts and cleanings go in one sheets action=edit (below).
  5. Check. Read back what you changed (range="E2:E6") and look at what it shows. An error in a cell (#NAME? an unknown function or a typo, #REF! a reference that no longer exists, #DIV/0! a division by an empty cell, #VALUE! text where a number belongs) means fix it before you say it is done.

An open workbook changes in its window. A file that is not open is read, changed and written straight back to disk: the person is asked first every time, Herald backs the original up the first time it writes over it, and it refuses when the file holds something it cannot keep (see the end). Then open it (sheets action=open path="~/Documents/Budget.xlsx"; the answer lists the sheets and anything Herald shows differently) and work in the window.

A formula from a description

"Total the amounts for each category", "add a 10% tip", "how many days until each deadline":

  1. Read the used range and find the columns by their headers: Amount is D, Category is C, the data runs from row 2 to row 90.
  2. Write the formula where it was asked for, or in the first empty column with a header of its own, over ranges that cover all the data. Fix with $ what must stay put when it is filled.
  3. A whole column is one fill: the formula goes in the first cell and its references move for each row, the way dragging the fill handle does.
  4. Read the results back and say what the formula does in a sentence.
sheets action=read
sheets action=edit edits=[{"op": "write", "range": "E1", "values": [["With tip"]]}, {"op": "fill", "range": "E2:E31", "formula": "=D2*1.1"}]
sheets action=read range="E1:E6"

Useful functions: SUM, AVERAGE, MIN, MAX, COUNT, COUNTA, COUNTIFS, SUMIFS, AVERAGEIFS, IF, IFS, IFERROR, AND, OR, XLOOKUP (or INDEX with MATCH), ROUND, TEXT, LEFT, RIGHT, MID, LEN, TRIM, PROPER, TEXTJOIN, TEXTSPLIT, DATE, TODAY, YEAR, MONTH, EOMONTH, DATEDIF, NETWORKDAYS, UNIQUE, FILTER, SORT and SUMPRODUCT. Prefer one clear formula to a clever one.

Explaining a formula

sheets action=read range="F2" gives the formula and its result. Read the cells it refers to as well, then explain it step by step in plain words with the real values ("it looks up the price of the item in B2 in the Prices sheet, multiplies it by the quantity in C2, and gives 0 instead of an error when the item is missing"). Change nothing unless the person asks for a fix.

Filling a column from examples

"Fill in the rest like the first three": read the examples and the columns they come from, work out the rule, and check it against every example before you write anything. When a formula can compute it (first names out of "Rivera, Ana", a code from two columns, a price with tax), write the formula in the first empty cell and fill it down, so the person can see and reuse it. When it cannot (a category chosen by meaning), write all the values in one write. Say the rule you followed.

Cleaning data

The data tools each do one job as one step, keep formulas as they are, and take a table's cells or one cell inside it (for the whole table); the answer says what changed and what could not be read:

  • remove_duplicates range="A1:F400": rows that repeat an earlier one go, compared in every column or by="A,C" (letters or headers), text in any case; the rows below move up with their formulas. Spaces count, so trim first when rows differ only by them. Before a big removal run it with preview=true, which counts the rows and changes nothing, and say how many go.
  • trim_text: spaces at the ends of cells, doubled spaces inside, characters that print nothing.
  • change_case case=title (upper, lower, title or sentence).
  • convert_to_numbers: numbers kept as text ("1,200", "$5", "(300)", "12%") become numbers, with a format that shows them as before.
  • convert_to_dates: dates kept as text become real dates in dateFormat (yyyy-mm-dd); whether the day or the month comes first is read from the data, or say order=dmy, mdy or ymd for dates like 03/04/2026.
  • split_text range="A2:A40" delimiter=comma (or semicolon, space, tab, pipe or any text): one column split into the columns to its right, or from destination; it will not write over data unless overwrite=true, and header=true leaves the header as it is.
  • fill_down: each empty cell takes the value above it, for a report that writes a group's label once.
  • highlight_duplicates: repeated values turn light red, in a rule that follows the data (clear=true takes it off).
  • sort_by keys=[{"column": "Region"}, {"column": "Amount", "ascending": false}]: sorted by several columns in turn, the header row on top.

clean does the same jobs in one action (clean=dedupe, trim, numbers, dates, split or case, with header=true when row 1 holds names), as Ask Hermes' Clean data menu asks for. Read first to pick the range and to see whether row 1 is a header, make every cleaning in one edit ({"op": "convertToDates", "range": "C2:C400", "order": "dmy"}, or {"op": "clean", "range": "C2:C400", "action": "dates"}, where the clean op's own word is action), and read back to check. replace takes care of single values (find="N/A" replacement="").

Charts

  1. sheets action=recommend_charts range="A1:C13" says which kinds suit the data, the best first, and why. Pick a kind that fits: a line for a trend over time, columns to compare a few categories, bars for long labels, a pie or doughnut for the parts of one whole (a handful of slices), scatter for two measures against each other, combo for two measures on different scales.
  2. Make it in one call: sheets action=insert_chart range="A1:C13" kind=line title="Sales by month". The first row names the series and the first column holds the categories, as in Excel; the chart goes beside the data unless at="H2" (or at="H2:N18" to cover those cells), 480 by 288 pixels unless width and height say. Settings come in the same call: legend, labels (value, percent or category), stacking, axes ({"y": {"min": 0, "format": "$#,##0"}}), palette, hole for a doughnut, and series for series the block does not lay out.
  3. The answer gives the chart's id; use it from then on. list_charts lists the charts, describe_chart chart=<id> gives every setting, update_chart chart=<id> kind=column legend=none changes only what it names, move_chart chart=<id> at="H20" width=600 moves and sizes it, and remove_chart chart=<id> takes it away (the data stays) and asks the person first.
Show full SKILL.md (1,043 more words)Show less

Summaries

"Total sales by region and quarter" is a summary, as a pivot table makes: sheets action=summarize range="A1" rowFields=["Region"] columnFields=["Quarter"] valueFields=[{"field": "Amount", "fn": "sum"}] builds it on a new sheet, with grand totals (or destination="H2", a sheet's name, or 'Report'!B2). fn is sum, count, average, min or max; filters=[{"field": "Status", "values": ["Paid"]}] counts only some rows, and preview=true shows its shape first.

Its numbers are live formulas (SUMIFS, COUNTIFS and the like) over the table's whole columns, so they follow the data as it changes. Its labels do not: after rows come in with a new region, or the table grows, refresh_summary rewrites it with the labels the data has now. A summary that inserted or deleted rows or columns have moved is not refreshed in place: summarize again. list_summaries says where each one is and what it reads.

Named ranges

create_name name=TaxRate refersTo="=0.1" or create_name name=Sales refersTo="Data!B2:B90" (or refersTo=selection) names a constant or cells, so formulas read =SUM(Sales)*TaxRate; scope gives a name to one sheet's formulas only. list_names lists them, update_name name=Sales newName=Revenue (or refersTo, comment) changes one, go_to_name name=Sales selects its cells for the person, and delete_name removes one: formulas that use it show #NAME?, so find them first.

Validation

set_validation range="D2:D90" rule={"type": "list", "items": ["Paid", "Due", "Overdue"]} gives the cells a dropdown list; "source": "Lists!A2:A9" takes the items from cells instead (for long lists, or items with commas). Other rules: {"type": "whole", "operator": "between", "min": 1, "max": 10}, decimal, date (yyyy-mm-dd, or a formula like =TODAY()), textLength, or {"type": "custom", "formula": "=C2>=B2"}. input={"title": "Status", "message": "Pick one"} shows a message when a cell is selected, and alert={"style": "stop", "message": "Pick from the list"} is what follows a value the rule does not allow (warning lets the person keep it, none shows nothing). It replaces what the cells took before; get_validation reads it back, and clear_validation takes it off and asks first.

Comments and notes

A comment starts a thread the person can answer; a note is a few words left on a cell. add_comment cell="B4" text="Is this the March figure?" starts one (the answer gives its id); reply_to_comment cell="B4" text="...", resolve_comment cell="B4" (resolved=false opens it again) and delete_comment (a thread by its cell, or one reply by commentId) work on threads, and list_comments shows them with their replies, authors and ids. What you write is signed Hermes, so the person sees who asked. A cell holds a comment or a note, not both. Comment threads stay out of the undo history: say what you added, and delete it when the person wants it gone. set_note cell="C2" text="Estimate", list_notes and remove_note work like the rest, each one step to undo.

What stands out

"What stands out", "anything odd here", "how did we do": read the whole used range (in parts when it is big) and look at totals, averages, the biggest and smallest values, trends over time, outliers, empty or repeated rows, entries spelled two ways, and cells with errors. Answer in a few short points with the numbers and the cells they are in ("March is the only month below target: $8,200 in D4"). Change nothing; offer to highlight, chart, summarize, sort or fix what you found.

Building something new

Plan the layout first: headers in row 1, one row per item, numbers in their own columns, a total row at the bottom with formulas. Then make it in two calls: new with the values and formulas, and one edit for the formats and the frozen header.

sheets action=new name="Lisbon trip budget" values=[["Item", "Planned", "Actual", "Difference"], ["Flights", 640, 612, "=B2-C2"], ["Hotel (4 nights)", 520, 0, "=B3-C3"], ["Food", 300, 0, "=B4-C4"], ["Transport", 80, 0, "=B5-C5"], ["Total", "=SUM(B2:B5)", "=SUM(C2:C5)", "=B6-C6"]]
sheets action=edit edits=[{"op": "format", "range": "A1:D1", "format": {"bold": true, "background": "#e8eefc"}}, {"op": "format", "range": "B2:D6", "format": {"numberFormat": "€#,##0.00"}}, {"op": "format", "range": "A6:D6", "format": {"bold": true, "border": {"edges": "top", "style": "thin"}}}, {"op": "freeze", "rows": 1}]

Templates give a workbook its usual shape: budget, expenses, todo, schedule and invoice (sheets action=new template=budget name="2026 budget"). path saves the new workbook at once (.xlsx or .csv, never over a file that exists): give it only when the person said where.

Formats, sorting, filtering and sheets

  • format takes numberFormat ("#,##0.00", "0%", "yyyy-mm-dd", "$#,##0"), bold, italic, underline, strikethrough, font, size, color, background, align, verticalAlign, wrap and border ({"edges": "outside", "style": "medium", "color": "#999999"}): sheets action=format range="B2:B40" format={"numberFormat": "$#,##0.00"}.
  • sheets action=sort range="A1:F90" by="Date" header=true (by is a letter, a header or a number from the range's first column; ascending=false for largest or newest first); sort_by sorts by several columns.
  • sheets action=filter range="A1:F90" by="Status" values=[["Paid", "Due"]] keeps the rows showing one of those; condition={"operator": "greaterThan", "value": 100} keeps rows meeting a test (equal, notEqual, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual), and clear=true takes the filter off.
  • sheets action=freeze rows=1 keeps the header in view (columns=1 the first column; rows=0 columns=0 unfreezes).
  • add_sheet name="Q2" (index for where), rename_sheet sheet="Sheet1" name="Budget", and remove_sheet sheet="Old", which deletes everything on it and asks the person first.

Across documents

A range goes into a Herald Docs document as a table, as its cells show: docs action=insert_range workbook="Budget.xlsx" range="A1:D6" document="Trip notes.docx" at=end. A table from a document comes the other way by reading it (docs action=read) and writing its rows in one write. list_all finds what is open in both.

Saving and exporting

  • Never save unless the person asks. An open workbook keeps its unsaved edits (its tab says so), and they save with Ctrl+S (⌘S on a Mac) or ask you to.
  • "Save it": sheets action=save. Saving over the workbook's own file asks the person every time; the first time Herald writes over a file it shows what it cannot keep, and the original goes to Herald's Office backups.
  • A workbook never saved needs a place: sheets action=save to="~/Documents/Trip budget.xlsx". A file that exists is replaced only with overwrite=true, which asks first.
  • A CSV file keeps only values: the sheet in front, each cell as it shows (a formula's result, a number in its format), no formulas, formatting or other sheets. Say so when the person asks for CSV and the workbook has more, and offer .xlsx as well.
  • A PDF: sheets action=export_pdf writes the sheet in front as a new PDF in ~/Documents, laid out as it prints, or to="~/Desktop/Budget.pdf". Say where it went.

What Herald Sheets cannot do yet

It makes no pivot tables of its own, and cannot change one made in Excel: Herald keeps it in the file for Excel to refresh, and summarize makes the same kind of summary in live formulas. Other parts it cannot make, such as slicers and sparklines, stay in the file as Excel saved them. Say so plainly, and offer what works.

© iamlukethedev, 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 plugins/herald-os-bridge/skills/herald-sheets of iamlukethedev/Herald-OS.

Open the folder on GitHubat commit 1b35085

Compare with similar skills

Herald Sheets 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.

Herald Sheets compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Herald Sheets this skilliamlukethedev/Herald-OS365—~4.6kAutomated safety check: PassMIT
Data Table Managern8n-io/n8n207k—~2.3kAutomated safety check: PassCustom licence
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
Markitshift-labs-ai/markit1.3k—~299Automated safety check: PassMIT
Convert Fileduckdb/duckdb-skills6031 repos~720Automated safety check: NotesMIT
Research Integrity Auditxuzhougeng/wisp-science1k—~2.6kAutomated safety check: PassAGPL-3.0

Similar skills

  • 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
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • Markit

    shift-labs-ai/markit

    Convert files and URLs to Markdown. An agent skill from shift-labs-ai/markit.

    1.3k GitHub stars~299 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Convert File

    duckdb/duckdb-skills

    Official

    Convert any data file to another format: CSV, Parquet, JSON, Excel, GeoJSON, and more.

    603 GitHub starsUsed in 1 repo~720 tokens
    Documents & OfficeAuto-check: notes
  • Research Integrity Audit

    xuzhougeng/wisp-science

    学术审查 / research-integrity screening of a manuscript's figures and reported numbers.

    1k GitHub stars~2.6k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Jmh Benchmark Compare

    eclipse-rdf4j/rdf4j

    Parse JMH result text by finding the first header line that starts with Benchmark and contains Mode and Score, build a structured table for all columns/rows, compare overlapping benchmarks across 2+…

    420 GitHub stars~804 tokensUpdated yesterday
    Documents & OfficeAuto-check passed

More from iamlukethedev/Herald-OS

All 8 skills in this repo
  • Herald Os Tailor

    iamlukethedev/Herald-OS

    Change Herald OS itself - make and switch themes, fonts and the wallpaper, widgets, the menu bar, control-menu entries, branding, keybindings, settings, routines and hooks

    365 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Herald Slides

    iamlukethedev/Herald-OS

    Make and change presentations in Herald Slides, the presentation editor in Herald OS - a deck from a topic (an outline first, a title slide, one idea a slide, short bullets, speaker notes, a closing…

    365 GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Herald Canvas

    iamlukethedev/Herald-OS

    Make and edit pictures in Herald Canvas, the layered image editor in Herald OS - posters, banners, thumbnails, collages and photo fixes through the canvas tool, with editable text and shape layers…

    365 GitHub stars~7.2k tokensUpdated today
    Auto-check passed
  • Herald Docs

    iamlukethedev/Herald-OS

    Write and edit documents in Herald Docs, the word processor in Herald OS - letters, cover letters, CVs, reports, memos, meeting notes, proposals, essays and newsletters drafted from a brief or a…

    365 GitHub stars~6k tokensUpdated today
    Auto-check passed
  • Diagnose Crash

    iamlukethedev/Herald-OS

    Explain why a program crashed from its crash report or core dump, and whether it is worth reporting

    365 GitHub stars~964 tokensUpdated today
    Auto-check passed
  • File Documents

    iamlukethedev/Herald-OS

    Find documents such as invoices among badly named files, read them, name them clearly and file them where the person keeps them, with a plan they approve and an undo

    365 GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Works with

Questions about Herald Sheets

What does Herald Sheets do?

Work in Herald Sheets, the spreadsheet in Herald OS - read workbooks, write values and formulas (a formula from a description, explaining one, filling it down), fill a column from examples, clean…. Herald Sheets is an agent skill from iamlukethedev/Herald-OS.

When should I use Herald Sheets?

Herald Sheets fits situations like: tasks that involve Excel spreadsheets; tasks that involve CSV and tabular files.

How do I install Herald Sheets in Claude Code?

Run `npx skills add iamlukethedev/Herald-OS --skill herald-sheets -a claude-code`. Or copy the skill folder (plugins/herald-os-bridge/skills/herald-sheets in iamlukethedev/Herald-OS) into .claude/skills/herald-sheets in your project. Claude Code loads it when a task matches its description.

How do I install Herald Sheets in Codex?

Run `npx skills add iamlukethedev/Herald-OS --skill herald-sheets -a codex`. Or copy the skill folder (plugins/herald-os-bridge/skills/herald-sheets in iamlukethedev/Herald-OS) into .agents/skills/herald-sheets in your project. Codex loads it when a task matches its description.

Can I use Herald Sheets 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 iamlukethedev/Herald-OS --skill herald-sheets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/herald-sheets, .gemini/skills/herald-sheets, .github/skills/herald-sheets and .opencode/skills/herald-sheets in your project.

What does Herald Sheets need to run?

SKILL.md names no scripts, command-line tools or credentials: Herald Sheets is instructions for the agent only.

Does Herald Sheets access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Herald Sheets 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 Herald Sheets use?

Herald Sheets 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 Herald Sheets use?

About 4.6k 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.

What are the alternatives to Herald Sheets?

Skills that share tags, products or a category with Herald Sheets: Data Table Manager (n8n-io/n8n, 207k stars), Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars), Markit (shift-labs-ai/markit, 1.3k stars) and Convert File (duckdb/duckdb-skills, 603 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Herald Sheets?

iamlukethedev (a GitHub user) maintains it in iamlukethedev/Herald-OS, which has 365 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 9, 2026.

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