MODERN YAMN GUIDE / SOURCE REVIEWED
Install and use Mixfit.
A complete guide derived from the Go implementation, not only the project README. Mixfit is a separate graphical client for the current YAMN network.
01 / IDENTITY
Mixfit is a YAMN client.
Mixfit is a desktop application by Ch1ffr3punk. It composes email or Usenet messages, builds layered YAMN packets, and submits the armored packet to the first YAMN Entry through an SMTP relay.
Mixfit is not the crooks/yamn command-line program, Yamnweb or Nym Network. Its Go module depends on github.com/crooks/yamn v0.2.6 for the cryptographic random helper while its own mix.go implements packet assembly and YAMN armor.

03 / REQUIREMENTS
Go, CGO and desktop libraries.
The module declares Go 1.25.0. Fyne and go-sqlite3 require a working C compiler and CGO for a native desktop build. On Debian or Ubuntu, begin with:
sudo apt update sudo apt install git gcc libgl1-mesa-dev xorg-dev go version go env CGO_ENABLED
Package names vary by distribution. Follow the official Fyne platform prerequisites when the OpenGL, X11, Wayland or compiler packages differ. Install Go from go.dev if your distribution does not provide Go 1.25 or newer.
Windows and macOS builds also require the platform toolchain expected by Fyne and a C compiler for SQLite. Build natively on the target system unless you have a reviewed Fyne cross-compilation workflow.
04 / BUILD
Clone, verify and compile.
git clone https://github.com/Ch1ffr3punk/Mixfit.git cd Mixfit git rev-parse HEAD go mod download go mod verify go test ./... go build -trimpath -o mixfit .
Review the commit and dependency changes before rebuilding. For a local installation with private runtime state:
install -d -m 700 "$HOME/Mixfit" install -m 700 mixfit "$HOME/Mixfit/Mixfit" cd "$HOME/Mixfit" ./Mixfit
Mixfit uses its current working directory as the data directory on desktop systems. Always launch it with $HOME/Mixfit as the working directory. Moving only the executable into a general PATH directory would scatter Mixfit.json, the database and fetched articles wherever it is launched.
05 / FIRST RUN
Know what is written to disk.
On first launch, Mixfit creates these items in its working directory:
| Path | Purpose |
|---|---|
Mixfit.json | Pinger, proxy, SMTP, NNTP and article-directory settings. |
esub_rc.db | SQLite replay cache containing Esub tokens, timestamps, article IDs and newsgroups. |
articles/ | Full fetched NNTP articles matching the supplied Esub password. |
cd "$HOME/Mixfit" chmod 700 . articles chmod 600 Mixfit.json esub_rc.db
The code creates the JSON file with mode 0644 and the article directory with mode 0755. Saving settings can restore the JSON mode to 0644. A mode-0700 parent directory is therefore the important privacy boundary.
06 / SETTINGS
Configure transport before composing.
Open the gear icon. Enter each value exactly as shown. The fields accept plain text, so the following values are formatted for direct copy and paste:
- Local Article Dir: directory where matching Usenet articles are stored, for example
/home/you/Mixfit/articles. - NNTP Server: use
news.tcpreset.netas the recommended source.NNTP Server: news.tcpreset.net NNTP Port: 119 Newsgroup: alt.anonymous.messages
Mixfit’s NNTP client retrieves over plaintext NNTP on port
119. - SMTP Server and Port: choose a relay from the YAMN SMTP relay list, then copy its hostname and port into Mixfit. These are transport settings for the first YAMN Entry, not the final recipient.
SMTP Server: fleegle.mixmin.net SMTP Port: 587
- Proxy: optional SOCKS5 endpoint used for pinger downloads, SMTP and NNTP. Copy the complete endpoint as
host:port, for example127.0.0.1:1080.Proxy: 127.0.0.1:1080
- Use TLS: enables implicit TLS on port
465; on other SMTP ports Mixfit negotiates STARTTLS when the relay advertises it. - Skip TLS Verify: leave unchecked. Enabling it disables certificate verification.
Recommended starting configuration: use news.tcpreset.net, port 119, group alt.anonymous.messages, an SMTP relay and port listed in mail-relays.html, and a local SOCKS5 proxy only when you have intentionally configured one.
The SMTP implementation has no username/password authentication. Select a relay that explicitly permits the intended YAMN traffic and do not enter credentials that Mixfit cannot use.
The Virebent Nym Entry at nym-gateway.virebent.art is not an open SOCKS proxy and must not be entered in the Proxy field.
07 / STATS AND KEYS
Load the current network view.
Press the list icon in the top bar. Mixfit tries configured pingers until it obtains pubring.mix and, independently, mlist2.txt. The defaults include Victor, Frell and Mixmin.
The pinger list is stored in Mixfit.json but is not exposed in the settings dialog. Close Mixfit before editing it manually, preserve valid JSON and use trusted current URLs. Prefer HTTPS. The default Frell source is plain HTTP.
The code accepts the first public keyring and first statistics file that download successfully, which may come from different pingers. Inspect the displayed names, roles, latency and uptime before choosing a chain. Downloaded files are read fully into memory and are not signature-verified by Mixfit.
08 / EMAIL
Compose an explicit route.
- Enter one valid email address in To. Multiple recipients are rejected.
- Enter a non-empty subject and message body.
- Leave Newsgroups empty for ordinary email.
- Enter a comma-separated chain in Entry-to-Exit order, for example
entryname,middlename,exitname. - Press Send.
Every remailer name must exist in the loaded public keyring. Mixfit rejects empty hops, more than 10 hops and the wildcard *. It does not automatically enforce that the selected first, middle and final names have the intended network roles, so use current pinger data.
The final plaintext plus MIME headers must fit the YAMN body limit of 17,920 bytes. Confirmation means the armored packet was accepted by the configured SMTP relay, not that the final recipient received it.
09 / USENET
Route through Mail-to-News.
The code always requires To to contain a syntactically valid email address. For Usenet, enter a working Mail-to-News gateway in To, the target group in Newsgroups, and an explicit YAMN chain ending at an Exit capable of the SMTP delivery.
References and Followup-To are copied into the encrypted message as entered. Use a valid angle-bracketed Message-ID for References and a valid group name for Followup-To. Mixfit does not validate either field.
Consult the current Mail-to-News guide before submission. Gateway-specific encryption workflows may not be compatible with direct composition in Mixfit.
10 / AEC AND ESUB
Attach, discover and view.
AEC
The AEC button attaches one PNG or JPEG between 768 and 2,700 bytes. This is intended for a compact AEC QR image produced on another device. The built-in View path extracts PNG parts only, so use PNG when you expect Mixfit to display the attachment later.
Esub
The Esub button derives a local key from a password and creates a 48-character hexadecimal token, then copies it to the clipboard. Use that value as the subject or X-Esub marker for alt.anonymous.messages. The password is not sent by the Fetch function.
Fetch
Fetch connects to the configured NNTP server, scans new articles sequentially, derives the expected Esub token from the supplied password, saves matching full articles and advances last_article. The SQLite cache prevents the same Esub from being processed twice.
View
View opens a saved article, locates its MIME boundary, extracts the first PNG attachment and displays it. Treat every retrieved article and image as untrusted data even when its Esub matches.
11 / PRIVACY AND LIMITS
What the source actually protects.
- Message content is assembled locally and placed inside a layered YAMN packet before SMTP submission.
- The configured SMTP relay sees the connection and the first YAMN remailer address, but should not see the final message plaintext.
- A configured SOCKS5 proxy carries pinger, SMTP and NNTP connections. Its privacy properties come from the proxy implementation, not from Mixfit itself.
- Default NNTP retrieval uses plaintext port 119. The source has no NNTP TLS implementation.
- Fetched matching articles, Esub metadata and configuration persist locally until removed.
- The Clear button empties form fields and the clipboard, but does not erase the database, saved articles or filesystem history.
Mixfit is privacy tooling, not a complete anonymity environment. Endpoint compromise, message wording, timing, an unsafe SOCKS proxy, disabled TLS verification, stale keys and local desktop traces remain separate risks.
12 / UPDATE AND RECOVERY
Preserve state, rebuild separately.
Before updating, close Mixfit and back up Mixfit.json, esub_rc.db and any articles you intentionally retain. Review upstream changes, rebuild in the source checkout, then replace only the executable in $HOME/Mixfit.
cd path/to/Mixfit-source git fetch --all --prune git log --oneline --decorate -n 10 git pull --ff-only go mod verify go test ./... go build -trimpath -o mixfit . install -m 700 mixfit "$HOME/Mixfit/Mixfit"
Do not delete the working directory during an update. To uninstall, first decide whether the Esub database and fetched articles must be securely retained or removed, then delete only the explicit Mixfit installation and source directories.