Installation

Installation

Capystreama runs on Linux and Windows (amd64 and arm64). There are three ways to get it, depending on whether you want a plain build, a plugin-enabled build, or a Nix-managed one.

Prebuilt releases

The simplest option. Each release ships archives for every platform:

PlatformArchive
Linux x86-64capystreama_Linux_x86_64.tar.xz
Linux arm64capystreama_Linux_arm64.tar.xz
Windows x86-64capystreama_Windows_x86_64.zip
Windows arm64capystreama_Windows_arm64.zip

Download the archive for your platform from the GitLab releases , extract it, and run the capystreama binary. Each release also publishes a signed checksums.txt — see Updates for how release signing works.

Prebuilt binaries are the host plus the plugins bundled into that release. If you need a different set of plugins, build your own (below).

Building with plugins (capystreama-build)

Plugins are linked in at build time by the xcaddy-style capystreama-build command. It generates a throwaway scratch main module that requires the GUI plus each requested plugin, blank-imports each so its init-time core.Register fires, and builds the result.

Run it straight from the module proxy — no clone required:

go run gitlab.com/terryp/capystreama-gui/src/cmd/capystreama-build@latest \
    -with gitlab.com/terryp/capystreama-website/go@latest \
    -tags "website" \
    -o capystreama
bash

Key flags:

FlagDescription
-oOutput binary path (default capystreama).
-withPlugin module to include; repeatable. module@version or module=path.
-guiGUI module selector: module@version or module=path.
-tagsSpace-separated build tags (e.g. "website schedule").
-versionVersion string injected into the binary.

Use module=./path to build against a local checkout (it becomes a replace directive) — the way to pick up unpublished changes with no Go workspace. See the GUI repo's BUILDING.md for the full reference.

The cgo / Fyne toolchain

Building the binary is a cgo build: it needs a C compiler, pkg-config, and the OpenGL / X11 / Wayland client libraries on the build path (and their shared objects at runtime).

The capystreama-website repo wires all of this up in a Nix flake app that invokes capystreama-build with the website module and runs the result:

nix run .#gui        # from the capystreama-website checkout
bash