What NymForm is
NymForm is a task pane add-in for Microsoft Excel. You select a range, mark private columns and ask a question in plain language. NymForm sends a model a description of your data's structure, or sample rows with private values replaced, and the model returns a formula. NymForm checks the formula, and Excel calculates it on your real values. Nothing is written to your workbook until you choose Insert formula.
In Excel, the add-in's button on the Home tab is labelled Nymform.
Before you start
- Excel: Excel on the web, Excel for Windows or Excel for Mac, with support for the Excel JavaScript API 1.9 or later (current Microsoft 365 versions have it). So far the add-in has been used in Excel on the web; desktop Excel has not been checked yet.
- Node.js 22.12 or later, to run the add-in's local server while you use the alpha.
- An OpenRouter API key. NymForm sends your requests only to OpenRouter, which passes them to the model's provider. In your OpenRouter privacy settings, turn on zero data retention, and create a key with a spending limit. For a team, give each person their own capped key.
- Data to try it on. Start with synthetic data. The add-in's source includes synthetic workbooks, such as
bench/workbooks/orders.xlsx.
Install the alpha
The alpha is not publicly available yet: its source repository will be published with the release, and it is not listed in Microsoft's add-in store. Testers who have the source install it by sideloading, running the add-in from its source folder and loading its manifest into Excel. A hosted version that needs no local server is planned for when the repository is published.
- In a terminal, in the add-in's folder (the one that holds
package.json), runnpm ci, thennpm run certsto create the local certificate. Answer yes, or enter your password, when asked to trust the certificate. - Start the local server with
npm run dev-serverand leave that terminal open while you use NymForm. It is ready when it printscompiled successfully. - Load the add-in into Excel.
- Excel on the web, on the same computer that runs the local server: open a workbook, choose Home → Add-ins → More Add-ins → My Add-ins → Upload My Add-in, and pick
manifest.dev.xmlfrom the add-in's folder. - Excel for Windows or Mac: in a second terminal in the same folder, run
npm start. It sideloads the add-in and opens Excel;npm stopremoves it again. Desktop sideloading hasn't been checked for this alpha yet.
- Excel on the web, on the same computer that runs the local server: open a workbook, choose Home → Add-ins → More Add-ins → My Add-ins → Upload My Add-in, and pick
- In Excel, choose Nymform at the right end of the Home tab. The pane opens on Setup.
Connect OpenRouter
On Setup, paste your OpenRouter API key and choose Continue. The endpoint the add-in talks to is shown read-only: it is fixed when the add-in is built and can't be changed from the pane. The model ID is filled in with the default, openai/gpt-6-luna; you can enter another OpenRouter model ID.
Your key is kept in memory for this session only. It is sent only to the endpoint, never stored or logged, and forgotten when you close the pane, so you paste it again next time (the model ID resets too). You can preview requests before adding a key; only Send needs it. More detail: How provider connections work.
Choose your data
The pane has four tabs: Setup, Columns, Ask and Log. The What gets sent and Formula (or Answer) steps appear inside Ask.
The pane reads your selection when it opens and when you choose Refresh from selection; it does not follow later clicks in Excel. Select your data in the worksheet, or click one cell inside it, then open Columns and choose Refresh from selection if the pane was already open. NymForm works out the range like this:
- One cell or one row stands for the data around it: the Excel table it is in, else the filtered range, else the block of filled cells around it.
- Whole rows, whole columns or the whole sheet are trimmed to the filled cells.
- Anything else is used exactly as selected.
Columns shows the result, for example Using Orders, A1:F501 · 500 rows, and how it was found. The first row is read as headers, unless it looks like data (numbers, dates, emails and similar); then the This range has a header row checkbox starts off. A range needs at least one data row and can have at most 20,000 cells. Rows hidden by a filter or by hand are read like any other row.
Mark private columns
Each column has a Keep private checkbox. NymForm suggests defaults from header words and value patterns (names, emails, phone numbers, IDs, free text and similar), and leans toward private when unsure, but your checkbox decides. You can also:
- rename a header before it is sent under Header sent (the original header is then left out of the request),
- add a short note to a column, which is sent to the model,
- add a lookup range on another sheet with Add a lookup range; it gets its own private columns.
Ask a question
Open Ask, choose what to send, type your question and choose Preview.
- Structure only (the default) sends headers, types and counts. No data cells.
- Include sample rows also sends rows from the top of your range (50 by default; set Rows to include, up to 200) with values in private columns replaced. Use it when the model needs to see what the values look like. Lookup ranges you add send their first rows the same way, with their own private columns replaced.
If your question names a whole private value, such as a customer's name, NymForm replaces it with that value's stand-in before sending. If you type a whole word of 4 or more characters from a private value, such as a first name, the part of an email address before the @, or a group of 4 to 6 digits from a phone number or ID, NymForm either uses the stand-in of the only name, email or ID it can belong to, and says so, or asks which value you meant. Shorter parts, and other fragments such as the first few letters of a name, are not detected and can be sent as typed.
Check what gets sent
Before anything is sent, What gets sent shows the request and the result of NymForm's check. Choose Show exact request to see the literal text that will be sent. You will see either Checked: no private values found or a message saying the request is blocked and where the problem is. Choose Send (available once the check passed and your key is set), or Back to change something. See What AI models see for an example.
Review and insert the result
The Formula screen shows the formula, whether it passed NymForm's formula check, a short explanation and any assumptions. Your real values are put back into the formula here, in the pane. The Insert in cell box starts with the cell the model suggested when that is outside your ranges, otherwise the first empty column to the right of your range, at the first data row. Check it, then choose Insert formula or Copy.
Insert won't write inside the range you selected, fills down only from the first data row, and asks before replacing cells that already hold values. Excel can't undo an add-in's writes, so check the target cells first.
Your first workflow
- Open
bench/workbooks/orders.xlsxand selectA1:F501. - Open NymForm, paste your key in Setup and choose Continue.
- Columns shows
Using Orders, A1:F501 · 500 rows, with Customer and Email marked private. - In Ask, keep Structure only, type
Total Amount per Region, one row per regionand choose Preview. - What gets sent shows the request and
Checked: no private values found: no names, emails or amounts. Choose Send. - The Formula screen shows the formula and
Formula check passed: allowed functions and your ranges only.Choose Insert formula.
The Log screen keeps the requests sent from this pane until you close it (the last 200), and can export them if you ask it to.