Agent Skills

Witan ships optional skill files for coding agents. They provide task-specific CLI guidance, examples, and recommended workflows.

What are skills?

Skills are markdown files that give an agent task-specific context for using a tool. A Witan skill file includes commands, parameters, return types, and workflow guidance in a format the agent can load when the task matches.

Claude Code, Codex, Deep Agents, and OpenClaw support skills or skill-like project files. Check your agent platform's documentation for exact loading behavior.

Install

npx skills add witanlabs/witan-cli

This installs one or more of the Witan skills into your agent or project

For per-platform install instructions, see the official docs for your agent:


The skills

Witan ships five skills in the witan-cli repo. The three witan-xlsx* skills are alternative front-ends to the same workbook tooling — install the one matching how your agent reaches Witan — plus one skill for presentations and one for source documents.

witan-xlsx

Workbook scripting with witan xlsx exec.

This skill covers witan xlsx exec, including reading, writing, searching, tracing, calculating, linting, and rendering workbooks. It includes guidance for:

  • Read cells, ranges, rows, and columns, including TSV variants
  • Search with text, regex, or numeric matching
  • Write values, formulas, and formatting in a single call
  • Trace formula dependencies (precedents and dependents)
  • Evaluate formulas without writing, lint, and render in one execution

View the skill file on GitHub →

witan-xlsx-excelscript

Workbook scripting with witan xlsx exec in the Office Scripts dialect.

The same read, author, what-if, and verify workflow as witan-xlsx, written in ExcelScript's function main(workbook) style. Use it for agents or teams already fluent in Office Scripts.

View the skill file on GitHub →

witan-xlsx-mcp

Workbook scripting through the Witan MCP server — no CLI install required.

The same workflow as witan-xlsx, driven through the MCP server's xlsx_exec tool with presigned upload/download for the file round-trip. Use it for agents connected to the Witan MCP server instead of running the CLI.

View the skill file on GitHub →

witan-pptx-officejs

Presentation scripting with witan pptx exec.

This skill covers witan pptx exec and witan pptx render, including Office.js-compatible scripting, deck creation, slide rendering, and Witan-only chart extensions. It includes guidance for:

  • Render PowerPoint slides to PNG
  • Create, inspect, and edit .pptx decks
  • Use PowerPoint.run, context.sync, and OfficeExtension.ClientResult
  • Create and style charts not exposed by upstream PowerPoint Office.js
  • Verify chart and slide edits with render diffs

View the skill file on GitHub →

witan-read-source

Extract text from source documents for spreadsheet workflows.

This skill covers witan read, the document extraction command for PDFs, Word docs, presentations, HTML pages, and Markdown files. It includes guidance for:

  • Extract text from PDF, DOCX, PPTX, HTML, and Markdown files
  • Navigate large documents with outline, page ranges, and line offsets
  • Read documents from local paths or URLs
  • Pipeline source data into spreadsheet population workflows

View the skill file on GitHub →


How skills work under the hood

Skill files are plain markdown with a small YAML header. The agent platform indexes them at session start, then surfaces a skill into the prompt when the user's task matches its trigger description. Two consequences worth understanding:

Skills are lazy. A skill that lives in your project but isn't relevant to the current task doesn't consume tokens. Adding Witan's skills won't slow down a task that has nothing to do with spreadsheets or presentations.

Skills are versioned with your project. Once you run npx skills add witanlabs/witan-cli, the skill files are checked into your repo. When Witan ships new commands, run the install command again to update — and review the diff like any other dependency upgrade.

Why ship skills at all?

Without a skill file, an agent usually has to discover Witan's interface by running witan --help, inspecting docs, or retrying after argument errors. Skills reduce that discovery work:

  1. Reference context. The skill puts the relevant command and API details in one place.
  2. Workflow guidance. The skills include patterns such as tracing dependents before editing a cell and using render diffs after visual changes.
  3. Versioned project state. Skill files can be reviewed and updated like other project dependencies.

Composing skills with your own

Project-specific conventions live alongside Witan's skills, not inside them. If your workbooks always have a Summary sheet driven by an Inputs sheet, write a small project skill that says so. Witan's skills will tell the agent how to read and write cells; yours tells it where and why.

A typical project skill might be 20 lines and cover:

  • Workbook conventions (sheet names, table naming, anchor cells)
  • Output expectations (file naming, where to save, what to render for review)
  • Project-specific guardrails ("never edit the Historical sheet without confirmation")

Drop it into the same .skills/ (or platform equivalent) directory alongside Witan's skills and the agent will compose them automatically.

When to skip skills

You don't strictly need the skill files to use Witan — the CLI works fine without them. Skip skills if:

  • You're scripting Witan from a non-agent context (CI, a build pipeline, a shell script). Skills target LLM agents; a shell script just reads the docs.
  • Your agent doesn't support the skills protocol. You can still paste a relevant section of the CLI Scripting reference into the system prompt manually.

For recurring agent workflows that touch spreadsheets, install the skills and review updates like any other project dependency.

Next steps