Cellm: running LLM prompts across Excel ranges with =PROMPT()
Use LLMs in Excel formulas
At a glance
- What is it?
- Cellm is a Windows Excel add-in that turns a spreadsheet formula into an LLM call, so one prompt can be dragged down thousands of rows. It is a good fit for non-programmers doing classification and extraction, and a poor fit for anyone who needs macOS, offline batch runs, or a promise that the model will not make mistakes.
- Who is it for?
- Adopt Cellm if your team already lives in Excel on Windows and the work is repetitive text classification, extraction or translation over a few thousand rows, because the =PROMPT() formula keeps the loop inside a tool people already know. Do not adopt it if you need macOS, if you need to run batches on a schedule without opening Excel, or if you cannot accept that the README itself warns the models make mistakes and that validating the output is your responsibility.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 24 days ago.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The copy-paste loop Cellm is built to remove
The problem Cellm targets is narrow and easy to recognise. You have a column of text, a task you would otherwise do by hand, and a chat window. The README's own framing is that Cellm is useful "when you want to use AI for repetitive tasks that would normally require copy-pasting data in and out of a chat window many times." The origin story in the README is concrete: a friend writing a systematic review had to compare 7,500 papers against inclusion and exclusion criteria, and the prototype classified all 7,500 with a prompt of the form "If the paper studies diabetic neuropathy and stroke, return INCLUDE otherwise return EXCLUDE".
The audience follows from that story. The README says Cellm aims to let marketing, finance, sales and operations teams automate everyday tasks "without depending on developers", and that it exists for people "who would rather avoid programming". That is the real boundary. If you are comfortable writing a script, a loop over an API is cheaper and more controllable than an add-in. If you are not, and the data is already in a sheet, Cellm removes an entire category of manual work.
How =PROMPT() maps a range onto model calls
The mental model the README gives is arithmetic: Cellm's `=PROMPT()` function outputs AI responses to a range of text "similar to how Excel's `=SUM()` function outputs the sum of a range of numbers". A formula such as `=PROMPT("Extract all person names mentioned in the text.", A1)` takes a prompt string plus one or more range arguments, and the result lands in the cell. Dragging the fill handle applies the same prompt to the rows below.
Range arguments follow standard Excel notation. The README gives `=PROMPT("Extract all person names in the cells", A1:F10)` for a block and `=PROMPT("Compare these datasets", A1:B10, D1:E10)` for multiple separate ranges. Because these are ordinary formula arguments, the recalculation model of Excel applies: change a referenced cell and the formula is a candidate for re-evaluation. That is convenient and also the sharp edge, since a sheet with thousands of prompt rows is a sheet with thousands of potential model calls.
What sits behind the formula is not described in the README. It names a Cellm tab in Excel, a provider drop-down and an API key field, and it points to the documentation site for function calling and configuration, but the README does not document the request pipeline, caching, or how concurrent calls are scheduled. Treat that as an unknown to check in the docs rather than something to assume.
Installing the add-in and running a first prompt
Cellm is Windows-only. The README lists three requirements: Windows 10 or higher, the .NET 9.0 Runtime, and Excel 2010 or higher as a desktop app. The install path is a signed-looking MSI from the releases page, not a package manager, so there is no `dotnet tool install` or `winget` line to copy.
Download `Cellm-AddIn-Release-x64.msi` from the release page linked in the README and run it. After that, the setup is done in Excel itself: open the workbook, go to the Cellm tab, pick a provider from the drop-down and enter your API key.
If you would rather not send data to a hosted provider, the README describes a local route through Ollama. Install Ollama, then choose the Ollama provider in the Cellm tab and select a model; Cellm offers to download it. The README also gives the manual equivalent in Windows Terminal:
ollama pull gemma4:e4bOnce a provider is configured, the first real use is a single cell. Select one and type the formula from the README:
=PROMPT("What model are you and who made you?")According to the README, with Gemma 4 E4B the answer identifies the model as "Gemma 4" made by Google DeepMind. That is a useful smoke test because it exercises the provider connection and the model selection at once, without needing any input data. From there, put a block of text in A1 and run `=PROMPT("Extract all person names mentioned in the text", A1)` in B1, then drag the cell down.
Where Cellm breaks down, and when it is the wrong tool
The README is unusually direct about the central limitation: "Just remember that the models do make mistakes at times. They might misunderstand a headline or assign the wrong category. It is your responsibility to validate that the results are accurate enough for your use case." For classification work at the scale the README describes, that means a sampling or review step is part of the job, not an optional extra. A formula that returns a confident wrong label looks exactly like one that returns a right one.
Platform is the second hard boundary. Windows 10 or higher, Excel 2010 or higher as a desktop app, and the .NET 9.0 Runtime. There is no mention of macOS, Excel on the web, or Google Sheets anywhere in the README, so a mixed-platform team will have part of its staff unable to open a workbook that depends on the function. A workbook full of `=PROMPT()` formulas is not portable to a colleague on a Mac.
Telemetry is the third thing to weigh. The README states that Cellm collects crash reports and prompt text, and gives the example that a call like `=PROMPT("Extract person names", A1:B2)` results in capture of the prompt text. If your rows contain customer feedback, candidate data, or anything covered by a data processing agreement, that sentence should be read before the first drag-fill, not after. The README does not document an opt-out in the section available here; whether one exists is a question for the documentation site.
Finally, cost and rate limits are the quiet failure mode. The README's own example describes tracking competitor pricing across 50 websites daily and classifying thousands of papers. At that volume, a hosted provider's per-call pricing and rate limits govern how long a recalculation takes, and the README gives no guidance on either. Local models through Ollama change the cost equation but move the constraint to your hardware.
How Cellm differs from scripting an LLM over a CSV
The obvious alternative is a script: read the file, loop over rows, call a model, write the file back. That approach is not named in the README, but it is the thing Cellm is positioned against, and the difference in approach is worth stating plainly. A script separates data from logic, is diffable, runs headless on a schedule, and works on any operating system. It also requires someone who writes code, which the README identifies as exactly the dependency Cellm is trying to remove.
Cellm inverts the trade. Logic lives in the cell, next to the data, visible to anyone who opens the sheet. A colleague can read `=PROMPT("Extract all person names mentioned in the text", A1)` and understand what the column does without reading a repository. The cost is that the logic is now embedded in a binary .xlsx file, harder to review, and dependent on an add-in being installed on the machine that opens it.
Within the add-in category, the README positions Cellm against specialised AI apps rather than against other add-ins, arguing that teams should "bypass lengthy rollouts of specialized AI apps" because Excel is already deployed. For local inference, the README lists Ollama, Llamafiles and vLLM as supported backends, and for hosted models it lists Azure, AWS, Google, Anthropic, OpenAI and Mistral. That breadth is the strongest argument for Cellm over a single-provider tool: switching models is a drop-down change, which also makes side-by-side model comparison on the same column practical.
Licence, releases and what maintenance looks like
The repository carries a LICENSE file and a CLA.md, and GitHub reports the licence as NOASSERTION, meaning the platform could not map the file to a known licence identifier. That is not the same as having no licence, but it does mean you cannot assume the terms from the identifier alone. Anyone planning to redistribute the add-in or bundle it into an internal installer should read LICENSE directly rather than inferring from the NOASSERTION label. Nothing here is legal advice, and the CLA suggests contributions are governed separately from use.
The release cadence visible in the repository is modest and slowing: v0.4.0 in October 2025, v0.4.1 in November 2025, and v0.5.0 in January 2026. The last push to the default branch was on 2026-09-07, so the project is not archived and there has been activity this year, but the gap between the latest tagged release and the latest commit means the main branch may contain work that has not shipped. If you pin to a release, pin to v0.5.0 and check the commit history before assuming a fix is in it.
The upgrade cost is low by design. The install is an MSI, so an upgrade is a reinstall rather than a dependency resolution problem, and there is no server component to migrate. The real cost sits in the workbooks: because prompts live inside formulas, changing a prompt means editing sheets, and there is no version control story for that in the README. A team running the same prompt across fifty files has fifty places to change it.
Editorial conclusion
Adopt Cellm if your team already lives in Excel on Windows and the work is repetitive text classification, extraction or translation over a few thousand rows, because the =PROMPT() formula keeps the loop inside a tool people already know. Do not adopt it if you need macOS, if you need to run batches on a schedule without opening Excel, or if you cannot accept that the README itself warns the models make mistakes and that validating the output is your responsibility. Before rolling it out, verify three things: that the .NET 9.0 Runtime and Excel 2010 or higher are present on every machine, that your chosen provider is one the documentation covers for hosted or local models, and that your organisation accepts the telemetry described in the README, which states it collects crash reports and prompt text.
Frequently asked questions
What does the =PROMPT() function in Cellm actually do?
It sends a prompt plus one or more cell ranges to a configured language model and writes the response into the cell. The README compares it to =SUM(), in that it outputs an AI response to a range of text the way SUM outputs the sum of a range of numbers.
Can Cellm use Ollama or another local model instead of a hosted API?
Yes. The README lists local models via Ollama, Llamafiles or vLLM, and describes choosing the Ollama provider from the drop-down in the Cellm tab and selecting a model, which Cellm offers to download. It also gives the manual command ollama pull gemma4:e4b.
What are the requirements to install Cellm?
Windows 10 or higher, the .NET 9.0 Runtime, and Excel 2010 or higher as a desktop app. Installation is done by downloading Cellm-AddIn-Release-x64.msi from the release page and running the installer.
Does Cellm collect my data?
The README states that Cellm collects limited, anonymous telemetry consisting of crash reports and prompts, and gives the example that a call such as =PROMPT("Extract person names", A1:B2) results in the prompt text being captured. The README section available does not document a way to turn this off.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/getcellm-cellm)