A scientific & blog plotting library built for AI agents. It teaches an agent to generate matplotlib figures in a soft-pastel, research-blog visual register — the kind of plot you see in modern ML/alignment write-ups.
FAQ
nice-figures is a Claude Code plugin with 1 hand-picked skill for content work, indexed on Flowy. Install it with the command on its page. It includes nice-figures. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
> /plugin marketplace add Mapika/nice-figures> /plugin install nice-figures@nice-figures
A scientific & blog plotting library built for AI agents. It teaches an agent to generate matplotlib figures in a soft-pastel, research-blog visual register — the kind of plot you see in modern ML/alignment write-ups. Bold sans-serif display titles, scatter overlaid with smoothed trends and shaded confidence bands, signature rounded bars, minimal axes, and ↓better badges. White background by default, so the output is conference- and paper-ready (PDFs embed Type 42 fonts, so they pass IEEE/ACM/NeurIPS font checkers).
Why agent-first matters in practice:
top_legend, plain_log_ticks, soft_colorbar, rounded_bars), and explicit common-mistakes lists, because agents do best when the right thing is the only documented thing.For Claude Code it ships as a plugin with a skill that triggers automatically; any other agent (Codex, Cursor, …) can use it via AGENTS.md and pip install git+https://github.com/Mapika/nice-figures.
Multi-panel training curves — scatter under a smoothed trend with a shaded band, minimal axes, and ↓better badges:

Grouped bars with the signature softly-rounded tops, in the warm coral/peach palette:

Kaplan/Chinchilla-style scaling laws — per-run loss curves colored by model size, tangent to the dashed compute-efficient frontier:

All three use synthetic placeholder data and are generated by assets/generate_showcase.py — run it to reproduce them.
This repo is a Claude Code plugin marketplace. Add it, then install the plugin:
/plugin marketplace add Mapika/nice-figures
/plugin install nice-figures@nice-figures
To update later:
/plugin marketplace update nice-figures
Once installed, just describe the figure you want. Claude triggers the skill on requests like:
You can also invoke it directly:
/nice-figures:nice-figures
Bring your own data (CSV or arrays) and Claude maps it onto the nearest recipe; describe a figure with no data and it generates a clearly-marked synthetic placeholder.
The style helper is a single dependency-light module, installable anywhere:
pip install git+https://github.com/Mapika/nice-figures
python -c "import soft_style"
AGENTS.md carries the agent-agnostic instructions (workflow, hard rules, the render-and-inspect loop) — point Codex/Cursor/your harness at the repo and it works without the Claude plugin machinery.
AGENTS.md # agent-agnostic instructions (non-Claude harnesses)
plugins/nice-figures/skills/nice-figures/
├── SKILL.md # the skill: when to use it, conventions, gotchas
├── scripts/soft_style.py # matplotlib style helpers (numpy + matplotlib only)
└── references/chart_recipes.md # full code for all 16 chart archetypes
tests/ # unit tests + every recipe executed end-to-end
LINE_PALETTE (blue/mustard/sage/pink) for trend lines, BAR_PALETTE (coral/peach/gray/olive) for bars, MULTILINE_PALETTE for up to 5 categorical lines, plus sequential, diverging, and ordered-gradient colormaps.rounded_bars() / rounded_hbars() give softly rounded top corners computed in display space so they stay circular at any aspect ratio.smooth_curve() and rolling_band() for trend lines with tight shaded uncertainty bands.top_legend() (legend above the axes, never on the data), plain_log_ticks(), soft_colorbar().configure_style(scale=0.75) for single-column figures; Type 42 fonts embedded in every PDF.save_figure() writes both PDF and PNG at 300 dpi.Trend-with-band, scatter + baseline, grouped bars, multi-line sweeps, heatmaps/confusion matrices, ROC/PR curves, distribution comparisons, box/violin, scaling-law fits, parity/calibration, 2D embeddings, ECDFs, forest plots, sorted horizontal bars, and Pareto fronts. Full copy-and-adapt code lives in references/chart_recipes.md.
matplotlib and numpy (the only hard dependencies of the style helper).MIT
.claude-plugin/
marketplace.json
.github/
workflows/
ci.yml
.gitignore
AGENTS.md
assets/
generate_showcase.py
showcase_grouped_bars.png
showcase_scaling.png
showcase_training_curves.png
LICENSE
plugins/
nice-figures/
.claude-plugin/
plugin.json
skills/
nice-figures/
references/
chart_recipes.md
scripts/
soft_style.py
SKILL.md
pyproject.toml
README.md
tests/
conftest.py
test_recipes.py
test_soft_style.py© 2026 Flowy · Free and open source
Built for Claude Code · Not affiliated with Anthropic