Skip to main content

ZX-Next-Unite

Cross-platform (Windows, Linux, macOS) desktop app for ZX Spectrum Next users. It unites two great tools — Hdfm-Gooey and NextSync — in a single GUI, and adds a built-in browser to discover ZX Spectrum / Spectrum Next software across GetIt, ZXDB/ZXInfo, zxArt and itch.io.

By Julien Clauzel, based on HDFM-GOOEY by em00k and NextSync by Jari Komppa (with the Sync4 extensions by Julien Clauzel).

Co-developed with the assistance of Claude (Anthropic's AI).

A tour of the ZX-Next-Unite tabs

The main tabs, in Retro mode: SD Card Utility · NextSync (classic sync, then the Remote Explorer) · GetIt · ZXArt.ee · ZXDB/ZXInfo.dk · Unite! · Alien Floyd's. Every tab is documented in the User Manual.

Showcase

The Remote Explorer, live — a real Spectrum Next's SD card browsed over Wi-Fi from the app (the Next runs .sync5 -l or -L): full two-pane file management, both directions, remote zip/unzip included.

Live Remote Explorer session with a real Spectrum Next

Meet Wizzy — the built-in onboarding wizard tours every tab, offers in-depth guides for the SD Card and NextSync tools, speaks seven languages (switching live with the app language), tells Speccy jokes, offers to put the .sync5 dot into a freshly loaded disk image, has a friendly word about ZX Next Remote — the companion app on the Next itself, files both ways over Wi-Fi and even Next to Next — and walks like an Egyptian:

Wizzy the wizard touring the tabs

The SD Card Utility in the dark "Next" chrome — PC on the left, the mounted NextZXOS image on the right, drag & drop and clipboard both ways, emulator launch buttons below:

SD Card Utility, dark theme

Features

  • SD Card tab — mount an HDF image, copy files in/out with a built-in explorer, then launch CSpect or MAME directly. No emulator command lines to remember.

  • NextSync tab — push files over Wi-Fi from your PC to a real Spectrum Next (KS1/KS2 or clones with an ESP module) using the .sync5 dot command. The Next can push files back the other way with -send, served by the Classic sync server (start it from NextSync → Classic sync, after choosing a sync root — that is where uploads land). Quote a drive-qualified path, because : is BASIC's statement separator and the editor rejects the line without quotes:

    .sync5 -send "c:/somedir/somefile.tap"
    

    A path with no drive letter needs no quotes: .sync5 -send somefile.tap sends from the folder you are in. The Remote Explorer's listener does not serve -send, and -send cannot be combined with -listen.

  • Remote Explorer — a two-pane file manager for your Next's real filesystem over Wi-Fi: browse, drag & drop, upload/download and manage files (new folder, delete) directly — no SD-card swapping. Run .sync5 -listen (short: -l or -L) on the Next to connect, and launch the app with the -start-remote-explorer-listener switch to have the listen server running from startup with no clicks. See the Wiki.

  • .sync5 deployed into your disk image for you — emulator users need the Next-side half of NextSync, the .sync5 dot command, in the image's /dot folder before the Remote Explorer can talk to the emulated Next. When an image is loaded on the SD Card tab and /dot has no .sync5 (or an older build than this version ships), the app offers to download the latest from GitHub and put it there — Wizzy asks when the wizard is on, a 15-second toast otherwise — reads it back to check its version banner, and stays quiet for a current or newer dot, or an image an emulator is holding. Settings → "Auto update and deploy .sync5 command in an .img file" (on by default) switches the offer off.

  • Remote self-update over the wire — a running .sync5 dot (v5.9+) or ZX Next Remote .nex (1.0.3+) is updated over its own live -listen session — no card pulling: the new build is staged, verified against the CRC-32 the Next computes of it (read back and byte-compared on builds that predate the crc op), then swapped in place, and the previous build always stays on the card as <name>.bak for an instant revert. A ZX Next Remote package that ships a deploypak.txt beside its .nex (one file or folder per line — its .nxi menus, .spr sprite banks, whole folders sent recursively) has those sent to the same folder on the Next first, each checked against the Next's CRC-32 and re-sent up to three times, before the build itself is swapped — they are written in place, so the .bak revert does not cover them. The package's other flavour (n2nhttpbridge) travels the same way ahead of the swap, so both .nex files on the card stay in step (a package missing the other flavour is refused; the console's force pushes the one build without it). Driven from the Remote Explorer (an "Update to x.y.z" link appears when the connected build is older), from the itch.io tab's Send via NextSync on the ZX Next Remote item, or from the nextsync5 console. Both in-app doors now open a build picker listing every version installed on this PC, newest selected: you can re-flash the running build to repair a bad copy, or deliberately roll back to an older one (each asks first). From the itch.io tab, a Next that is not running ZX Next Remote instead gets a plain copy of the package — both .nex and every deploypak.txt file — landing directly in a folder you name, no sub-folders. CLI examples and the manifest format in the z88dk README, full story on the NextSync wiki page.

  • HTTP bridge — remote access to a Next's file system over plain HTTP: a built-in web server (Flask) republishes the Remote Explorer's -listen session as HTTP routes, so you can browse, download, upload and manage the Next's SD card from a browser, curl — or from another Next using the built-in .http dot command. Enable it in the Settings tab (the port — 80 by default — is set in the box next to the toggle). See the HTTP bridge documentation.

  • PowerShell module (ZxNextRemote) — drive a connected Next's SD card from a script or a prompt, with no HTTP call in sight: list the seated machines, Ls/Get/Put/Ren/Rcpy, and Verify an upload against the CRC-32 the Next computes of it (Crc/VerifyCrc; the size + checksum read-back stays as the fallback for older listeners). Runs on Windows PowerShell 5.1 and PowerShell 7 (macOS/Linux included), with typed errors that tell the bridge's two different 401s apart — a wrong bearer token vs a write the remote machine's OS protection refused. It powers PS-Send-ToNext.ps1, a build → push → verify → run-on-hardware loop bound to Ctrl+Shift+B in VS Code. See the PowerShell helper guide, and SampleNex for a ready-made demo project you can clone and push to your Next in one key.

  • Online libraries — search and download from GetIt, ZXDB/ZXInfo, zxArt and (optionally) itch.io.

  • 🎁 Starter pack — one click on the GetIt tab fills your SD image with 20 hand-picked modern homebrew titles from the freely-distributable GetIt catalogue, each in its own folder under /games/StarterPack — exactly what a new Next owner wants on day one, rights-clean by construction.

Quick start

Windows: download the latest zx-next-unite-v9.x.x.exe from the Releases page — no Python needed.

Linux (x86_64): download zx-next-unite-v9.x.x-linux-x86_64.tar.gz from the same page, extract it and run the binary inside. A Flatpak package is also available: grab zx-next-unite.flatpak from the flatpak workflow artifacts and flatpak install --user zx-next-unite.flatpak (see flatpak/ for details and the Flathub roadmap).

macOS (Apple Silicon): download zx-next-unite-v9.x.x-macos-arm64.zip, extract it and start the app. The app is not code-signed, so the first launch needs right-click → Open (or xattr -cr on the .app) to get past Gatekeeper.

All three packages are built by CI from the tagged source (release workflow), and the app's built-in update check offers the right package for your platform when a newer release is published.

Via pipx (any platform, from PyPI):

pipx install "zx-next-unite[full]"

installs the zx-next-unite command (plus the nextsync5 command-line sync server) in its own isolated environment — one line, no repo checkout. Drop [full] to skip the optional extras (retro pygame views, itch.io tab, Recycle-Bin deletes, HTTP bridge).

From source (any platform):

git clone https://github.com/jclauzel/ZX-Next-Unite
cd ZX-Next-Unite
python -m pip install -r REQUIREMENTS.txt
python zx-next-unite.py

Requires Python 3.10 or newer (the stock Python of Ubuntu 22.04 / Debian 12 and later works out of the box; CI runs the test suite on 3.10 and 3.13). Use python3 on Linux/macOS. Only PySide6 is required; pygame-ce, itch-dl and flask are optional (flask powers the NextSync HTTP bridge — the web server that lets a Next drive another Next's SD card via the .http dot command; without it the Settings toggle is simply greyed out).

Documentation

Full setup, emulator / hdfmonkey / Mono configuration and troubleshooting are in the Wiki:

PowerShell automation

  • 🧰 PowerShell helper guide — the ZxNextRemote module: install/uninstall, the class and error reference, the bearer-token pattern, PS-Send-ToNext.ps1, and the VS Code integration (PowerShell/vscode-sample/tasks.json).
  • 🎮 SampleNex — a tiny z88dk ZX Spectrum Next app wired to all of the above, ready to clone. It prints Hello Dev Builders <n>! with a number that increments on every build, so one glance at the TV proves the bytes running are the ones you just compiled. Ctrl+Shift+B builds it, pushes it, verifies it and runs it on real hardware.

License

Released under the MIT license (see LICENSE). Built on PySide6 (Qt for Python, LGPL v3) and optionally pygame-ce (LGPL v2.1), itch-dl by Dragoon Aethis (MIT), Flask by the Pallets team (BSD-3-Clause), the web server that powers the NextSync HTTP bridge, and Send2Trash by Andrew Senetar and contributors (BSD-3-Clause), which sends locally-deleted files to the system Recycle Bin / Trash.

Provenance and license details for every third-party component — including NextSync (Jari Komppa, Unlicense), HDFM-Gooey (em00k), hdfmonkey (GPL v3), CSpect and MAME — are in THIRD-PARTY-NOTICES.md.

The author of ZX-Next-Unite does NOT distribute any files, ROMs, games, demos, graphics, music, or any other content obtained through the GetIt, ZXDB, or zxArt integrations.

All content is served exclusively by the respective third-party services listed above. ZX-Next-Unite acts solely as a frontend client that queries their public APIs and downloads files directly from the URLs those APIs return.

It is the sole responsibility of the end user to ensure that any content they download or use through this application complies with the applicable copyright, licensing, and legal requirements in their jurisdiction.

If in doubt, consult the terms of service of the relevant platform and seek appropriate legal advice before downloading or using any content.

The first time you open the GetIt, ZXDB, or zxArt pane, the application will display this disclaimer and ask you to acknowledge it. You can dismiss the dialog to continue using the pane; the dialog will reappear on the next visit until you check "I agree and understand. Do not show this message again", at which point your acknowledgement is saved to hdfg.cfg and the dialog will not be shown again.

Release files for zx-next-unite 9.7.34

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zx-next-unite 9.7.34
File Size Uploaded
zx_next_unite-9.7.34.tar.gz 39.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for zx-next-unite 9.7.34
File Interpreter ABI Platform
zx_next_unite-9.7.34-py3-none-any.whl Python 3 none any Details

Total release size: 80.2 MB

Release files / zx_next_unite-9.7.34.tar.gz

Download URL zx_next_unite-9.7.34.tar.gz
Size 39.6 MB
Tags Source
SHA-256 checksum
How to use checksums
63d62d8a1d25f157b39b2c30d94a56a52f85049519c9e1e07aecf68b2cf545b7
BLAKE2b-256 checksum
How to use checksums
4b3c0a672a128c793cf8db4c50b8a1391406416066c52e4cae3788135006f22c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / zx_next_unite-9.7.34-py3-none-any.whl

Download URL zx_next_unite-9.7.34-py3-none-any.whl
Size 40.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
890c994e5f24aa596269e66f3457fde85de7a213d23389996c65155343b28b9c
BLAKE2b-256 checksum
How to use checksums
3cb28a66d5c7813f8ed7e5b30b4e27ec24c6689808bc5a8bae381e1a9721b78b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

9.7.40

2 release files

9.7.39

2 release files

9.7.37

2 release files

9.7.36

2 release files

9.7.35

2 release files

This release

9.7.34 This release

2 release files

9.7.33

2 release files

9.7.32

2 release files

9.7.31

2 release files

9.7.25

2 release files

9.7.23

2 release files

9.7.21

2 release files

9.7.19

2 release files

9.7.18

2 release files

9.7.17

2 release files

9.7.16

2 release files

9.7.6

2 release files

9.7.5

2 release files

9.7.4

2 release files

9.7.3

2 release files

9.7.1

2 release files

9.7.0

2 release files

9.6.5

2 release files

9.6.4

2 release files

9.6.3

2 release files

9.6.2

2 release files

9.6.1

2 release files

9.6.0

2 release files

9.5.30

2 release files

9.5.29

2 release files

9.5.28

2 release files

9.5.27

2 release files

9.5.26

2 release files

9.5.22

2 release files

9.5.21

2 release files

9.5.20

2 release files

9.5.19

2 release files

9.5.17

2 release files

9.5.15

2 release files

9.5.13

2 release files

9.5.11

2 release files

9.5.10

2 release files

9.5.9

2 release files

9.5.8

2 release files

9.5.7

2 release files

9.5.6

2 release files

9.5.5

2 release files

9.5.4

2 release files

9.5.3

2 release files

9.5.2

2 release files

9.5.1

2 release files

9.5.0

2 release files

9.4.8

2 release files

9.4.6

2 release files

9.4.5

2 release files

9.4.4

2 release files

9.4.3

2 release files

9.4.2

2 release files

9.4.1

2 release files

9.4.0

2 release files

9.3.0

2 release files

9.2.2

2 release files

9.2.1

2 release files

9.2.0

2 release files

9.1.9

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page