Softwareembroiderysvgbluetoothrustopen source
ZigZag, a free open-source embroidery editor for Mac and Windows, turns SVG art into machine stitches and sends them over Bluetooth
Built in Rust under the Apache-2.0 license, it leaves out fill that later shapes would cover and routes travel stitches where nobody sees them, so a design drawn in Illustrator comes out of the machine without the usual cleanup.

An embroidery machine only understands stitches, so every logo has to be translated from shapes into thousands of needle moves before the thread touches fabric. ZigZag does that translation from SVG paths, the same kind of vector shapes Illustrator draws. The README calls it “a visual embroidery editor built in Rust for performance” and puts the workflow in one line: “Draw in Illustrator, draw in ZigZag, or let an agent draw.”
The stitch menu has 11 types: Fill (tatami), Satin, Run, Contour, Blanket, Appliqué, Manual, Meander, Ripple, Cross-stitch and Tartan. Files come out as PES, DST, EXP, JEF and VP3, plus PEC, the Skitch’s own PEN format and an HTML production worksheet. PES, PEC, DST, EXP and JEF can also be read back in, but VP3 is write-only, so a VP3 you export is a one-way trip (no take-backs, like a tattoo).
The part that separates a stitch plan from a fancy trace is what it leaves out. With “Remove overlaps” on, the README says “fill hidden under later objects isn’t sewn (keeps 0.5 mm of overlap).” That means a red circle sitting under a blue star doesn’t get sewn all the way through, which keeps the patch from turning into a bulletproof vest.
Travel stitches get the same treatment, because a needle that has to hop from one letter to the next leaves thread in between. The planner works so that “travel stitches stay out of sight”: it sews straight across where a straight line stays inside the fill, and otherwise routes around the inside of the outline, or through the fill or under later objects. It trims the thread only when none of that works, with travel up to 50 mm. A document-level Connect bar lets you sew across small gaps with running stitches instead of cutting, so there are fewer trims and fewer tails to snip by hand.
The Bluetooth part targets a Brother Skitch PP1. ZigZag sends designs to it over Bluetooth LE, and the app’s Skitch window runs the whole job “like a slicer’s device page follows a print.” The README says it was “Tested on a real Brother Skitch (PP1),” and it also notes that the Skitch protocol was reverse-engineered, with a warning to avoid firmware updates.
Mac gets a signed, notarized DMG for Apple Silicon and Intel on macOS 11 or later. Windows gets a zip for 64-bit Windows 10 (1709 or later) and Windows 11. Linux gets no download, only a note that the GUI build needs X11 or Wayland and OpenGL development libraries.
Then there is the agent angle. The studio runs an MCP server at http://127.0.0.1:7878/mcp, “Streamable HTTP, localhost only, Origin-checked,” and an agent edits whatever document you have open, with each call counting as one undo step. The tools cover inspecting the design, adding and transforming objects, text, previews, checks, saving and exporting, controlling the Skitch, tracing images, and an atomic batch call. A zigzag-mcp bridge handles clients that launch a command, and a headless mode runs without the app open. If an agent botches a monogram, Ctrl+Z still works.
What the README never says is who is behind it or why it exists. The repo owner is listed as simpsoka and the page carries no version number, so the Windows zip is named only ZigZag-<version>-x86_64-windows.zip.
Hobby embroidery software tends to sit at one of two ends: closed programs that charge for each stitch type, or hand-tuned file converters. An Apache-2.0 editor with a local server on it moves the line toward drawing shapes in the vector tool of your choice and letting a script do the repetitive layout, with the editor’s planner deciding how those shapes sew. The machine side stays the bottleneck, since only the Skitch gets wireless sending and that rests on a protocol Brother never published.
If other editors copy the overlap and travel logic, free stitch files may start looking less like auto-traces, and a locked-down protocol like the Skitch’s may start to look like the odd one out.
Illustrator, ZigZag or an agent: the thread doesn’t care.