Installation
Download and install the latest release for your system:
https://github.com/kevinselwyn/nessemble-rs/releases
Release artifacts are provided for all five supported platforms:
| Platform | Artifact(s) |
|---|---|
| macOS | nessemble_<v>.pkg, nessemble_<v>_macos.tar.gz |
| Linux amd64 | nessemble_<v>_amd64.deb |
| Linux i386 | nessemble_<v>_i386.deb |
| Windows 32-bit | nessemble_<v>_win32.exe, …_win32.msi |
| Windows 64-bit | nessemble_<v>_win64.exe, …_win64.msi |
Two more artifacts accompany every release:
nessemble_<v>.vsix— the VS Code extension.nessemble_<v>_wasm.tar.gz— the in-browser assembler bundle (the WebAssembly build plus the<nessemble-assembler>web component).
A linux/amd64 container image is also published to GHCR for
CI pipelines and coding agents that only need the executable.
VS Code extension
nessemble_<v>.vsix is the VS Code (and Cursor) extension: a client for the
assembler's built-in language server, giving you diagnostics, lint
hints, completion, hover, formatting, semantic highlighting, and
go-to-definition on .asm/.s files.
It contains no copy of the assembler, so install nessemble itself first —
the extension runs the nessemble on your PATH. One universal .vsix works
on every platform:
code --install-extension nessemble_<v>.vsix
Or use the Extensions view's Install from VSIX… command. See Editor support for settings and format-on-save.
macOS: "Apple could not verify…"
The macOS .pkg is not signed with an Apple Developer ID or notarized, so after
you download it, Gatekeeper blocks it with:
"nessemble_<v>.pkg" Not Opened — Apple could not verify "nessemble_<v>.pkg" is free of malware…
This is expected for an unsigned package; it does not mean the file is harmful. You have two options.
Install the .pkg anyway — clear the download-quarantine flag, then install:
xattr -d com.apple.quarantine nessemble_<v>.pkg
sudo installer -pkg nessemble_<v>.pkg -target /
Or use the plain binary tarball (nessemble_<v>_macos.tar.gz) and skip the
installer:
tar -xzf nessemble_<v>_macos.tar.gz
xattr -d com.apple.quarantine nessemble # clear quarantine
sudo mv nessemble /usr/local/bin/ # put it on your PATH
Both install the same binary to /usr/local/bin/nessemble. (The tarball binary
is a 64-bit Intel build, matching the .pkg; it runs on Apple Silicon under
Rosetta.)
Container image
A binary-only image is published to the GitHub Container Registry on every release:
ghcr.io/kevinselwyn/nessemble-rs:<version> # e.g. :2.11.0
ghcr.io/kevinselwyn/nessemble-rs:latest
It exists for CI pipelines and coding agents that need the nessemble
executable but not this source tree — pulling the image is faster and simpler
than building the workspace. The image is a single statically-linked
linux/amd64 binary on scratch: there is no shell, package manager, or libc
inside it, only /nessemble. That means you consume it by lifting the binary
out, not by opening a shell in it.
Copy it into your own image with a multi-stage COPY --from — the most
common pattern for build tools:
COPY --from=ghcr.io/kevinselwyn/nessemble-rs:2.11.0 /nessemble /usr/local/bin/nessemble
Extract it to the host without writing a Dockerfile — create a container from the image (it need not run) and copy the file out:
docker create --name nessemble ghcr.io/kevinselwyn/nessemble-rs:2.11.0
docker cp nessemble:/nessemble ./nessemble
docker rm nessemble
Run it directly — the entrypoint is the binary, so pass nessemble
arguments straight through and mount your project as the working directory:
docker run --rm ghcr.io/kevinselwyn/nessemble-rs:2.11.0 --version
docker run --rm -v "$PWD:/work" -w /work \
ghcr.io/kevinselwyn/nessemble-rs:2.11.0 project.asm --output project.nes --format nes
Pin a version tag (:2.11.0) rather than :latest for reproducible builds. In
a Claude Code on the web (or similar) environment, pulling the image in a setup
script caches it into the environment snapshot, so the binary is on disk at the
start of every later session.
From source
nessemble is a Cargo workspace and builds with a stock Rust toolchain.
git clone https://github.com/kevinselwyn/nessemble-rs
cd nessemble-rs
cargo build --release
The binary is written to target/release/nessemble. See
Building for cross-compilation and packaging details.