Skip to content

Desktop App And Binaries

Every release on GitHub ships the same server in three shapes: a desktop app for macOS and Windows that adds a tray icon, and portable archives for headless use. All of them bind to 127.0.0.1 and complete the first-run setup in the browser.

AssetUse it for
weaver-darwin-<arch>.dmgmacOS desktop app with a menu bar icon
weaver-windows-<arch>.msiWindows desktop app with a tray icon, the same package Winget installs
weaver-windows-x86_64.zipWindows without an installer
weaver-<os>-<arch>-portable.tar.gzLinux, macOS servers, and anything run by a service manager

Open the DMG and drag Weaver to Applications. Release images are signed, but not every release is notarized, so the first launch may need a right-click and Open to get past Gatekeeper. After that it opens normally.

The menu bar icon starts and supervises the server on port 9090 and offers Open Weaver, Open in Browser, Start or Restart Weaver, Open Logs, and Quit Weaver. Headless Macs should use the portable archive with brew services or launchd instead. See Homebrew.

The MSI installs under C:\Program Files and puts Weaver in the Start Menu. That shortcut starts a tray application, which runs the server for you on port 9090. There is no Windows service. The tray menu offers Open Weaver, Open in Browser, Start, Stop, and Restart Weaver, Open Logs, Start at sign-in, and Exit.

The data directory defaults to %LOCALAPPDATA%\weaver, and logs go to %LOCALAPPDATA%\weaver\logs\weaver.log. Environment variables come from the Windows environment, because the tray hands its own environment to the server it starts:

Terminal window
setx WEAVER_SOME_VARIABLE "value"

Then exit Weaver from the tray and start it again. Avoid a .env file in the install directory: it needs an administrator to edit and a malformed file stops Weaver from starting.

The zip is the same server without the installer. Unzip it and run weaver.exe. It uses the same %LOCALAPPDATA%\weaver data directory unless a weaver.toml or weaver.db already sits next to the executable, in which case it uses that folder.

Extract the portable archive and run the binary with a persistent config path:

Terminal window
./weaver --config /var/lib/weaver serve --port 9090

--config accepts a directory, which becomes the data directory, or the path to a weaver.toml, whose parent becomes the data directory. serve is the default command, and --base-url /weaver hosts Weaver under a subpath. See Reverse Proxy.

A minimal systemd unit:

/etc/systemd/system/weaver.service
[Unit]
Description=Weaver
After=network-online.target
[Service]
User=weaver
ExecStart=/opt/weaver/weaver --config /var/lib/weaver serve --port 9090
Restart=on-failure
# Uncomment to serve other machines. Settings → Security also works and needs no unit edit.
# Environment=WEAVER_HTTP_BIND_ADDRESS=0.0.0.0
[Install]
WantedBy=multi-user.target

To serve other machines, answer “My network” in the wizard or widen the address in Settings → Security. Setting WEAVER_HTTP_BIND_ADDRESS in the unit pins it instead and makes the field read-only.

  • weaver download <file.nzb> downloads one NZB without the server, with --output, --password, and --report for a JSON status file.
  • weaver par2 verify and weaver par2 repair run Weaver’s PAR2 engine against local files.