# evolus/pencil: an Electron wireframing tool for teams that want files, not subscriptions

> Pencil V3 is a GPL-2.0 diagramming and GUI prototyping application built on Electron, and its .epz documents are plain zip archives. Here is how it installs, what the V3 rewrite actually changed, and where it stops being the right tool.

**evolus/pencil** — The Pencil Project's unique mission is to build a free and opensource tool for making diagrams and GUI prototyping that everyone can use. 

- Repository: https://github.com/evolus/pencil
- Website: http://pencil.evolus.vn
- Stars: 9,871 · Forks: 792
- Language: JavaScript
- License: GPL-2.0
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/evolus-pencil

## What Pencil V3 solves, and who it is aimed at

Pencil is a desktop application for drawing diagrams and mocking up graphical user interfaces. The project's stated mission is to build a free and open source tool for making diagrams and GUI prototyping that everyone can use. That framing matters, because the practical alternative for most people doing this work is a commercial wireframing product with a per-seat licence and a cloud account.

The audience is narrower than "everyone". The README documents a source build: clone the repository, check out the development branch, run npm install, run npm start. Someone who wants a double-click installer is not the primary reader of that page, although the package.json build configuration does define deb, rpm and tar.gz targets for Linux, a dmg for macOS and an nsis installer for Windows, and the README points Arch and Gentoo users at distro packages. The person this fits is an engineer or designer who wants an offline tool, a document they can keep in version control, and no account boundary between them and their own files.

The V3 rewrite is the part worth understanding before you download anything. The README describes it as a rewrite aimed at fixing major performance and scalability issues, and lists the changes: Electron instead of Mozilla XULRunner, a zip-based file format, a page management mechanism that reduces memory use on large documents, a tree model for pages, embedded custom fonts, revised printing and PDF export, and a new UI approach.

## Electron runtime, zip documents and the page tree

The architectural shift from Mozilla XULRunner to Electron is the decision everything else hangs on. The README gives two reasons: the source becomes easier for developers to work with in a Node-based environment, and XULRunner is outdated. The cost is that Pencil now inherits Electron's release treadmill. package.json pins electron at 16.0.0 and electron-builder at 23.3.3, and lists electron-rebuild as a dev dependency. Electron 16 is old, and that pin is the first thing to check if you are building on a current OS.

The file format change is the more interesting one for anyone who has to archive work. Pencil V3 documents use the .epz extension, and the README describes the format as zip-based, introduced to support large documents and better embedding of external bitmaps and resources. A zip container means a document is not an opaque binary: you can open it with standard archive tooling and see what is inside, which is a meaningful difference from a proprietary single-file format. Custom fonts can be embedded in the same container, so a document can carry its typography rather than depending on what the viewer has installed.

The page management rewrite addresses a real failure mode of the earlier version: memory growth on large documents. The README states that the new mechanism dramatically reduces memory usage for large documents, and that pages can now be structured into a tree-like model. A tree is the right shape for a prototype with many screens, but it is also a structural commitment. If your existing documents assume a flat page list, the tree model is a migration question the README does not answer.

## Installing Pencil from the development branch

The README's setup path targets the development branch, not master. It says to clone the repository, make sure you are on nodejs 5 or later, and then check out development. Note the parenthetical in the README: Pencil development only needs npm for package management, and the Node runtime is not required. That is because Electron ships its own runtime.

Start by cloning and switching branches:

```bash
$ git clone https://github.com/evolus/pencil.git
$ cd pencil
$ git checkout development
```

Then install dependencies and launch. The README states that npm start uses a prebuilt version of Electron, so you should see the Pencil window rather than a build step:

```bash
$ npm install
$ npm start
```

If you would rather not build from source, the supported-platforms section lists packages. Arch Linux users are pointed at the pencil package on the Arch User Repository, and Gentoo users at media-gfx/evoluspencil. The package.json build block defines deb, rpm and tar.gz targets under linux, a dmg target for macOS arm64, and an nsis target for Windows with perMachine set to true and allowToChangeInstallationDirectory enabled.

Check the platform list before you start. macOS support is limited to 64-bit 10.9 and later. Windows 7 and later are supported, and the README states plainly that older operating systems do not work. On Linux, the tested distributions are Ubuntu 12.04 and later, Fedora 21 and later, and Debian 8 and later.

## Where Pencil is the wrong tool

The README is honest about the state of V3, and that honesty is the main limitation. It says the new version is under heavy development, with GA builds expected in June. The release list does not read like a project shipping on a schedule: v3.1.1 is dated 2023-01-01, v3.1.0 is dated 2019-10-19, and v3.0.4 goes back to 2017-06-28. That gap between the README's development language and the release history is the thing to weigh, not the feature list.

Pencil is also a single-user desktop tool. Nothing in the README describes real-time collaboration, a hosted review surface, or comment threads on a prototype. If your process depends on a stakeholder opening a link and leaving feedback, this is not that product, and no amount of local file format quality substitutes for it.

The Electron pin is a second practical boundary. With electron at 16.0.0 in devDependencies, building on a modern toolchain may require work the README does not cover. And the README does not document rollback, upgrade paths between V3 releases, or how a document written by an older Pencil opens in a newer one. If you are migrating a library of existing files, that silence is a risk you are accepting, not one you have measured.

Finally, the README's platform list is a real constraint rather than a formality. macOS 10.9 is a 2013 release. If you are on an older Windows machine, the README says the application does not work there at all.

## How Pencil differs from draw.io and Figma

The closest comparison in kind is draw.io (also distributed as diagrams.net), which is a browser-based diagramming tool that can also run as a desktop application. The difference in approach is where the document lives. draw.io's default workflow is a web session with cloud or local file storage, and its desktop build wraps the same web application. Pencil is an Electron desktop application whose document is a .epz zip container on your disk. If your requirement is "no browser, no account, file on disk", Pencil's model is the more direct fit; if your requirement is "send a link to someone", draw.io's is.

Figma is a different category again. It is a hosted design tool built around multiplayer editing, and its value comes from the collaboration layer rather than the drawing primitives. Comparing Pencil to Figma on features misses the point: the trade is hosted collaboration and a subscription against a local, GPL-2.0 application you install yourself. Pencil's README does not claim to compete on collaboration, and it should not be read as doing so.

A third reference point is the older Pencil itself. The V3 rewrite is not an incremental release; the README calls it a rewrite, and the runtime, file format, page model and UI all changed. Anyone with V2 documents is effectively evaluating a migration, and the README does not describe one.

## Licence, maintenance and what an upgrade costs

Pencil is licensed GPL-2.0. For most users this changes nothing: you can install it, use it, and distribute it under the terms of that licence. It matters if you plan to embed Pencil in a commercial product or link it into proprietary code, because GPL-2.0 carries copyleft obligations that a permissive licence does not. That is a question for your own legal review, not something the README settles.

The repository is not archived, and the last push was on 2026-06-02. That is recent activity in the repository even though the newest release listed is from 2023. The distinction is worth holding onto: commits on the default branch and tagged releases are different signals, and the release history is the one that tells you what a user can actually download.

Upgrade cost is the weakest-documented area. The README does not describe how to move a document between V3 releases, whether the .epz format is versioned, or what happens when a newer build opens an older file. The build configuration includes electronDownload with a cache directory set to .electron-cache, which suggests the build fetches Electron locally, but that is a build detail rather than an upgrade policy. If you standardise on Pencil, pin a release, keep the .epz files in version control so you can diff and revert them as archives, and treat any build from the development branch as a separate artefact from the tagged releases.

## Conclusion

Adopt Pencil if you need a free, offline wireframing tool whose documents you can inspect as zip archives, and if you are comfortable building from the development branch with npm install and npm start. Do not adopt it if you need a vendor support contract, a hosted collaboration surface, or a release cadence you can plan around: the most recent release listed is v3.1.1 from 2023-01-01, and the README still describes V3 as under heavy development. Before committing, verify that your OS is on the supported list, that the .epz format opens in your archive tool of choice, and that the Electron version pinned in package.json builds on your machine.

## FAQ

### How do I install evolus/pencil from source?

Clone the repository, check out the development branch, run npm install, then run npm start. The README states that npm start uses a prebuilt version of Electron, so no separate Electron install is needed, and that development requires nodejs 5 or later.

### Which operating systems does evolus/pencil support?

The README lists 64-bit macOS 10.9 and later, Windows 7 and later, and on Linux Ubuntu 12.04 and later, Fedora 21 and later and Debian 8 and later. It states that older operating systems are not supported and do not work.

### What file format does evolus/pencil use for documents?

Pencil V3 uses a zip-based format with the .epz extension, introduced to support large documents and better embedding of external bitmaps and resources. Custom fonts can be embedded in the same document.

### Is evolus/pencil still maintained?

The repository is not archived and the last push was on 2026-06-02, so there is recent activity on the default branch. The newest release listed is v3.1.1 from 2023-01-01, and the README describes V3 as under heavy development.

### What changed in Pencil V3 compared with the earlier version?

The README describes V3 as a rewrite that moves the runtime from Mozilla XULRunner to Electron, introduces a zip-based file format, adds a page management mechanism that reduces memory usage on large documents, structures pages as a tree, and adds embedded custom fonts plus revised printing and PDF export.

## Sources

- [evolus/pencil on GitHub](https://github.com/evolus/pencil)
- [License: GPL-2.0](https://github.com/evolus/pencil/blob/master/LICENSE)
- [Project website](http://pencil.evolus.vn)
- [README](https://github.com/evolus/pencil/blob/master/README.md)
- [Releases](https://github.com/evolus/pencil/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/evolus-pencil
