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.
  • 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.

Legal disclaimer — third-party content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zx_next_unite-9.7.17.tar.gz (39.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zx_next_unite-9.7.17-py3-none-any.whl (40.6 MB view details)

Uploaded Python 3

File details

Details for the file zx_next_unite-9.7.17.tar.gz.

File metadata

  • Download URL: zx_next_unite-9.7.17.tar.gz
  • Upload date:
  • Size: 39.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for zx_next_unite-9.7.17.tar.gz
Algorithm Hash digest
SHA256 5e0f93f6e4d6cdf58358403393b2f4d987835bc4b45e82d3e92a6523daced16b
MD5 09d2ffa1a4d6205e649dc8e1c5dbbfba
BLAKE2b-256 97be6c1f351a3d50a2b273674293092e8f4ddae085145261ca9c28d3c89bef76

See more details on using hashes here.

Provenance

The following attestation bundles were made for zx_next_unite-9.7.17.tar.gz:

Publisher: publish.yml on jclauzel/ZX-Next-Unite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zx_next_unite-9.7.17-py3-none-any.whl.

File metadata

  • Download URL: zx_next_unite-9.7.17-py3-none-any.whl
  • Upload date:
  • Size: 40.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for zx_next_unite-9.7.17-py3-none-any.whl
Algorithm Hash digest
SHA256 c554eb7c1c5068dcfb45d985b6f988afb43dbea620b812d18e932f42bbdde992
MD5 fa8ef0afc393ac6feeef8d570859c468
BLAKE2b-256 02b9b054635ee331bcd25ac72f619b81695c3eef3d32abde031f2a5c507dd4f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for zx_next_unite-9.7.17-py3-none-any.whl:

Publisher: publish.yml on jclauzel/ZX-Next-Unite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

9.7.21

2 files

9.7.19

2 files

9.7.18

2 files

This release

9.7.17 This release

2 files

9.7.16

2 files

9.7.14

2 files

9.7.13

2 files

9.7.11

2 files

9.7.10

2 files

9.7.6

2 files

9.7.5

2 files

9.7.4

2 files

9.7.3

2 files

9.7.1

2 files

9.7.0

2 files

9.6.5

2 files

9.6.4

2 files

9.6.3

2 files

9.6.2

2 files

9.6.1

2 files

9.6.0

2 files

9.5.30

2 files

9.5.29

2 files

9.5.28

2 files

9.5.27

2 files

9.5.26

2 files

9.5.22

2 files

9.5.21

2 files

9.5.20

2 files

9.5.19

2 files

9.5.17

2 files

9.5.15

2 files

9.5.13

2 files

9.5.11

2 files

9.5.10

2 files

9.5.9

2 files

9.5.8

2 files

9.5.7

2 files

9.5.6

2 files

9.5.5

2 files

9.5.4

2 files

9.5.3

2 files

9.5.2

2 files

9.5.1

2 files

9.5.0

2 files

9.4.8

2 files

9.4.6

2 files

9.4.5

2 files

9.4.4

2 files

9.4.3

2 files

9.4.2

2 files

9.4.1

2 files

9.4.0

2 files

9.3.0

2 files

9.2.2

2 files

9.2.1

2 files

9.2.0

2 files

9.1.9

2 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