BioCartoon
BioCartoon is a free and open-source tool for creating biology figures with illustrations. It compiles existing open biology-focused illustration resources, along with its own illustrations, into a single database with a graphical interface for search and figure generation.
This package is the biocartoon command-line interface and MCP server, which search and download
the database from a shell, a script, or an assistant such as Claude.
Usage
Web application: app.biocartoon.com
Install Desktop application: www.biocartoon.com/download
Resources
15,335 icons and 6 templates across 8 resources.
| source | icons | templates | license |
|---|---|---|---|
| BioCartoon | 1 | 6 | CC0 |
| Bioicons | 2,793 | 0 | CC BY / CC0 / CC BY-SA / MIT / BSD |
| Health Icons | 749 | 0 | CC0 |
| NIAID NIH BioArt Source | 936 | 0 | Public Domain |
| OpenMoji | 4,495 | 0 | CC BY-SA 4.0 |
| Reactome icon library | 2,569 | 0 | CC BY 4.0 |
| SciDraw | 772 | 0 | CC BY 4.0 / CC0 |
| Servier Medical Art | 3,020 | 0 | CC BY 4.0 |
Command-Line Interface and MCP server
pip install biocartoon # or: pipx install biocartoon / uv tool install biocartoon
The package is the compiled program alone, with no Python dependencies. The first command that
needs the catalog downloads it; biocartoon sync updates it. This build searches icons; its MCP
server also lists the shared slide templates. The BioCartoon desktop editor ships a fuller
biocartoon that adds templates to search and the app command.
biocartoon search "TERM": icons and templates matching TERM, best first. With no TERM it pages through everything.--icons/--templates: only that kind--source S: icons from one collection (a code or name frombiocartoon --sources)--category C: icons in one category (a slug frombiocartoon --categories)--sql: run TERM as read-only SQL on the catalog
biocartoon get ID: everything about one icon: license, credit, PNG/SVG URLs, colour variantsbiocartoon fetch ID: download the PNG (--svgfor the SVG,--out FILE|DIR,--max-side N)biocartoon sync: download the newest published catalogbiocartoon upload FILE...: submit image files/folders to the database (approval required to merge in)biocartoon mcp: serve the same tools over MCP, mostly for agents (e.g.,claude mcp add biocartoon -- biocartoon mcp)biocartoon --version: the program's version, and when the local catalog was published and downloadedbiocartoon --sources: list icon sources forbiocartoon search --source Sbiocartoon --categories: list icon categories forbiocartoon search --category C
Run biocartoon --help for everything.
Examples
Find an icon, check its license, and download it:
$ biocartoon search mitochondria --icons --limit 2
bioart/353_641587 bioart Mitochondria (Cells and Organelles; 2084x2084) matched: title,description
bioart/101_628750 bioart Damaged Mitochondria (Cells and Organelles; 1705x1174) matched: title,tags,description
$ biocartoon get bioart/424_633913 # credit, license, PNG/SVG URLs, colour variants
$ biocartoon fetch bioart/424_633913 --svg --out ~/Desktop
$ biocartoon fetch bioart/424_633913 --max-side 512 --out neuron.png # a smaller PNG
Contribute your own illustrations (held for review before they are published):
biocartoon upload figures/ --license CC-BY-4.0 --credit "Your Name" --dry-run # check first
biocartoon upload figures/ --license CC-BY-4.0 --credit "Your Name" --category cells
Narrow a search by collection or category:
biocartoon --sources # codes: BA, BI, SV, SD, HI, RE, OM, ...
biocartoon --categories # slugs: cells, cells.cell_types, ...
biocartoon search "pyramidal neuron" --source BA # NIH BioArt only
biocartoon search neuron --source BA --source SD # BioArt or SciDraw
biocartoon search mitochondria --category cells.organelles_and_cell_components
biocartoon search --category viruses --sort az --limit 40 --offset 40 # page 2 of all viruses
biocartoon --categories --source SD # what SciDraw covers
Query the catalog with SQL (read-only):
biocartoon search --sql # the schema
biocartoon search "select license, count(*) as n from assets group by license order by n desc"
biocartoon search --sql "select id, title from assets where svg_key is not null and title like '%ribosome%'"
biocartoon search "with dendrites" --no-sql # words, even though it starts with WITH
From a script: every command takes --json, and search results come back as
{"icons": [...], "templates": [...]}:
# download the SVG of the best match that has one (Servier and uploads are PNG only)
mkdir -p icons
for t in neuron astrocyte microglia; do
id=$(biocartoon search "$t" --icons --limit 10 --json | jq -r '[.icons[] | select(.svg_url)][0].id')
biocartoon fetch "$id" --svg --out icons/
done
biocartoon get bioart/424_633913 --json | jq -r .credit # the attribution line to print
Keep the local catalog current, and connect an assistant:
biocartoon sync
claude mcp add biocartoon -- biocartoon mcp
The database schema is documented in the repository.
License
Copyright (c) 2026 Joseph Rich. The program is open source under the
BSD 2-Clause License. Every
illustration keeps its own upstream license (public domain, CC0, CC BY, CC BY-SA, ...): credit it
as its credit field says. See
NOTICE.md.
Other Links
Website: www.biocartoon.com
Database and CLI source code: github.com/josephrich98/biocartoon
Application and website source code: github.com/josephrich98/biocartoon-app
Icon SQLite database: assets.biocartoon.com/catalog/assets.sqlite.gz
Template SQLite database: assets.biocartoon.com/catalog/templates.sqlite.gz
Metadata
Release files for biocartoon 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| biocartoon-0.2.0.tar.gz | 69.5 kB | With provenance | Details for biocartoon-0.2.0.tar.gz |
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| biocartoon-0.2.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details for biocartoon-0.2.0-py3-none-win_amd64.whl |
| biocartoon-0.2.0-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details for biocartoon-0.2.0-py3-none-manylinux_2_28_aarch64.whl |
| biocartoon-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details for biocartoon-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| biocartoon-0.2.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details for biocartoon-0.2.0-py3-none-macosx_11_0_arm64.whl |
| biocartoon-0.2.0-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details for biocartoon-0.2.0-py3-none-macosx_10_12_x86_64.whl |
Total release size: 17.8 MB
Release files / biocartoon-0.2.0.tar.gz
| Download URL | biocartoon-0.2.0.tar.gz |
|---|---|
| Size | 69.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
64093721068067950ebdf6c64b7e16322dfd99b7bec3d6791721f37103f10043
|
|
BLAKE2b-256 checksum How to use checksums |
f554266a169e4968792d4bbfbd92e85241bf712524b07b4f6fae38bd5dddfd42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / biocartoon-0.2.0-py3-none-win_amd64.whl
| Download URL | biocartoon-0.2.0-py3-none-win_amd64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f6cd2dec19bfe9cc895d77a77ff259ac4eff144d4b9bb4c5bce62dde2c3ffad4
|
|
BLAKE2b-256 checksum How to use checksums |
cade446277d2833d99b319b0b4e4122524c4a7e6edf04f6099168d08de24c3be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / biocartoon-0.2.0-py3-none-manylinux_2_28_aarch64.whl
| Download URL | biocartoon-0.2.0-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
6547baf20f801222554fca8e0ca7ba7f80073851a9e1db5e72192c571197caf2
|
|
BLAKE2b-256 checksum How to use checksums |
1fc0f34f2125f45ec12b5c749dd8d4ca97bd4a89bfbb87c6fe8e6f0c07346b18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / biocartoon-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | biocartoon-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.8 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
e2260ee5a1ec97c190aca0e0204ed16700aab76b8caa65cdd95817a2e27c9b88
|
|
BLAKE2b-256 checksum How to use checksums |
bfb80c9598e87a568af8e43d99466f05c9aec9d981aeb49aee9fd2751f4acfeb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / biocartoon-0.2.0-py3-none-macosx_11_0_arm64.whl
| Download URL | biocartoon-0.2.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
384512ca5cbb3469bcfa2401ad876d3629ddfe02e501686a3b212732078b12b8
|
|
BLAKE2b-256 checksum How to use checksums |
ea5569c2405aeb2fe9b80470fc0f5acfa9a0f46213df4cb61caf295c2b0a4dba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / biocartoon-0.2.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | biocartoon-0.2.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
0433f3583025e546f894cf66dc39670cd037738eb1434f4179913609ba638dcd
|
|
BLAKE2b-256 checksum How to use checksums |
725055c31a9e95fb31deca900fee808512dff50d8f129cb5f66f0e1f7a9b9e79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logSecurity for biocartoon 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 6 files in this release have been uploaded with provenance metadata.
Attestation for biocartoon-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.