Keep every figure inside the paper.

Ikat turns Markdown, flowcharts, and plot data into LaTeX and PDF. Diagrams and charts stay editable as TeX-native source that uses the paper’s own fonts.

Python 3.10+RustTeX for PDF output

Document assembly

Pipeline view / source to output

AMANUSCRIPT

paper.md

# A paper
Text + citations
```mermaid
BFIGURE SOURCE

Diagram + data

Flowchart · plot values

CRUST CORE

ikat

Parse · lay out · emit

DDOCUMENT

paper.tex

TikZ + pgfplots

PDF, when TeX is installed

Markdown and editable figure inputs pass through ikat’s Rust core, which emits LaTeX with TikZ and pgfplots figures. PDF compilation uses the local TeX installation.

The parts are separated so each input and output is visible.

Not a screenshot. A source fragment.

Write the flowchart once. Ikat’s Rust emitter turns the supported Mermaid flowchart subset into TikZ, ready for the same TeX build as the paper.

INPUTMermaid source
graph TD
  md[Markdown] --> rust[Rust core]
  rust --> tikz[TikZ + pgfplots]
  tikz --> pdf[PDF]
EMITTEDRust-generated TikZ
\begin{tikzpicture}[>=Stealth,
  every node/.style={align=center,font=\small},
  box/.style={draw,rounded corners=2pt,fill=gray!8},
  dia/.style={draw,diamond,aspect=2,fill=blue!8},
  stad/.style={draw,rounded corners=10pt,fill=gray!8},
  sub/.style={draw,double,fill=gray!8}]
  \node (md) at (0.0,-0.0) [box] {Markdown};
  \node (rust) at (0.0,-2.4) [box] {Rust core};
  \node (tikz) at (0.0,-4.8) [box] {TikZ + pgfplots};
  \node (pdf) at (0.0,-7.2) [box] {PDF};
  \draw[->] (md) -- (rust);
  \draw[->] (rust) -- (tikz);
  \draw[->] (tikz) -- (pdf);
\end{tikzpicture}

A short excerpt from ikat’s actual flowchart emitter. The generated TikZ stays text, not a screenshot of a browser canvas.

Build it. Then weave a paper.

Try the current source with Python and Rust installed. The --no-pdf build writes LaTeX without TeX installed; remove that flag after adding TeX Live or TinyTeX to produce a PDF.

  • Python 3.10 or newer
  • Rust stable toolchain
  • TeX only for PDF compilation
Open the source repository

Quick start

Source build
macOS / Linux
git clone https://github.com/opticsWolf/ikat.git
cd ikat
python3 -m venv .venv
source .venv/bin/activate
python -m pip install maturin pytest
maturin develop
python -m pytest tests/
ikat build site/hello-paper.md --outdir out --no-pdf
Windows PowerShell
git clone https://github.com/opticsWolf/ikat.git
cd ikat
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install maturin pytest
maturin develop
python -m pytest tests/
ikat build site/hello-paper.md --outdir out --no-pdf

For a PDF, install a TeX distribution and rerun the last command without --no-pdf. Add mcp>=1,<2 if you also want ikat’s optional MCP server.

One pipeline. Paper-native output.

Rust owns parsing, layout, and figure code generation. Python carries document strings and drives the tools.

INPUTMarkdown
Headings, tables, citations, code, footnotes, math, and Unicode become a complete LaTeX document.
DIAGRAMSMermaid → TikZ
A strict graph TD / graph LR flowchart subset, laid out deterministically. Unsupported syntax fails fast.
PLOTSData → pgfplots
Bar and line plots are emitted directly as TeX, including whiskers, log axes, and collision-aware legend placement.
LAYOUTFloats + templates
Configure width, column span, placement, document heads, and whole-document skeletons without surrendering the source.

TeX boundary: ikat weave writes TeX without TeX installed. To compile a PDF, use a local pdflatex installation; a bibliography also needs bibtex.

One core. Ready for agents.

Use the same Rust-backed pipeline from code, a shell, or an agent connection. Add the repository skill when an LLM needs ikat-specific workflow guidance.

APIPython
Build documents and emit diagrams, plots, and TeX package requirements in process.
MCPAgent tools
Optional stdio server for weaving, TikZ/pgfplots, package checks, templates, and skeletons. PDF compilation stays in the CLI.
CLIShell
Script builds, TeX-only output, package checks, standalone figure emitters, templates, and skeletons.
SKILLAgent guidance
API, CLI, and MCP skills give surface-specific guidance; the ikat guide routes between them.

The example paper is its own demo.

The showcase manuscript exercises the pipeline with Mermaid diagrams, plots, tables, citations, math, Unicode, float controls, and templates. Its Markdown and build script are in the repository.