Releases: agkomyint/pentoolgg
Release list
Pentool v0.6.0 — Open packages and reproducible libraries
Pentool v0.6.0 — open packages and reproducible libraries
Pentool v0.6 packages v0.5 assets into deterministic, data-only .penpkg archives
that can be published to replaceable filesystem or static HTTP registries.
Highlights:
- deterministic ZIP archives with canonical slash paths and SHA-256 asset/package hashes;
- archive path, duplicate-entry, compressed-size, expanded-size, download-size,
redirect, timeout, and immutable-version checks; - static registry search, publication, exact installation, and automatic activation
in the project asset index; - HTTPS registry reads with a verified content-addressed cache;
- cross-platform
pentool.lock, verification, and offline restoration; - optional Ed25519 publisher keys and detached package signatures;
- explicit instance update plans, conflict reporting, transactional replacement,
recovery snapshots, and rollback; - a host-independent protocol suitable for Git, static sites, object storage,
self-hosted catalogs, mirrors, and future hosted discovery.
pentool package pack ./open-ui --output open-ui-1.0.0.penpkg
pentool package verify open-ui-1.0.0.penpkg
pentool package publish open-ui-1.0.0.penpkg --registry ./registry
pentool package install open-design/ui@1.0.0 --registry ./registry
pentool lock sync --offlineNo registry or network connection is required to open, render, export, copy, or
detach an instance because its materialized fallback remains in the .pen document.
Pentool v0.4.0 — pages and .pen composition
Pentool v0.4.0 — pages and .pen composition
Pentool v0.4.0 turns .pen into a multi-page, composable design format while
keeping every operation available without a browser.
Highlights
- Format v3 adds ordered pages with independent canvases and layer stacks.
- v1/v2 files remain readable as
page-1and upgrade without visual changes. - Page-aware CLI editing, discovery, geometry, export, and browser controls.
- Transactional
.penimport with dry runs, revision guards, backups, placement
transforms, deterministic ID prefixes, font deduplication, and canvas expansion. - Unknown source extension fields survive imports.
- Search supports compact pagination with
--offsetand--limit. - Indexed layer/object lookup improves targeted agent operations.
- A repeatable
benchmarkcommand covers parsing, validation, indexing, search,
one-object editing, SVG generation, and optional PNG rendering. - Browser object results are debounced and bounded, and
.penfiles can be
imported into the active page through the same Rust engine used by the CLI.
Examples
pentool page design.pen add mobile --name Mobile --width 390 --height 844
pentool --page mobile import design.pen icons.pen --prefix icons --at 100 80 --dry-run
pentool --page mobile search design.pen arrow --offset 0 --limit 25
pentool --page mobile export design.pen mobile.png
pentool benchmark --layers 1000 --objects 100000Imports copy editable content; they are not live links. Every committed import
creates a numbered recovery snapshot beside the destination.
Full Changelog: v0.3.0...v0.4.0
Pentool v0.2.0 — editable text, fonts & sharp edges
v0.2.0 — Editable typography and sharp edges
Release highlights and compatibility notes.
- Real editable text objects, CLI create/update/remove, and browser text tool.
- Configurable sharp/round/beveled stroke joins, flat/round/square caps, miter limit, browser controls, and geometry-preserving CLI path styling.
- Font family, size, weight, italic, color, alignment, spacing, and multiline leading.
- Bundled Atkinson Hyperlegible in four styles; installed font discovery and custom TTF/OTF embedding.
- Native browser-free text shaping, PNG rendering, live SVG with embedded fonts, and optional outlined SVG export.
- Text bounds and affine transforms, including atomic whole-layer path/text transforms and layer locks.
- Version 2 documents with version 1 reading compatibility and retained extension fields.
- Revision-token shared saves avoid browser integer/float comparison conflicts while rejecting stale edits.
- Typography demo, license attribution, and typography regression tests.
Limitations: explicit line breaks only; no rich text, automatic wrapping,
variable-font axes, or text-on-path. SVG consumer support for embedded fonts
varies; use outlined SVG when exact portability matters. Fonts must cover the
characters used; the bundled font does not cover every writing system.
Release workflow tests and builds Windows, Linux, Intel macOS, and Apple Silicon
macOS, then creates a draft release with archives and SHA256 checksums. Publishing
requires the release tag and review of the resulting CI artifacts.
Pentool v0.1.0 — agent-driven vector drawing
Pentool v0.1.0
An agent-friendly vector editor in one Rust binary. Draw with CLI commands,
export without a browser, and edit the same layered artwork visually.
Included
- Canvas creation, backgrounds, and editable
.penJSON documents. - Layer creation, ordering, visibility, locks, and whole-layer transforms.
- SVG-compatible strokes, fills, Bézier curves, and arcs.
- Shared Rust geometry for translation, rotation, scaling, anchor and handle
editing, curve splitting, bounds, and hit testing. - Native PNG and SVG export; no Node.js, browser, or server required for CLI work.
- Embedded browser editor, JSON rendering/geometry API, and explicit shared-file
save/reload with stale-save detection. - Editable eye and XYSKID examples and their exported previews.
Quick start
Download and extract the archive for your operating system, then run:
pentool serve examples/eye.penOpen http://127.0.0.1:4711. For browser-free output:
pentool export examples/eye.pen eye.png --scale 2
pentool layer-geometry examples/xyskid.pen --layer symbol translate 40 20On Windows the executable is pentool.exe; macOS/Linux users can run ./pentool
from the extracted folder or add it to PATH.
Early release limitations
This is a geometry foundation, not a complete replacement for Figma or Photoshop.
Shape boolean operations, automatic snapping/alignment, complete undo history,
and a native desktop window are not included. Browser synchronization is explicit.
Transforms preserve stroke width, and SVG arcs become Bézier approximations when
edited. Binaries are not code-signed.