Skip to content

Sprezzature

in the broadest sense
Create and audit figures, visualizations for app and web content,
faithful to a standard of accessibility, chromatic rigor, and usability.

One minute

What the suite does, and the one thing nothing else does: it refuses to trust a figure it has not looked at. English throughout — on screen, in the voice, in the subtitles.

Ten more films, one per package →

Getting started

Sprezzature is a set of skills for Claude Code or OpenCode. Install the ones you want, then ask in plain language. The skill both makes the artifact and audits it.

1 · Install

Grab the latest release, copy the skills you want into your runtime.

VERSION=$(curl -fsSL https://api.github.com/repos/warith-harchaoui/sprezzature/releases/latest \
  | sed -n 's/.*"tag_name": *"v\([^"]*\)".*/\1/p')    # the latest release, resolved
curl -L https://github.com/warith-harchaoui/sprezzature/releases/download/v${VERSION}/sprezzature-skills-${VERSION}.tar.gz | tar xz

mkdir -p ~/.claude/skills          # OpenCode: ~/.opencode/skills
cp -r sprezzature-ui sprezzature-figures ~/.claude/skills/

Just want one tool, no agent? Each deterministic tool also ships as a standalone pip package. See Packages.

2 · Ask, in plain English

Trigger phrases route the request; the skill makes it, then audits it against the rules.

  • "make this page accessible" → sprezzature-accessibility lints the HTML and reports what to fix.
  • "make a figure of this CSV" → sprezzature-figures draws it, then audits the chart.
  • "wrap this CLI in a GUI" → sprezzature-cli-gui scaffolds a usable interface.

Full install options (checksums, OpenCode + local Ollama, upgrades) →

The tool ecosystem

Each skill's scripts also ship as a standalone package, reachable five ways: a self-contained zip, a Python library, an HTTP API, MCP tools for an agent, or the skill itself. Same implementation behind all of them.

The ten skills

What's unusual

Make and audit

Build from scratch or on an existing codebase, then audit the result against the rules.

The models can run on your machine

The text, audio and vision models could run locally if you ask for it; nothing has to leave the machine.

Opinionated graphical choices

Skills cover accessibility, colors, typography, languages, search-engine optimization (SEO), and generative-engine optimization (GEO).

Runtime-portable

Skills serve Claude Code and OpenCode or completely locally and free.

Highlights

👁️ Look at the figure before you ship it

You can proofread a sentence by reading it back. You can't do that with a chart: whether it's right lives in the pixels, not the code. So the Ralph Eyeball Loop takes whatever you made (an SVG figure, a TikZ figure, a whole web page) and renders it to an image with a deterministic tool, no model involved. Then something actually looks at it: by default the agent itself, the same one that wrote the code, or, fully offline, an optional local vision model. It catches what a code check never will: a label cut off at the edge, a legend that slid off the canvas, two nodes sitting on top of each other, colors that vanish for a colorblind reader. Fix the source, render again, look again. It's a prescribed review loop, not an autonomous critic. Everyone else aims this at web pages. We aim it at charts and diagrams too.

How the Ralph Eyeball Loop works →

📐 The figure is a real SVG, not a picture

A figure ships as carefully written scalable vector graphics (SVG). The generators emit the markup directly, each with a matching viewBox, so the graphic scales to any size without a blurry pixel and the text stays selectable. The generator writes SVG directly, so there is no separate chart-description spec to export, and the Portable Network Graphics (PNG) is only an export for places that can't take vector art. The SVG is the deliverable.

Acknowledgments

Special thanks to Audrey DEJOUX, Laurent PANTANACCE, Auguste BAUM, Julien BOYER and Jérôme GOMBERT for fruitful discussions.

Color palettes from deraison.ai/colors, shipped here as the colors skill.

The three Roboto families are bundled under the SIL Open Font License.

We also drew on the Human Interface Guidelines, Google Material Design and Laws of UX.

Frequently asked questions

What is sprezzature?

sprezzature is a suite of ten open-source Python packages, each also an agent skill for Claude Code and OpenCode, that make and then audit the craft around code: interfaces, figures, maps, colours, accessibility, captions, narration, publishing, the laws of UX and the claims a film makes. Every artifact a tool makes is checked against explicit rules before it ships.

How do I install sprezzature?

Run pip install sprezzature (Python 3.10 to 3.13): it installs all ten packages, with no extras to choose. Then sprezzature-skills --install copies the skills into ~/.claude/skills, or sprezzature-skills --install --agent opencode for OpenCode.

Do I need Claude Code or an AI agent to use it?

No: every sprezzature package also works on its own as a Python library, a command line, an HTTP API with a Docker image, and an MCP server for any MCP client; the agent skill is one of five ways in. Each package has its own pip install, listed on the packages page.

Is sprezzature free?

Yes. Every package is open source under the BSD 3-Clause licence, with no account, API key or paid tier, and the source is on GitHub.

Does my data leave my machine?

Not unless you send it somewhere: sprezzature's tools run locally. The ones that use a model (alt text, plain-language rewrites, translation, the local eyeball check) call a model served by Ollama on your own machine, transcription runs whisper.cpp locally, and the voices are synthesised locally. When you use them as skills, the agent itself follows its own provider's data policy.

What does “make and audit” mean?

Each sprezzature package both produces something (a page, a chart, a map, a caption track, a narration) and audits it, or audits what you already have, against written rules, with a JSON report and an exit code a CI job can fail on. Most audits can also apply the repairs they are sure of with --fix.

Which AI agents does it work with?

The sprezzature skills are written for Claude Code and OpenCode, and every package also runs an MCP server (for example sprezzature-figures-mcp), so any agent that speaks the Model Context Protocol can call the same tools.

How do I report a problem or contribute?

Report a sprezzature problem or propose a change by opening an issue or a pull request on GitHub; each package lives in its own repository, linked from its page on this site. A star on the repository helps others find the suite.