Deadly serious plotting tools. Also sandwiches.
Project description
botplotlib
Matplotlib has fed the scientific Python community for two decades. botplotlib is designed for a workflow that didn't exist when matplotlib was born: a human has an idea or a request, and then an AI + human team jointly creates it, iterating until both are satisfied.
- Beautiful by default — themes designed so the first render is more often the final render
- Lightweight —
blt.scatter(data, x="a", y="b")and you're done - Token-efficient — 1 line instead of 15. Fewer tokens, fewer places to go wrong
Botplotlib is also an experiment in cyborg-source. What does open-source collaboration look like when some of the collaborators are AI? We don't know but we put a bunch of ideas in GOVERNANCE.md. It is wildly over-engineered for our current contributor count.
Cyborg Social Contract
Humans and AIs contribute under the same rules.
- All contributions are cyborg — the human/machine binary is rejected
- Quality gates are structural — CI/tests/linters apply equally regardless of origin
- No moral crumple zones — fix the system, don't blame the nearest human
- Trust is active capital — earned through contribution quality, staked through vouching, lost through defection — never granted by biological status
- Provenance is transparent but not punitive — metadata for learning, not gatekeeping
- The project is the cyborg — the library itself is the human-machine hybrid
For the full architecture overview, design principles, and module map, see AGENTS.md.
Quick example
import botplotlib as blt
data = {
"layer": ["bottom bun", "lettuce", "bot", "tomato", "top bun"],
"size": [1, 1, 1, 1, 1],
}
fig = blt.bar(
data, x="layer", y="size", color="layer",
color_map={"bottom bun": "#B07830", "lettuce": "#388E3C",
"bot": "#4E79A7", "tomato": "#E53935",
"top bun": "#B07830"},
)
fig.save_svg("plot.svg")
Platform Presets
| Theme | Alias | Personality |
|---|---|---|
default |
— | general purpose, colorful, fine, whatever |
bluesky |
social |
scroll-stopping titles, fat dots for mobile thumbs |
pdf |
arxiv |
academic and restrained, everyone will think u r v smart |
print |
— | sometimes you weirdly still need grayscale |
magazine |
— | we all know which magazine it is we're just not gonna say it |
These themes were intentionally chosen to seed the project for use in open platforms and open science. Open-source fed AI and now AI needs to figure out how to feed open-source.
Colors are WCAG-compliant out of the box because accountability lives in systems.
Installation
pip install botplotlib
For PNG export support:
pip install "botplotlib[png]"
Documentation
Full docs at botplotlib.ai.
Tutorial
The interactive tutorial is a marimo notebook because marimo is another cool ai-native project and we are into it.
pip install marimo
marimo edit docs/tutorial.py
Additional examples live in examples/.
Other Stuff
Our approach to agentic engineering is heavily influenced by Simon Willison's patterns. Our governance model builds on Madeleine Clare Elish's idea of moral crumple zones, which tells us that accountability should live in systems, not in the nearest human. Finally, we are very influenced by Donna Haraway, which is a lot, but here we are.
License
CC0 1.0 Universal — apparently the AIs like you when you use this one.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file botplotlib-0.1.0.tar.gz.
File metadata
- Download URL: botplotlib-0.1.0.tar.gz
- Upload date:
- Size: 12.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad21e029c70cdc8dcdd2245e68afb3e63ac268a34dc10bdd911a4f5507802996
|
|
| MD5 |
0eddbb08c020f9a5697a43a2d562124f
|
|
| BLAKE2b-256 |
bcf011e0090e95b250c3309e969c3cda12887b6c02c84c1c733f3ee9586635ff
|
Provenance
The following attestation bundles were made for botplotlib-0.1.0.tar.gz:
Publisher:
publish.yml on migdaepp/botplotlib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
botplotlib-0.1.0.tar.gz -
Subject digest:
ad21e029c70cdc8dcdd2245e68afb3e63ac268a34dc10bdd911a4f5507802996 - Sigstore transparency entry: 998655441
- Sigstore integration time:
-
Permalink:
migdaepp/botplotlib@c35ffd5260d99dae17ee64b233fbb3ec6a72e81c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/migdaepp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c35ffd5260d99dae17ee64b233fbb3ec6a72e81c -
Trigger Event:
release
-
Statement type:
File details
Details for the file botplotlib-0.1.0-py3-none-any.whl.
File metadata
- Download URL: botplotlib-0.1.0-py3-none-any.whl
- Upload date:
- Size: 50.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bed47929ed1bf767fb80289b6ba6b98279971cfaf039dd1bb7e0d2089b88dcb
|
|
| MD5 |
ddf6444c086f4b8d7c7119351589e3cc
|
|
| BLAKE2b-256 |
cb4537f2a7f713f190fe441dbbaafde8dc24e97cb9096c5d915b204e454089f9
|
Provenance
The following attestation bundles were made for botplotlib-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on migdaepp/botplotlib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
botplotlib-0.1.0-py3-none-any.whl -
Subject digest:
8bed47929ed1bf767fb80289b6ba6b98279971cfaf039dd1bb7e0d2089b88dcb - Sigstore transparency entry: 998655470
- Sigstore integration time:
-
Permalink:
migdaepp/botplotlib@c35ffd5260d99dae17ee64b233fbb3ec6a72e81c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/migdaepp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c35ffd5260d99dae17ee64b233fbb3ec6a72e81c -
Trigger Event:
release
-
Statement type: