Install the runner
sigscape-daemon is one binary. The installer downloads the latest release for your machine, verifies it against the release's checksums, and puts it in a folder on your path.
macOS and Linux
curl -fsSL https://sigscape.org/daemon/install.sh | sh
The binary lands in ~/.local/bin/sigscape-daemon. Set SIGSCAPE_BIN to choose another folder. The script tells you if the folder is not on your PATH.
Windows
In PowerShell:
irm https://sigscape.org/daemon/install.ps1 | iex
The binary lands in %LOCALAPPDATA%\sigscape\bin\sigscape-daemon.exe, and that folder is added to your user PATH. Open a new terminal afterwards.
The releases are private
While the tools are unpublished, the releases live in a private GitHub repository. The installer needs one of:
- the GitHub CLI, signed in:
gh auth loginonce; - a token in
SIGSCAPE_GITHUB_TOKEN,GITHUB_TOKENorGH_TOKENthat can readsigscape/sigscape-daemon.
Without either, the installer stops and says so. The daemon's own updater uses the same credential.
By hand
Every release on GitHub carries one archive per platform and a checksums.txt:
| Platform | Archive |
|---|---|
| Linux x86_64 | sigscape-daemon-x86_64-unknown-linux-gnu.tar.gz |
| Linux arm64 | sigscape-daemon-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | sigscape-daemon-aarch64-apple-darwin.tar.gz |
| macOS Intel | sigscape-daemon-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | sigscape-daemon-x86_64-pc-windows-msvc.tar.gz |
Unpack it, check the sha256 against checksums.txt, and put sigscape-daemon somewhere on your path. sigscape-daemon --version prints the version and platform.
What the packages need
The daemon installs each package the first time you run it, into its own environment, and says so in the run's log. Two of them need something on the machine first:
- Tau needs pixi, which builds Tau's environment including SageMath on first use (about 20 minutes and 6 GB, once).
- MuTopia needs Docker or Podman; it runs from the published container image.
- MuSiCal and SigMA2 need uv, one binary, which the daemon uses to make their Python environments. SigMA2's panel simulation also needs
bedtoolson the path.
The runner panel in the studio lists each tool as ready, installs on first run, or unavailable with the reason.
With Docker
If you have Docker Desktop, the runner also comes as a container image with everything its tools need (uv, pixi, git, bedtools, the Docker client): nothing else to install, and no Rust ever.
docker run -d --name sigscape-runner --restart unless-stopped \
-p 127.0.0.1:8765:8765 \
-v "$HOME/sigscape:$HOME/sigscape" -e SIGSCAPE_HOME="$HOME/sigscape" \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/sigscape/sigscape-runner:latest
docker logs sigscape-runner # prints the link that opens the studio connected
Or, with the docker-compose.yml from the daemon's repository: docker compose up -d, then docker compose logs runner.
- Your files live in
~/sigscape(data under~/sigscape/workspace/data). It is mounted at the same path inside the container because MuTopia runs in a second container started through your Docker, which reads paths as your computer sees them. On Linux the runner writes the files as you, not as root. - Only this computer can reach the runner: the port is published on 127.0.0.1 only, and the studio still needs the token in the link (kept in
~/sigscape/token, so the link survives restarts). - Updates come as a new image:
docker pull ghcr.io/sigscape/sigscape-runner:latest,docker rm -f sigscape-runner, and the run command again. "Update and restart" in the studio says so instead of swapping the binary inside the container. - Windows: run it from WSL (an Ubuntu terminal), where
$HOMEis a Linux path; MuTopia's second container cannot use aC:\path.
Checked on Linux: MuTopia (Breast-All on a PCAWG breast genome, 95 s, through the second container) and Liftover (its own Python environment built inside) run from the image.