Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installing VellumFE

Get a working vellum-fe on your machine, past your operating system’s defenses, in about two minutes.

What it’s for

You want to be in Icemule by tonight, not fighting a download. VellumFE ships as a single self-contained binary per platform — no installer, no runtime to install, no Ruby, no OpenSSL. Windows and macOS releases are code-signed, so your OS should let them run without an argument. This page gets the file onto your disk and proves it works; The Launcher gets you into the game.

📷 screenshot pending
The GitHub Releases page for a beta tag, with the platform assets and SHA256SUMS.txt listed under Assets.

Set it up

Every desktop release lives on the GitHub Releases page. This is a platform split rather than a frontend split — the same binary contains the terminal frontend, the desktop GUI, and the web server, and which one you get is decided at launch, not at download.

  1. Download vellum-fe-windows-x86_64.zip from the latest release.
  2. Right-click the zip and choose Extract All…. Put vellum-fe.exe somewhere permanent — C:\Tools\VellumFE\ works; your Downloads folder does not, because you will move it later and break your shortcuts.
  3. Double-click vellum-fe.exe.

The executable is signed through Azure Trusted Signing as part of the release build, which is what stops Defender from flagging low-prevalence Rust binaries as Trojan:Win32/Cloxer. If SmartScreen still shows a blue “Windows protected your PC” panel on a brand-new release, click More infoRun anyway — reputation builds up per-version over the first days after a release.

Expected result: the VellumFE Launcher window opens with the heading VellumFE and the line Choose a connection to launch. No black console window sits behind it.

Common setups

Verify what you downloaded

Every release publishes SHA256SUMS.txt alongside the assets. Compare before you run anything:

sha256sum -c SHA256SUMS.txt --ignore-missing

On Windows PowerShell, Get-FileHash vellum-fe-windows-x86_64.zip -Algorithm SHA256 prints a hash to match by eye against the line in SHA256SUMS.txt.

→ You see vellum-fe-windows-x86_64.zip: OK (or a matching hash), which means the archive is byte-for-byte the one CI built and signed.

Keep configs somewhere other than your home directory

VellumFE writes everything it owns — settings, layouts, highlights, skins, logs, saved connections — under ~/.vellum-fe/. It is created on first run. To put that elsewhere (a synced folder, a portable drive), point VELLUM_FE_DIR at the location before starting:

VELLUM_FE_DIR=/mnt/sync/vellum vellum-fe

The same directory can also be set per connection, in the Launcher’s Advanced fold under Data directory — handy when one character’s setup should live apart from the rest.

→ Start VellumFE and the folder you named fills with launcher.toml, global/, profiles/, and vellum-fe.log instead of your home directory.

Build it yourself

You need a recent stable Rust toolchain — CI builds on latest stable.

git clone https://github.com/Nisugi/VellumFE.git
cd VellumFE
cargo build --release

The binary lands at target/release/vellum-fe. Direct eAccess login uses your OS’s native TLS stack on Windows (SChannel) and macOS (Security.framework), so there is nothing extra to install; Linux compiles a bundled OpenSSL during the build, which needs Perl — present on effectively every distro.

./target/release/vellum-fe --version prints the version you just built.

Tips & gotchas

⚠️ A bare vellum-fe opens the Launcher; a vellum-fe with any flag does not. The no-arguments case is what double-clicking produces, and it routes to the graphical launcher. The moment you pass even one flag you are on the command-line path, and that path defaults to the terminal frontend, not the GUI — add --frontend gui if you wanted a window. This catches almost everyone once. See The Launcher.

⚠️ Extract the archive before running it. Windows will happily run an exe from inside a zip preview, then fail confusingly when the process tries to spawn a session copy of itself.

  • Nothing prints to your terminal. VellumFE logs to a file, because a terminal UI cannot share stdout with a log. Diagnostics live in ~/.vellum-fe/vellum-fe.log, including panics. Raise the level with RUST_LOG=debug.
  • Moving the binary is fine; moving it after saving connections is fine too. Connections are stored in ~/.vellum-fe/, not next to the exe. The Launcher spawns sessions using its own current path, so a moved binary keeps working as long as you launch the moved copy.
  • The apps keep their own connections; they don’t import your desktop ones. Your launcher.toml stays on the desktop, and the phone saves its logins on the device. The apps can pair with a running desktop session (CharactersScan QR to add), and a browser can act as a second screen without installing anything — two routes for two jobs, both in Put VellumFE on your phone.

See also

Config reference (TOML)

Installation itself writes no TOML — this is where the files it creates live. The base directory is ~/.vellum-fe/, or whatever VELLUM_FE_DIR names.

PathWhat it holds
launcher.tomlSaved connections for the Launcher. Never contains passwords.
ssh-launcher.tomlSSH target and per-character ports for the SSH Launcher. Never contains keys.
vellum-fe.logThe one log file, including panics and backtraces.
global/Shared across characters: highlights.toml, keybinds.toml, colors.toml, hotbars.toml, controller.toml, macros.toml, plus skins/, images/, data/.
profiles/<character>/Per-character config.toml, layout.toml, highlights.toml, keybinds.toml, hotbars.toml, controller.toml, history.txt, widget_state.toml, debug.log.
layouts/Named layouts from .savelayout: TUI as <name>.toml, GUI as <name>.json.
highlights/, keybinds/Named highlight and keybind sets.
themes/Custom themes as <name>.toml.

Environment variables

NameDefaultWhat it does
VELLUM_FE_DIR~/.vellum-feBase directory for every file above. Overridden by --data-dir and by a connection’s Data directory.
RUST_LOGinfoLog level filter for vellum-fe.log. debug for troubleshooting.

Every user-authored file is written atomically: VellumFE writes <name>.tmp, copies the current file to <name>.bak, then renames. If a save ever goes wrong, the previous version is one rename away.