Skip to content

Command Line

Steve Whitley edited this page Nov 11, 2026 · 1 revision

Using the command line

Everything the app does is available from the distiller command-line tool, which ships inside the app:

/Applications/Distiller.app/Contents/Helpers/distiller --help

To type just distiller, link it onto your PATH, for example:

ln -s /Applications/Distiller.app/Contents/Helpers/distiller /usr/local/bin/distiller

From a source checkout, use swift run distiller …. The app and the command line share the same library, bottles and settings, so a game installed in one appears in the other.

--help works on every command; the command-line reference lists them all. Commands that act on a game take its game ID, from distiller games.

Set DISTILLER_HOME to a folder to give the tool its own library and settings, away from your real ones (handy for experiments and scripts):

export DISTILLER_HOME=/tmp/distiller-test

Setting up

distiller hw                      # this Mac: chip, GPU cores, memory, macOS, Rosetta (--json for JSON)
distiller setup                   # what's installed and what's missing
distiller setup install --all     # install everything missing (Rosetta, Wine, winetricks, cabextract, DXMT, DXVK)
distiller components import-gptk ~/Downloads/<Game Porting Toolkit>.dmg   # D3DMetal, from Apple's download
distiller storage show            # where Wine builds and bottles are kept

Installing and playing

distiller community refresh                      # download the latest catalogue
distiller community search "portal"              # find a game and its recipes
distiller install recipe.yaml                    # install from a recipe file
distiller install recipe.yaml --file installer=~/Downloads/Setup.exe   # supply a file the recipe asks for
distiller games                                  # your library, with game IDs
distiller launch <game>                          # play, and wait for it to exit

distiller install prints every step before it starts and its progress as it goes. When a recipe needs you to download the installer from the publisher's page, it shows the page and asks for the path of the file you downloaded (or take it with --file <id>=<path>); the file is checked before it's used. Games used in place from another drive take --folder <id>=<path> and --link.

Trying something for one launch, without changing the recipe:

distiller launch <game> --diagnose               # Wine logs DLL loads, exceptions and errors; Metal HUD on
distiller launch <game> --graphics dxvk          # another graphics layer
distiller launch <game> --dll nvapi64=disabled   # a DLL override (repeat for more)
distiller launch <game> --args "-dx11"           # other program arguments

Keeping components up to date

distiller components                              # installed versions; "active" marks active ones
distiller components check                        # newer releases?
distiller components update                       # install them (except held components), then clean up
distiller components update wine-staging          # just one
distiller components use wine-staging@11.21       # make a version active (holds the component)
distiller components clean --dry-run              # what would be removed
distiller components updates auto                 # update mode: ask, auto or off

Per game:

distiller games versions <game>                                   # what it uses, and whether it follows updates
distiller games versions <game> --wine wine-staging@11.21         # stay on a version
distiller games versions <game> --wine follow --graphics follow   # follow updates again
distiller games restore <game>                                    # its restore point, if any
distiller games restore <game> --rollback                         # undo the move to a newer Wine
distiller games restore <game> --works                            # it works: remove the restore point
distiller games rebuild <game>                                    # reinstall into a new bottle
distiller games rebuild <game> --keep                             # keep the rebuilt bottle (old one to the Trash)
distiller games rebuild <game> --switch-back                      # go back to the old bottle

distiller launch and distiller recipe run-installer save a restore point and update the bottle first when a game is moving to a newer Wine, and say so.

Making a recipe

distiller recipe inspect ~/Games/Example/Game.exe     # what the program uses, and suggested settings
distiller recipe create --help                        # make a recipe from a folder, an installer or an empty bottle
distiller recipe programs <game>                      # Windows programs in the game's bottle
distiller recipe set-launch <game> <program>          # choose the one to launch
distiller recipe edit <game>                          # path of the game's editable recipe.yaml
distiller recipe reload <game>                        # apply your edits
distiller recipe run-installer <game> ~/Downloads/Patch.exe   # run another installer in the bottle (and add it to the recipe)
distiller recipe validate recipe.yaml                 # check a recipe file
distiller recipe resolve recipe.yaml                  # the settings it resolves to on this Mac
distiller recipe check-link <url>                     # does a download link work without the page?
distiller recipe check-signature Setup.exe            # who signed an installer

distiller run <bottle> <program> runs any program (or Wine's own tools, such as winecfg or regedit) in a bottle; distiller bottles lists bottles.

Sharing

distiller github login                                       # sign in with a one-time code
distiller recipe community-check <game>                      # prove the recipe works from a clean start
distiller recipe submit <game> --tier gold --confirm         # open the pull request (with a report)
distiller community report-link <game> --tier silver         # a pre-filled report form for any game

Storage and logs

distiller storage show
distiller storage move --help        # move Wine builds or bottles to another drive
distiller logs                       # how much the logs take
distiller logs clean
distiller logs set --help            # how long and how much to keep

The AI assistant

distiller assistant on                    # allow AI assistants to read your games (off by default)
distiller assistant setup claude-code     # connection steps for an app (claude-desktop, chatgpt, lm-studio, ollama, other)
distiller assistant off

Your AI app runs distiller mcp itself; you don't start it. See Troubleshooting.

Distiller itself

distiller --version
distiller app check          # a newer Distiller? (from the repository this copy was built from)
distiller app download       # download it to ~/Downloads and check it (installing is done in the app)

Clone this wiki locally