Skip to main content

Python library for generating Excalidraw scenes

Project description

Excaligen: Excalidraw File Generator ✨

License: MIT

Python to Excalidraw

Excaligen is a Python library to generate Excalidraw files. If you wish to automate creating visualizations in Excalidraw style, this library is for you. It is lightweight and has no external dependencies.

Why This Library?

Excalidraw is an amazing tool for sketching diagrams and visualizing ideas. However, creating diagrams programmatically isn't fully supported out of the box. This library bridges that gap, allowing you to generate Excalidraw-compatible JSON files with Python code.

Features 🚀

  • Generate Excalidraw files using Python — add shapes, text, images, and more.
  • Full Customization: Control position, size, colors, opacity, and styles.
  • Image Support: Embed SVG, PNG, and JPEG images directly into your diagrams.
  • Group and Frame Elements: Organize your diagrams better.
  • Export to Excalidraw: Generate JSON files ready to be imported into Excalidraw.

Requirements 🛠️

Python 3.12+

How to use 💡

Excaligen exposes a fluent API, using a builder pattern. Example:

from excaligen.SceneBuilder import SceneBuilder

scene = SceneBuilder()
central_topic = scene.ellipse('Central topic').center(0, 0)
subtopic = scene.rectangle('Subtopic').center(350, 100)
scene.arrow('points to').bind(central_topic, subtopic)

scene.save('binding.excalidraw')

The code above creates a simple diagram with a central topic and subtopic, connected by an arrow.

Binding

Documentation

Please refer to the detailed documentation for more information:

Documentation

What you can build 🏗️

Here are some examples:

Mind Map

Workflows

Pie Chart

Options

Developed by Milan Piskla with 💙 for connecting code and creativity.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

excaligen-0.11.14.tar.gz (703.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

excaligen-0.11.14-py3-none-any.whl (62.0 kB view details)

Uploaded Python 3

File details

Details for the file excaligen-0.11.14.tar.gz.

File metadata

  • Download URL: excaligen-0.11.14.tar.gz
  • Upload date:
  • Size: 703.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for excaligen-0.11.14.tar.gz
Algorithm Hash digest
SHA256 51438d7d43d84f722c65ff8ec6be0c877eea21d2020938adf65c061580bdb5fd
MD5 e148b8e28fdea6423335555d02897e31
BLAKE2b-256 22ce2665fcfd32140228ce7d47778c2ae5647d7e154a8609cd3775bebc80176f

See more details on using hashes here.

Provenance

The following attestation bundles were made for excaligen-0.11.14.tar.gz:

Publisher: publish.yml on milanpiskla/excaligen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file excaligen-0.11.14-py3-none-any.whl.

File metadata

  • Download URL: excaligen-0.11.14-py3-none-any.whl
  • Upload date:
  • Size: 62.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for excaligen-0.11.14-py3-none-any.whl
Algorithm Hash digest
SHA256 ca3da772eff2a4b47ca9e2fad7a35175ac3b305f342d7b3d57f4fa9339d15244
MD5 dbb946a7f50b8f04844a68395f292851
BLAKE2b-256 5e36293e49a3546fb75ea8dd125069c1b27abe1f4183eb0a0da8e2e78de73bd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for excaligen-0.11.14-py3-none-any.whl:

Publisher: publish.yml on milanpiskla/excaligen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page