Desktop builds from every branch. Check the branch and result, expand any commit notes, then choose a download.
Filters search the full history. Enter an exact branch name, or click a branch below.
About these downloads
Choose notarized macOS builds when available. Signed builds may still be awaiting notarization. Downloads are ZIP archives, retained for 14 days. Only installers uploaded after October 2, 2026 at 16:37 UTC are public. A failed build can still have a usable installer from a successful packaging job.
PR, commit, and log links open GitHub and may require repository access. Notes are the commit author's description.
Arrow and the Claude drawing prompt only knew the canvas size, so a 24 by 24 icon came out with the fine strokes and details of a large illustration, which looked pale at that size. When the long side is under 96 pixels they are now told the size it will be shown at and asked for strokes about 2 pixels wide, few details and clear shapes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Merge pull request #11 from selalipop/claude/image-daily-limit
Running out of the day's image generations used to report the same "busy, try again shortly" message as having too many generations in flight, so agents kept retrying for something that only clears after midnight UTC. The two refusals are now told apart, the daily one gets its own message and its own outcome in the generation analytics, and the daily limit can be set with IMAGE_GENERATION_DAILY_LIMIT (still 100 by default).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Merge pull request #10 from selalipop/claude/image-generation
Main dropped its JPEG orientation reader once display copies started setting an
image's size, so the timing record now reads a generated JPEG's size from its
frame header itself. A pixel count doesn't depend on which way a photo is turned.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Merge pull request #9 from selalipop/claude/dra-355-add-artboards
On a design page that already had artboards, nothing in the toolbar
added another one; the only ways were duplicating one or asking an
agent. The tool dock now starts with an Artboard tool, in the spirit of
Figma's Frame tool. Clicking it adds a blank Desktop artboard, and its
menu offers Phone, Tablet and Desktop at the sizes the linked view
dialog already uses. A does the same as clicking it, and is listed in
the keyboard shortcuts.
Each new artboard is a new, empty design of its own, placed to the
right of the page's others and selected, with the view only scrolling
if it landed out of sight. Canvas pages keep their own Artboard tool,
which places existing artboards.
An Electron test walks through the tool, its menu and key, and then
removes the file's last page and adds an artboard to the empty page
that replaces it, undoing back to where it started.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Merge pull request #8 from selalipop/dev/dra-352-drag-a-sticky-note-off-the-toolbar-onto-a-canvas-page
Listing a file's image intakes stopped at the first record it couldn't read.
Three intakes saved before intakes recorded whether an image was uploaded or
generated were enough to make generating, listing and placing images fail
everywhere in that file.
A record that can't be read is now left out of the list and left as it is
on disk, together with its source, which the listing's tidy-up no longer
treats as unneeded. The rest of the file's images carry on as normal, and
asking for that one intake by its id still says it can't be read.
DRA-356
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Merge pull request #6 from selalipop/claude/images-and-starter
Electron chooses the Linux keyring by looking at which desktop it's running on.
The dev launcher passed only a short list of settings through to the app, and
the desktop wasn't one of them. Electron then fell back to storing secrets as
plain text, which Draftly refuses to use, so a sign-in lived only in memory and
was gone after every restart.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Place a late canvas image where it was dropped, without disturbing the person
An image the window can't draw itself, HEIC most of all, is placed on a
canvas page only once its upload lands. It was placed straight away at that
moment, on whatever page was open, selecting it and folding into whatever
the person was doing, a drag included.
It now waits for the canvas to be at rest, goes on the page it was dropped
on as a step of its own, and is only selected if the person is still on
that page with the same selection. The camera never moves. If it can't be
placed, because the page is gone or full, the person is told it's waiting
in Images.
DRA-347
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Let people download an image exactly as it was added
Now that Draftly keeps the bytes people add, they can have them back. The
backend serves an image's original at /files/<id>/images/<sha256>/original to
anyone who can read the file, as an attachment under the name it was first
added with, and locked down the same way as display copies so an SVG opened
on its own can't run anything.
In the desktop, "Download original" sits in the Images panel beside Replace
and Place, and in the image section of the inspector. Main asks where to
save, fetches the original with the account's own credentials, and checks it
is exactly the image the layer names before writing it.
DRA-347
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Drag a sticky note, text, frame or shape off a canvas page's tool dock to place it (DRA-352)
Pressing the Sticky note, Text, Frame or Shapes button and moving off the
dock now turns into that item following the pointer, and letting go places
it where it was dropped, as in FigJam. A dropped sticky or text box is ready
to type into straight away. Letting go back over the dock, or over anything
else that isn't the canvas, such as a sidebar, takes it back and adds
nothing. A plain click still just picks the tool, and the pen, highlighter,
arrow and line stay click only since they wait for a stroke.
The item is made by tldraw's own drag-from-toolbar helper, so it is one undo
step like any other canvas gesture. The dock's buttons gain an optional drag
that design pages don't use.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Bundle Newsreader, and stop font size limits getting in the way
Draftly now ships Newsreader, a serif with real italics and optical
sizes, alongside Inter, DM Sans and Manrope. It loads the optical-size
files, since Newsreader's weight-only files pin every size to the text
cut and make headlines look heavy.
The limits on bundled font files were small enough to refuse a family
with a few subsets. They're now generous: 64 MB in all, a thousand files,
and a megabyte for each stylesheet and license.
The web viewer doesn't supply Newsreader yet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Open Draftly's extension in Claude Desktop on Linux too
Linux has nothing set to open extension files, and dragging one into
Claude didn't install it. Claude offers to install an extension file it
is started with, and passes it on to the copy already open, so Draftly
now starts Claude with the file. If Claude can't be reached, the file is
shown in its folder with a pointer to Claude's Extensions settings.
https://linear.app/draftlyapp/issue/DRA-346
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude Desktop now appears in Connect an agent. Connecting builds
Draftly's extension with the key already inside, saves it in Draftly's
own folder, and opens it so Claude offers to install it. On Linux,
where Claude doesn't open extension files, Draftly shows the file so it
can be dragged into Claude's Extensions settings. Once it's installed,
Claude Desktop shows as connected, and as needing an update if the key
changes.
The extension is built with the app, so the separate pack script is
gone.
https://linear.app/draftlyapp/issue/DRA-346
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Let Claude Desktop use Draftly through a desktop extension
Claude Desktop's chat can't reach Draftly's agent connection: its custom
connectors connect from Anthropic's servers, and it starts local servers
itself, talking to them over stdin and stdout. The extension is a thin
bridge that passes messages unchanged between the two. It asks for the
Draftly key once at install, which Claude keeps as a sensitive setting.
Build it with `pnpm --filter @draftly/desktop mcpb`.
https://linear.app/draftlyapp/issue/DRA-346
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No public downloads available for this build.
Merge pull request #5 from selalipop/claude/dra-345-claude-desktop-setup