Affinity CLI · v2.0.0
One Command. Zero Friction. Install the Affinity Universal app on Linux with a prepared Wine environment.
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,python3on 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 .
## 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) orwin11WINEPREFIX: destination prefix (default~/.wine-affinity)WINE_BIN/WINESERVER_BIN: use your own Wine build; setSKIP_DOWNLOAD=1to skip Proton-GE downloadGITHUB_TOKEN: optional, avoids GitHub API rate limits when usinglatest
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 running on Linux
Real installs created with Affinity-CLI on Linux desktops:
First Run: Prefix Preparation
- The first
affinity-cli installcreates 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 waitPreparing: 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=DEBUGand rerun. - Download issues: use
--download-urlor setAFFINITY_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.
🎨 Creative Freedom Fund
Native Linux support shouldn't be a luxury. If this tool helped you ditch Windows and keep creating, consider supporting the project.



