Open-source project
getcellm/cellm avatar
getcellm/cellm

Cellm: LLM calls as Excel worksheet functions

Use LLMs in Excel formulas

950 stars44 forksC#NOASSERTION

At a glance

What is it?
Cellm is a Windows Excel add-in that exposes a =PROMPT() formula backed by hosted or local models. It removes copy-paste from batch text tasks, but it inherits Excel's recalculation model and the licence file is not a recognised SPDX identifier.
Who is it for?
Cellm fits analysts who already live in Excel and need classification, extraction or translation across hundreds or thousands of rows without writing code. It does not fit anyone on macOS, anyone on Excel for the web, or anyone whose data cannot leave the machine unless they configure Ollama or a Llamafile locally.
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 9 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 September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The copy-paste loop Cellm is built to break

The README describes the origin directly: a friend writing a systematic review had to compare 7,500 papers against inclusion and exclusion criteria. Doing that one chat window at a time was, in the authors' words, "a total pain". The prototype let her import a CSV and classify all 7,500 papers with a prompt such as "If the paper studies diabetic neuropathy and stroke, return INCLUDE otherwise return EXCLUDE".

The target user is not a developer. The README names marketing, finance, sales and operations teams, and frames the appeal as bypassing "lengthy rollouts of specialized AI apps" because the team already has Excel installed. That framing is the whole product thesis: the spreadsheet is the interface, the formula bar is the prompt editor, and autofill is the batch runner. If your team is comfortable in a notebook or a Python script, Cellm offers little that pandas plus a provider SDK does not. If your team is not, the gap it fills is real.

How =PROMPT() maps a range to a model call

The core mechanism is stated plainly in the README: `=PROMPT()` outputs AI responses to a range of text, the way `=SUM()` outputs a sum of a range of numbers. Arguments can be a literal string, a single cell, a rectangular range such as `A1:F10`, or several separate ranges in one call, as in `=PROMPT("Compare these datasets", A1:B10, D1:E10)`.

Because it is a worksheet function, recalculation is Excel's, not Cellm's. Dragging the formula down a column produces one model call per row. That is the entire data flow, and it is also where the cost model lives: the number of API calls equals the number of populated formula cells, times however many times Excel decides to recalculate them. The README does not document a caching layer, a manual-recalculation recommendation, or a per-session call budget, so treat request volume as something you control through workbook design rather than something the add-in manages for you.

The README also mentions function calling and configuration in the documentation, and describes creating a web scraper via MCP servers to monitor competitor blogs, prices and social media. Those are claims about documented capability, not behaviour I can verify from the repository listing alone.

Install path, providers and the Ollama route

Requirements are narrow and stated up front: Windows 10 or higher, the .NET 9.0 Runtime, and Excel 2010 or higher as a desktop app. There is no macOS or Excel-for-the-web path in the README.

Installation is an MSI. Download `Cellm-AddIn-Release-x64.msi` from the releases page, run it, open Excel, pick a provider from the drop-down in the Cellm tab, and paste an API key. The README lists hosted providers including Azure, AWS, Google, Anthropic, OpenAI and Mistral, and local options via Ollama, Llamafiles or vLLM.

For a local setup the documented sequence is: install Ollama, open Excel, choose the Ollama provider from the Cellm tab drop-down, select a model, and let Cellm offer to download it. The README gives a terminal alternative, `ollama pull gemma4:e4b`. The first formula to try is the one the README suggests: `=PROMPT("What model are you and who made you?")`. The README states that with Gemma 4 E4B the answer identifies the model as Gemma 4, made by Google DeepMind. The pricing section says the free tier covers local models or your own API keys, with paid tiers for managed infrastructure and EU data processing.

Telemetry, accuracy and the trust boundary

Two disclosures in the README matter more than the feature list. The first is telemetry: Cellm collects crash reports and prompts. The README's own example is that `=PROMPT("Extract person names", A1:B2)` results in capture of the text "Ext...", with the description cut off mid-sentence in the supplied material. It is described as limited and anonymous, but prompt text is prompt text, and in a finance or healthcare workbook the prompt often contains the sensitive part. The README does not state whether telemetry can be disabled, and I cannot confirm that from the material available.

The second is accuracy. The README is unusually direct: models make mistakes, they may misunderstand a headline or assign the wrong category, and validating that results are accurate enough is the user's responsibility. That is the correct disclosure, but it has a practical consequence for the systematic-review story that motivated the project. A classifier returning INCLUDE or EXCLUDE across 7,500 rows produces a plausible-looking column, and nothing in the add-in flags which rows were low-confidence. If the output feeds a decision, budget for a sampling or review step; the tool will not do it for you.

Where Cellm is the wrong tool

The Windows-only, desktop-Excel-only constraint is the first hard boundary. A team standardised on Google Sheets or on Excel for the web cannot use this at all, and the README offers no workaround.

The second boundary is scale and determinism. A workbook is a stateful, recalculating document. If you need an auditable pipeline where every model call is logged with its input, output, model version and timestamp, a spreadsheet is a poor container for that record. Cellm gives you the answer in a cell; the provenance lives in your memory of how the formula was written.

The third is the licence. The repository metadata reports NOASSERTION, meaning GitHub could not map the licence file to a recognised SPDX identifier. For an internal desktop install that may not matter. For anyone redistributing the add-in, bundling it into a corporate image, or building a commercial product on top of it, the terms are unclear from the listing and need reading in full. Nothing here is legal advice; the point is simply that the licence is not self-evident from the metadata.

Maintenance cost is worth weighing too. The .NET 9.0 Runtime requirement means the add-in is tied to a runtime with its own support window, and the release cadence shown in the repository (v0.4.0 in October 2025, v0.4.1 in November 2025, v0.5.0 in January 2026) suggests active but not frequent updates. An Excel add-in that breaks after an Office update is a support ticket you own.

What you would use instead, and why the difference matters

The obvious alternative is a script. Python with the provider's SDK and a CSV or Parquet file gives you retries, rate limiting, caching, structured logging and a diffable history of what changed between runs. Cellm gives you none of that by default, and it does not try to: the README's pitch is explicitly for people who would rather avoid programming.

The more interesting comparison is a chat interface with file upload. ChatGPT and similar tools accept a CSV and can process many rows in one session. The difference is where the result lands. With a chat tool you get a downloadable file and a conversation you cannot easily re-run against next week's data. With Cellm the output is a column in the workbook your team already opens every morning, and re-running it is a drag of the fill handle. That is a genuine advantage for recurring monitoring tasks, and it is the reason the competitive-monitoring and daily-headline examples in the README read as the strongest fit rather than the classification-at-7,500-rows example that started the project.

Who should install it, and what to check first

Adopt Cellm if you are on Windows desktop Excel, your task is repetitive text work over a bounded number of rows, and the alternative is a person copying and pasting for an afternoon. The recurring-monitoring pattern in the README (a list of URLs, a prompt per row, a category column) is the shape it suits best.

Do not adopt it if you are on macOS or the web, if you need an auditable record of every model call, or if your workbook contains data that cannot be sent to a hosted provider and you are not prepared to run Ollama or a Llamafile locally.

Before a wider rollout, verify in this order: point the Cellm tab at the provider you actually intend to use and confirm which model it resolves to; decide whether anonymous prompt capture is acceptable for the data in your sheets, since the README documents it and does not document an off switch; and read the repository's licence file rather than trusting the NOASSERTION label. If any of those three checks fails, the fallback is a local model through Ollama, which keeps the formula interface and removes the provider question entirely.

Editorial conclusion

Cellm fits analysts who already live in Excel and need classification, extraction or translation across hundreds or thousands of rows without writing code. It does not fit anyone on macOS, anyone on Excel for the web, or anyone whose data cannot leave the machine unless they configure Ollama or a Llamafile locally. Before rolling it out beyond a pilot, verify three things: which provider the Cellm tab is pointed at, whether anonymous prompt capture is acceptable to your organisation, and what the repository's NOASSERTION licence actually permits for your distribution model.

Official sources

  1. getcellm/cellm on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Community notes

Community notes