Skip to main content

draw

Local-first, sketch-style drawing tool. Excalidraw-inspired, built on Rust with a vanilla JS frontend.

Single binary. No cloud. Your drawings live in ~/.config/draw/drawings/.

Features

  • 9 tools: Select, Rectangle, Ellipse, Diamond, Line, Arrow, Pen (freedraw), Text, Eraser
  • Sketch-style fills: hachure (diagonal lines), cross-hatch, solid, none
  • Full interactions: drag, resize, multi-select, rubber band, pan (scroll/space+drag), zoom (ctrl+scroll)
  • Undo/redo: all operations, including batched multi-element changes
  • Copy/paste/duplicate with proper ID remapping
  • Z-ordering: bring to front/back/forward/backward
  • Styles: stroke color/width/dash, fill color/pattern/density, opacity, font
  • Export: SVG and PNG
  • Document management: auto-save, dirty indicator, rename, list
  • Desktop app: native window via webview (same UI, no browser needed)
  • Python bindings: import dkdc_draw
  • Keyboard-driven: full shortcut set, ? for help overlay

Install

From source (Rust)

cargo install dkdc-draw --features webapp

From source (Python)

uv tool install dkdc-draw

Development

bin/setup    # install dependencies
bin/install  # build and install CLI

Usage

draw --webapp       # launch web UI
draw --app          # launch desktop app
draw new [name]     # create new drawing
draw open <file>    # open .draw.json file
draw list           # list saved drawings
draw export-svg <file> [-o output.svg]
draw export-png <file> [-o output.png] [--scale 2.0]

Python

import dkdc_draw

doc = dkdc_draw.new_document("sketch")
dkdc_draw.save_document(doc, "sketch.draw.json")
svg = dkdc_draw.export_svg(doc)

Keyboard shortcuts

Key Action
V Select
R Rectangle
O Ellipse
D Diamond
L Line
A Arrow
P Pen (freedraw)
T Text
E Eraser
G Toggle grid snap
? Help overlay
Ctrl+Z Undo
Ctrl+Shift+Z Redo
Ctrl+S Save
Ctrl+A Select all
Ctrl+D Duplicate
Delete Delete selected
] / [ Bring to front / Send to back

Architecture

crates/
  draw-core/     Document model, serialization, SVG/PNG export, tiny-skia renderer
  draw-cli/      CLI binary (clap)
  draw-webapp/   Axum web server (port 1213) + embedded vanilla JS frontend
  draw-app/      Desktop app (wry webview)
  draw-wasm/     WASM bindings for the renderer
  draw-py/       PyO3 Python bindings

Development

bin/build    # build all (Rust + Python)
bin/check    # run all checks (format, lint, test)
bin/format   # format all code
bin/test     # run all tests

License

MIT

Release files for dkdc-draw 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dkdc-draw 0.2.1
File Size Uploaded
dkdc_draw-0.2.1.tar.gz 332.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for dkdc-draw 0.2.1
File
dkdc_draw-0.2.1-cp311-abi3-manylinux_2_39_x86_64.whl CPython 3.11 abi3 Linux glibc 2.39+ x86-64 Details
dkdc_draw-0.2.1-cp311-abi3-manylinux_2_39_aarch64.whl CPython 3.11 abi3 Linux glibc 2.39+ ARM64 Details
dkdc_draw-0.2.1-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
dkdc_draw-0.2.1-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details

Total release size: 168.5 MB

Release files / dkdc_draw-0.2.1.tar.gz

Download URL dkdc_draw-0.2.1.tar.gz
Size 332.0 kB
Tags Source
SHA-256 checksum
How to use checksums
52276aacbfaa856d9b3af3cd68aa2388a75dffa79ef20426d5426e5caa3053a8
BLAKE2b-256 checksum
How to use checksums
d9b5eb53b2d425205865e99c1e252aa91b33a36f78fdd7f4f6dcccedeb98f1f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 7, 2026.

Transparency log

Release files / dkdc_draw-0.2.1-cp311-abi3-manylinux_2_39_x86_64.whl

Download URL dkdc_draw-0.2.1-cp311-abi3-manylinux_2_39_x86_64.whl
Size 81.0 MB
Tags CPython 3.11 Linux glibc 2.39+ x86-64 abi3
SHA-256 checksum
How to use checksums
26985717ab343b0d92b7b4cc8b31a53feae5bbc097da92259e53ebc03cae2e02
BLAKE2b-256 checksum
How to use checksums
9479031b089983ac984d1537ed9e79dd543496a406e763137f96799a9ebc11c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 7, 2026.

Transparency log

Release files / dkdc_draw-0.2.1-cp311-abi3-manylinux_2_39_aarch64.whl

Download URL dkdc_draw-0.2.1-cp311-abi3-manylinux_2_39_aarch64.whl
Size 80.2 MB
Tags CPython 3.11 Linux glibc 2.39+ ARM64 abi3
SHA-256 checksum
How to use checksums
f2712b05d922c801d8290cec26e10c77ef8b7c6ab15cb5c6cf6c410fd407d18d
BLAKE2b-256 checksum
How to use checksums
c599b3919dc7cf6dbe6e0131a3717c31dcc34e7b3699f0d5eea9633a2812682a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 7, 2026.

Transparency log

Release files / dkdc_draw-0.2.1-cp311-abi3-macosx_11_0_arm64.whl

Download URL dkdc_draw-0.2.1-cp311-abi3-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c86bd8250c68fd38006d8a4d9a1ac83330f089ccf5158ba32402f8558cb2e388
BLAKE2b-256 checksum
How to use checksums
aea719c6ebc8867c63cd4125bba21414bc6aeee3ca8d3ce61d83e282a595d7e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 7, 2026.

Transparency log

Release files / dkdc_draw-0.2.1-cp311-abi3-macosx_10_12_x86_64.whl

Download URL dkdc_draw-0.2.1-cp311-abi3-macosx_10_12_x86_64.whl
Size 3.5 MB
Tags CPython 3.11 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
2c4d9039c12f793ab5739752025df7bd633268408afdf1489fea445d37210576
BLAKE2b-256 checksum
How to use checksums
33bf36914376252fe7dd34c91f3500c0abc3295456ff26115b332ea5bbbfd8eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

5 release files

0.2.0

5 release files

0.1.1

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page