Skip to content

Universal CLI installer for Affinity products on Linux - Professional one-command installation for Affinity Photo, Designer, and Publisher

License

Notifications You must be signed in to change notification settings

ind4skylivey/affinity-cli

Repository files navigation

Affinity CLI · v2.0.0

banner

One Command. Zero Friction. Install the Affinity Universal app on Linux with a prepared Wine environment.

Release Python License Wine


Why Affinity CLI?

  • Universal installer: downloads and runs the official Affinity Universal EXE.
  • Guided Wine setup: prepares a 64‑bit Windows 11 prefix with required components.
  • Profiles for speed vs. completeness: minimal, standard (default), full.
  • Clear, non-interactive flow with preflight checks and progress logs.

Prerequisites

  • Python 3.8+
  • winetricks, curl, tar, python3 on the host
  • Vulkan drivers if you plan to use DXVK (recommended)

Quick Start

# Clone
git clone https://github.com/ind4skylivey/affinity-cli.git
cd affinity-cli

# Virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install CLI
python -m pip install --upgrade pip
python -m pip install -e .

# Install Affinity (default profile: standard)
affinity-cli install

Developer install (from git)

git clone https://github.com/ind4skylivey/affinity-cli.git
cd affinity-cli
git checkout release/v2.0.0
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Upgrading from an older checkout? Run:

git pull
rm -rf .venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

32423451 ## Wine Runtime Setup (optional but recommended)

Affinity CLI can prepare a prefix on first run. If you prefer a pinned, portable runtime, use the companion repo affinity-wine-setup.

Quick start

curl -LO https://raw.githubusercontent.com/ind4skylivey/affinity-wine-setup/main/setup-wine-ge.sh
chmod +x setup-wine-ge.sh
GE_TAG=GE-Proton10-25 ./setup-wine-ge.sh

This creates a clean prefix at ~/.wine-affinity, sets Windows 10, and installs .NET 3.5 SP1, .NET 4.8, DXVK, and VKD3D using Proton-GE.

Run Affinity CLI with the prepared runtime

WINEPREFIX=$HOME/.wine-affinity \
WINE=$HOME/.local/share/Proton-GE/GE-Proton10-25/files/bin/wine \
affinity-cli <command>

Custom options

  • WINVER_TARGET: win10 (default) or win11
  • WINEPREFIX: destination prefix (default ~/.wine-affinity)
  • WINE_BIN / WINESERVER_BIN: use your own Wine build; set SKIP_DOWNLOAD=1 to skip Proton-GE download
  • GITHUB_TOKEN: optional, avoids GitHub API rate limits when using latest

Verify

WINEPREFIX=$HOME/.wine-affinity \
WINE=$HOME/.local/share/Proton-GE/GE-Proton10-25/files/bin/wine \
$WINE winecfg

If winecfg opens without WoW64 experimental warnings, the runtime is ready.


Screenshots

CLI workflow

Affinity CLI running install workflow in terminal

Affinity running on Linux

Real installs created with Affinity-CLI on Linux desktops:

Affinity Universal installer and Affinity apps running on a Linux desktop

Affinity Photo running on Linux using the Affinity-CLI Wine setup

Affinity apps launched on Linux after installation with Affinity-CLI

First Run: Prefix Preparation

  • The first affinity-cli install creates a dedicated 64-bit Wine prefix set to Windows 11.
  • Installs Windows components via winetricks (depending on profile).
  • Initial setup can take several minutes (10–20 on the “full” profile).
  • During this time you may see logs like:
    • winetricks is still running... please wait
    • Preparing: C:\...\netfx_....msi...
  • Subsequent runs reuse the prepared prefix and are much faster.
  • Do not close the terminal during this step.

Wine Profiles

Choose how many components to install in the prefix:

  • minimal – fastest, smallest set (advanced users): win11, corefonts, tahoma, crypt32, d3dcompiler_47
  • standard (default) – recommended balance: minimal + vcrun2022
  • full – maximum compatibility; first run can take 10–20 minutes: standard + dotnet48, dxvk, vkd3d, remove_mono

Examples:

affinity-cli install --wine-profile minimal
affinity-cli install --wine-profile standard   # default
affinity-cli install --wine-profile full

# via environment variable
AFFINITY_WINE_PROFILE=full affinity-cli install

Commands

affinity-cli install                      # preflight -> prepare prefix -> download/run installer -> verify
affinity-cli install --preflight-only
affinity-cli install --dry-run
affinity-cli install --silent
affinity-cli install --prefix ~/.wine-affinity-pro
affinity-cli install --download-url https://downloads.affinity.studio/Affinity%20x64.exe
affinity-cli install --wine-profile minimal|standard|full

Troubleshooting

  • Windows version warning: rerun with a clean prefix or try the full profile.
  • Logs: set AFFINITY_CLI_LOG=DEBUG and rerun.
  • Download issues: use --download-url or set AFFINITY_DOWNLOAD_URL.

Roadmap

  • Pre-built Wine runtime & prefix: optional downloadable, pre-configured runtime/prefix to speed up first install.

License

MIT License. See LICENSE.


Acknowledgments

  • Wine, DXVK, VKD3D and all contributors.
  • Everyone opening issues, testing builds, and sharing feedback.

🌑 Why We Do This

Native Linux support shouldn't be a luxury, yet we often find ourselves as the forgotten ones—the children of the night in the creative software world.

It costs nothing to acknowledge the Linux community, but since the industry won't build it for us, we build it ourselves.

Affinity-Cli exists to bridge that gap. We implement what others ignore, proving that creativity has no OS boundaries. If they won't give us the tools, we'll forge the path to run them anyway.

For the creators, the hackers, and the forgotten ones.

🤝 Community & Support

Affinity-Cli is an open-source project built by and for the Linux creative community.

  • Found a bug? Please open an issue with your logs and distribution details.
  • Have an idea? We welcome feature requests and pull requests!
  • Wine trouble? Wine configuration can be tricky. If you encounter specific Wine errors, check the Troubleshooting section or try using a clean prefix.

This project is not affiliated with Serif (Affinity). It is a community tool to help you run the software you own on the OS you love.

About

Universal CLI installer for Affinity products on Linux - Professional one-command installation for Affinity Photo, Designer, and Publisher

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Languages