GUI front end for Greaseweazle, Keir Fraser's floppy disk flux reader and writer, for macOS, Windows and Linux. Written in Rust.
- Feature parity with Greaseweazle Tools by Keir Fraser
- macOS, Windows and Linux, x86-64 and ARM64
- Greaseweazle and Adafruit Feather RP2040 devices
- Format detection for disks and images
- Single and batch reads, writes and conversions
- Further read passes over tracks with sectors still missing after
gw's retries - Analyse: a map of each side of the disk, each sector coloured by how
gwdecoded it, or by flux; click a sector to see its bytes - Image analysis: the same map for image files
- Log of
gw's output, saved to a file on request - Shows each action's
gwcommand line, and passes extra arguments togw - Drag and drop of image files
- Helpful tooltips on settings and options
- Confirmation before destructive actions
- Releases include Greaseweazle Tools, unmodified, with its Python; any other
gworgw.execan be used instead
Greaseweazle Tools has no format detection, so Ferriteweazle uses gw's own codecs. It decodes both sides of cylinder 0 with every format gw knows, except the .scan ones, and keeps those that find every sector. Many formats pass, so it ranks them by how far each sector lies from where the format places it. Formats within 1% of the best that differ on a track not yet read have that track read, up to four more. Physical cylinder 2 shows whether a 40-track disk needs Step 2. Apple II formats differ only in sector order, so the filesystem decides: ProDOS or DOS 3.3.
Detection can be wrong: formats and image types are grouped for choosing one by hand.
Greaseweazle Tools prints one line per track, so Ferriteweazle runs gw's own code and has its decoders note what they find, without changing what gw does. For each track gw reads, converts or writes, it records the flux, revolution by revolution from the index, and what gw decoded: each sector's ID, where it lies from the index, its checks and any deleted-data mark, and for IBM-style formats how each revolution read it, including headers and data gw found apart and dropped. Sectors colours each sector by that result, where gw found it; Flux shades each track by the flux gw read along it. A sector's window shows its bytes as gw's image holds them. To scale, tracks sit at the radii the ECMA standards give for 3½", 5¼" and 8" disks. A write shows the track gw writes, then, where gw verifies it, the track read back. Image analysis lays out a sector image as gw does: its tracks in the file's order, the bytes each sector takes, and the filler gw writes for any it lacks.
The decoding is gw's and nothing is guessed: no weak bits from comparing revolutions, no best revolution. Tracks read with --reverse or --fake-index aren't drawn, since gw doesn't take them round from the index.
Greaseweazle Tools is a command-line program that runs on Python. The packages include it, unmodified, with its own Python, so the app runs without gw's installation steps.
The bundled copy is optional. Ferriteweazle can use any installation of Greaseweazle Tools: set Settings > Paths > Greaseweazle Tools (gw cli) to its gw or gw.exe.
Note: The gw.exe from gw’s own Windows download runs gw’s commands, but not Detect, Read passes, Analyse or Image analysis. The bundled gw and any pip, pipx or uv install support everything.
Download the package for your system from the latest release.
macOS 10.15 or newer, Apple Silicon or Intel.
- Open
Ferriteweazle-1.4.0-macos-universal.dmg. - Drag Ferriteweazle to Applications.
- Open Ferriteweazle. The app isn't notarised, so macOS blocks it the first time.
- On macOS 15 or newer, open System Settings > Privacy & Security and click Open Anyway. On older versions, Control-click Ferriteweazle in Applications, choose Open, then Open again.
Windows 10 or newer, x64 or ARM64.
- Run
Ferriteweazle-1.4.0-win-x64.msi, orFerriteweazle-1.4.0-win-arm64.msion an ARM PC. - If SmartScreen warns you, click More info, then Run anyway.
- Follow the installer.
To run without installing, unzip Ferriteweazle-1.4.0-win-x64.zip or Ferriteweazle-1.4.0-win-arm64.zip and run Ferriteweazle.exe.
x86-64 or ARM64, glibc 2.17 or newer, under Wayland or X11, with Vulkan or OpenGL.
AppImage: Ferriteweazle-1.4.0-x86_64.AppImage or Ferriteweazle-1.4.0-aarch64.AppImage
chmod +x Ferriteweazle-1.4.0-x86_64.AppImage
./Ferriteweazle-1.4.0-x86_64.AppImageThe AppImage needs FUSE to start: fusermount3 or fusermount, from your distribution's FUSE package (usually fuse3). Most desktops have it. If it says "Cannot mount AppImage, please check your FUSE setup", run it this way instead, or use the tarball, which needs no FUSE:
./Ferriteweazle-1.4.0-x86_64.AppImage --appimage-extract-and-runOr the tarball: Ferriteweazle-1.4.0-linux-x86_64.tar.gz or Ferriteweazle-1.4.0-linux-aarch64.tar.gz
tar -xzf Ferriteweazle-1.4.0-linux-x86_64.tar.gz
./Ferriteweazle/ferriteweazleOn ARM, use the aarch64 files in the commands.
File dialogs use your desktop's portal (xdg-desktop-portal), or zenity where there is none.
You need Rust 1.95 or later.
git clone https://github.com/hobbo91/Ferriteweazle
cd Ferriteweazle
bundle/build.sh # optional: `gw` with its own Python
cargo run --releaseWithout the bundle, the app uses an installed gw. bundle/build.sh needs curl, git and a C/C++ compiler: Xcode's command line tools on macOS, zig on Linux, and on Windows Visual Studio's C++ build tools and LLVM, in Git Bash.
Tests and packages: BUILDING.md.
No. I built it in Rust, a language I know well, using Claude as a coding assistant, and I review every change. I also contribute to Copperline, Coppersynth and FluxBridge.
Ferriteweazle is MIT licensed and comes with no warranty; see LICENSE. Greaseweazle Tools is by Keir Fraser and is in the public domain. Image any disk you care about before writing to it, and write-protect a disk you only want to read.

