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
Server-side execution and rendering,
so agents can proof before they ship.
Backed by leading investors
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.
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.
Tested on a 250-question spreadsheet Q&A dataset, same workbooks
All the benefits of running an agent with Excel in the foreground,
with all the scalability of background operations
Pixel-perfect execution, but limited to local operations
Work at production scale with perfect execution.
Work at production scale with limited Excel operability
One interface for all spreadsheet tasks. Four engines under the hood.
Plus a purpose-built edit library for browsing and modifying workbooks, combining JavaScript with a .NET backend.
witan xlsx render
High-fidelity rendering of any cell range in your spreadsheet. Targeted, auto-scaled for vision models, with built-in pixel diffing.
witan xlsx calc
Full fidelity excel formula recalculation, with support for full, incremental and iterative calculations.
witan xlsx lint
ESLint for spreadsheets, with eleven rules that catch formula bugs recalculation is not able to see.
Accurate, lightweight, and purpose-built for agents.
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. When a user reports a visual issue, the agent reproduces it in the same rendering pipeline.
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.
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.
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. Each bug caught by lint is a debugging cycle — and the tokens it costs — that your agent doesn't have to spend.
Compatible with any spreadsheet agent: Claude Code, Codex, or custom. One binary, four commands. Install in one line and it's ready to use. Keeps your existing editing tools — Witan handles everything after the save.
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")'
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.