TikZ for paper diagrams, without hand-writing TikZ — copyable icons, editable templates, and a Claude Code skill.
> /plugin marketplace add opentikz/opentikz> /plugin install opentikz@opentikz
More than an AI-agent skill for LaTeX TikZ figures.
Website · Browse · Templates · Icons · Examples · Quick start · Contributing
OpenTikZ is the "Flaticon for academic TikZ" — conceptual/overview figures (system block diagrams, neural-network architectures, pipelines, flowcharts) for your papers, made fast. Four ways to use it:
.tex (or download SVG/PNG) and \input it.Use it with your AI agent (recommended). Install the Claude Code plugin — run these as two separate Claude Code messages:
/plugin marketplace add https://github.com/opentikz/opentikz
/plugin install opentikz@opentikz
Then describe the figure or edit you want
edit_contract, and compiles it before
handing it back. Invoke it as /opentikz:using-opentikz.Other agents (Codex, Cursor, Gemini CLI…). git clone this repo and tell the
agent to use skills/using-opentikz/SKILL.md, or just point a GitHub-reading agent
at the repo URL.
Prefer no AI? Browse the gallery, copy a figure's .tex, and paste
it in — every file is \documentclass{standalone} and compiles as-is.
Why TikZ at all? A TikZ figure is source code, not an image:
$\mathbf{W}x$), and
\ref/\cite as the document, so the figure looks part of the paper.Why not just ask ChatGPT for TikZ directly? You can — but raw LLM TikZ tends to fight you. OpenTikZ anchors the edit to a real, parametric template:
| What you care about | Raw LLM TikZ | OpenTikZ + skill |
|---|---|---|
| Compiles first try | Often not | Yes, standalone |
| Packages / macros | Sometimes invented | Real, declared in requires |
| Colors | Random hex | Shared palette |
| Re-editing later | Re-describe everything | Stable node names |
| AI guidance | None | Each template ships an edit_contract |
Because every template is parametric, palette-correct, and carries an
edit_contract, an agent edits it accurately and fast instead of
hand-writing TikZ that may not compile.
Starting from templates/encoder-decoder/, tell
Claude Code:
"add a cross-attention block and make it blue"
Guided by the template's edit_contract — using the shared palette and the
template's stable node names — it adds:
% cross-attention block (decoder attends to encoder)
\node[draw=otblue!80!black, fill=otblue!18, rounded corners=2pt,
minimum width=\trapW cm, minimum height=0.7cm]
(xattn) at (\xdC,\bh+0.9) {\sffamily\small Cross-Attn};
\draw[flow, draw=otblue] (enc) to[bend left=20] (xattn);
\draw[flow, draw=otblue] (xattn) -- (dec);
…and it compiles standalone, first try.
A taste of the library below — every preview is rendered from the committed .tex
source (no mockups). The full, searchable catalog with copy-to-clipboard lives on
the website; or browse examples/,
templates/, and icons/ directly.
edit_contract)…and more — system block diagrams, flowcharts, ResNet blocks, distributed
training, inference serving. See templates/.
…and many more across systems/, ml/, and brands/ (41 tool/platform logos — trademark notes in icons/brands/README.md). Previews are transparent SVGs and read best on a light background; the live website renders them on paper-white tiles.
Three layers, plus the skill that ties them together:
icons/ — atomic, single-concept TikZ elements; each compiles standalone
and is independently copyable.templates/ — complete, editable conceptual figures (the core value); each
carries an edit_contract in its meta.json describing how to edit it safely.examples/ — paper-grade figures combining icons + templates.skills/using-opentikz/ — the one repo-wide skill that takes an AI agent
from a request to a finished figure (discover → edit → verify), backed by the
per-template edit_contracts and the reference/ palette/layout material.icons/<domain>/<name>/ <name>.tex + <name>.meta.json + <name>.svg
templates/<name>/ template.tex + template.meta.json (+ edit_contract) + preview.svg
examples/<name>/ paper-grade figures combining icons + templates
skills/using-opentikz/ the one repo-wide skill (SKILL.md)
reference/ color-palettes/, annotations/, layout/
tools/ build_catalog.py, render_preview.py, build_site.py, validate.py
Rule of thumb: open-ended → Discussions, closeable → Issues.
Want to add a figure or fix one? See CONTRIBUTING.md for the
format rules and docs/DESIGN_GUIDE.md for the design
guide. The toolchain (all stdlib + an optional LaTeX backend):
python3 -m pip install -r requirements.txt # installs jsonschema
python3 tools/validate.py # validate metadata + compile .tex
python3 tools/build_catalog.py # regenerate catalog.json (never hand-edit it)
python3 tools/render_preview.py <item> # render a trimmed .svg preview
python3 tools/build_site.py # build the static site/ locally
validate.py and render_preview.py need a LaTeX toolchain (latexmk) plus an
SVG backend (dvisvgm, or pdf2svg + pdfcrop); without LaTeX, validate.py
still checks metadata and skips the compile. The site (opentikz.org)
deploys automatically from catalog.json + committed previews on every push to
main via .github/workflows/pages.yml.
Content is CC0, so a citation is never required — but if OpenTikZ saved you time,
it is appreciated. Use the "Cite this repository" button on GitHub (powered by
CITATION.cff), or the BibTeX below:
@misc{opentikz,
title = {{OpenTikZ}: a TikZ resource library for academic conceptual diagrams},
author = {{OpenTikZ contributors}},
year = {2026},
howpublished = {\url{https://opentikz.org}},
note = {Content licensed CC0 1.0}
}
LICENSE-CODE..tex figures and previews): CC0 1.0 — see
LICENSE-CONTENT.By contributing graphic content you agree to release it under CC0 1.0.
opentikz is a Claude Code plugin with 1 hand-picked skill, indexed on Flowy in the Writing category. Install it with the command on its page. It includes using-opentikz. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it