WITAN

Docs · Render · Calc · Lint · Pricing · Agent Skills · Install Witan

---

# Spreadsheet mastery for your agent.

Server-side execution and rendering, so agents can proof before they ship.

Backed by leading investors: Positive Sum, Angular Ventures, and LocalGlobe.

## Quick start

Paste this into your agent:

    Evaluate whether adding Witan would improve my spreadsheet
    workflow. Read https://www.witanlabs.com to understand
    what it offers, explore my codebase to understand my current
    approach, and present pros and cons with a recommendation.

    If positive, make an implementation plan.

## Code mode for spreadsheets

Your agent writes JavaScript, Witan executes it against the
workbook in a sandboxed runtime with 30+ purpose-built methods for
reading, writing, searching, and verifying spreadsheets.
Token-efficient by design, replace dozens of tool calls with a
single code execution.

→ Learn more about Exec

## Benchmark

24% more accurate & 60% faster. The purpose-built
API surface means your agent doesn't have to figure out openpyxl's
quirks, and the .NET engine handles formula recalculation with full
Excel fidelity.

| Model | Accuracy | P90 Latency |
|---|---|---|
| Witan Exec with Claude Opus 4.6 | 73% | 115s |
| Anthropic Excel Skill | 59% | 185s |
| GPT5.3 Excel Skill | 62% | 291s |

Tested on a 250-question spreadsheet Q&A dataset, same workbooks.

## Best of both worlds

All the benefits of running an agent with Excel in the foreground, with
all the scalability of background operations.

**Agent in Excel sidebar** — pixel-perfect execution, but limited to
local operations.
- Full bidirectional compatibility with Excel
- Tied to a user's machine, requiring oversight
- Only single document workflow

**Agent with Witan** — work at production scale with perfect execution.
- Full bidirectional compatibility with Excel
- Works autonomously on a server
- Multi-document workflow

**Agent with open-source tools** — work at production scale with
limited Excel operability.
- Limited Excel compatibility
- Works autonomously on a server
- Only single document workflow

## The engines powering Witan

One interface for all spreadsheet tasks. Four engines under the hood.

### The Edit Engine

A purpose-built edit library for browsing and modifying workbooks,
combining JavaScript with a .NET backend.

### witan xlsx render — The Rendering Engine

High-fidelity rendering of any cell range in your spreadsheet.
Targeted, auto-scaled for vision models, with built-in pixel diffing.
→ Read more

### witan xlsx calc — The Formula Engine

Full fidelity excel formula recalculation, with support for full,
incremental and iterative calculations.
→ Read more

### witan xlsx lint — The Linting Engine

ESLint for spreadsheets, with eleven rules that catch formula bugs
recalculation is not able to see.
→ Read more

## Why Witan?

Accurate, lightweight, and purpose-built for agents.

### What Agent Sees Is What You Get (WASIWYG).

The rendering engine that serves your agent shows exactly what end
users will see when opening in excel. Every formatting detail your
users see, your agent sees too.

### Skip LibreOffice and headless browsers

The standard spreadsheet skill from Anthropic and OpenAI use
LibreOffice headless for rendering and recalculation — a 2GB install
that renders entire sheets as PDFs, diverges from Excel's actual
appearance, and provides no diffing capability. Witan renders targeted
cell ranges at high fidelity with zero local dependencies beyond the
CLI binary.

### Token-efficient by design

Full-sheet screenshots waste vision model tokens on irrelevant cells.
witan xlsx render targets exactly the range you care about and
auto-scales resolution to stay under vision model limits. witan xlsx
calc returns structured text, not screenshots — cheaper to process
and easier to act on.

### Semantic linting saves debugging cycles

witan xlsx lint catches bugs that pass recalculation: overlapping SUM
ranges that double-count, VLOOKUPs on unsorted data, empty cells
silently coerced to zero, mixed percent and absolute values in
arithmetic.

### Plug and play

Compatible with any spreadsheet agent: Claude Code, Codex, or custom.
One binary, four commands. Install in one line and it's ready to use.

## Get started

    # Install
    curl -fsSL https://witanlabs.com/install.sh | sh

    # Try it
    $ witan xlsx exec report.xlsx --expr 'await xlsx.readCell(wb, "Summary!A1")'

No signup or API key required. Just install and start using.

All install options →

## Frequently asked questions

### Why a CLI, not an MCP server?

Agents run in sandboxes with a shell and a filesystem. A CLI is
the most direct integration: `witan xlsx exec report.xlsx --code '...'`
reads and writes files on disk, returns structured JSON to stdout. No
server to configure, no protocol adapter, no base64-encoding
multi-megabyte workbooks through a message protocol.

### Why one `exec` command instead of many?

Search, table detection, dependency tracing, formula evaluation, and
30+ other operations are methods inside exec's JavaScript runtime — not
separate CLI commands. One tool call, one round-trip. The agent writes a
script that chains whatever operations it needs in a single execution.
The four CLI commands are `exec`, `render`, `calc`, and `lint`.
Everything else lives inside exec.

### Why JavaScript?

LLMs write JavaScript more reliably than any other language. The runtime
is sandboxed — no filesystem access, no network, no imports — backed by
a .NET engine for xlsx/xml fidelity.

### Supported file formats

.xlsx (Office Open XML), .xls (Excel 97-2003), and .xlsm
(macro-enabled). Macros are preserved in the file but not executed.

## How we built Witan

We spent four months building and testing approaches to this problem — from SQLite knowledge representations to multi-agent architectures to the REPL-based approach that became Witan Exec. The engineering journey, including benchmark results, failed experiments, and the lessons that shaped the product, is documented in our research log.

---

© Witan Labs Inc. 2026
hello@witanlabs.com · API Docs · GitHub · Research · Terms · Privacy

Interested in Headless PowerPoint for your agents? Get in touch for early access

Docs Pricing
Contact us Sign up

Headless Excel
for Agents

Server-side execution and rendering,
so agents can proof before they ship.

Generate API key
View our latest changelogs →

Backed by leading investors

Positive Sum Angular Ventures LocalGlobe
Witan Exec code mode illustration

Code mode for spreadsheets

Your agent writes JavaScript, Witan executes it against the workbook in a sandboxed runtime with 30+ purpose-built methods for reading, writing, searching, and verifying spreadsheets. Token-efficient by design, replace dozens of tool calls with a single code execution.

Learn more about Exec

24% more accurate & 60% faster

The purpose-built API surface means your agent doesn't have to figure out openpyxl's quirks, and the .NET engine handles formula recalculation with full Excel fidelity.

Performance benchmark chart

Tested on a 250-question spreadsheet Q&A dataset, same workbooks

Best of both worlds

All the benefits of running an agent with Excel in the foreground,
with all the scalability of background operations

Agent in Excel sidebar

Pixel-perfect execution, but limited to local operations

  • Full bidirectional compatibility with Excel
  • Tied to a users machine, requiring oversight
  • Only single document workflow

Agent with Witan

Work at production scale with perfect execution.

  • Full bidirectional compatibility with Excel
  • Works autonomously on a server
  • Multi-document workflow

Agent with open-source tools

Work at production scale with limited Excel operability

  • Limited Excel compatibilty
  • Works autonomously on a server
  • Only single document workflow

The engines powering Witan

One interface for all spreadsheet tasks. Four engines under the hood.

Edit

The Edit Engine

Plus a purpose-built edit library for browsing and modifying workbooks, combining JavaScript with a .NET backend.

Render

witan xlsx render

The Rendering Engine

High-fidelity rendering of any cell range in your spreadsheet. Targeted, auto-scaled for vision models, with built-in pixel diffing.

Calc

witan xlsx calc

The Formula Engine

Full fidelity excel formula recalculation, with support for full, incremental and iterative calculations.

Lint

witan xlsx lint

The Linting Engine

ESLint for spreadsheets, with eleven rules that catch formula bugs recalculation is not able to see.

Why Witan?

Accurate, lightweight, and purpose-built for agents.

Get started

No signup or API key required. Just install and start using.

# Install
curl -fsSL https://witanlabs.com/install.sh | sh

# Try it
$ witan xlsx exec report.xlsx --expr 'await xlsx.readCell(wb, "Summary!A1")'
All install options

Frequently asked questions

Agents run in sandboxes with a shell and a filesystem. A CLI is the most direct integration: witan xlsx exec report.xlsx --code '...' reads and writes files on disk, returns structured JSON to stdout. No server to configure, no protocol adapter, no base64-encoding multi-megabyte workbooks through a message protocol.

Search, table detection, dependency tracing, formula evaluation, and 30+ other operations are methods inside exec's JavaScript runtime — not separate CLI commands. One tool call, one round-trip. The agent writes a script that chains whatever operations it needs in a single execution. The four CLI commands are exec, render, calc, and lint. Everything else lives inside exec.

LLMs write JavaScript more reliably than any other language. The runtime is sandboxed — no filesystem access, no network, no imports — backed by a .NET engine for xlsx/xml fidelity.

.xlsx (Office Open XML), .xls (Excel 97-2003), and .xlsm (macro-enabled). Macros are preserved in the file but not executed.