Skip to content

Casks (Applications)

Casks allow you to install macOS applications and Linux desktop apps.


What are Casks?

Casks extend Stout to install:

  • macOS: DMG, PKG, and ZIP application bundles
  • Linux: AppImage, Flatpak, and other desktop applications

Unlike formulas (command-line tools), casks install GUI applications.


Basic Usage

Search for Applications

stout cask search firefox

Install an Application

stout cask install firefox

Or use the --cask flag with install:

stout install --cask firefox

List Installed Applications

stout cask list

Get Application Info

stout cask info visual-studio-code

Managing Applications

Uninstall

Remove an application:

stout cask uninstall firefox

Uninstall with Zap

Remove application and all associated files (preferences, caches, etc.):

stout cask uninstall --zap firefox

Warning

The --zap option removes user preferences and data. Use with caution.

Check for Updates

stout cask outdated

Upgrade Applications

Upgrade a specific application:

stout cask upgrade firefox

Upgrade all applications:

stout cask upgrade

Installation Locations

macOS

  • Applications: /Applications or ~/Applications
  • Binaries: Symlinked to /opt/homebrew/bin

Linux

  • AppImages: ~/.local/share/appimages
  • Binaries: Symlinked to ~/.local/bin

Common Casks

Browsers

stout cask install firefox
stout cask install google-chrome
stout cask install brave-browser

Development Tools

stout cask install visual-studio-code
stout cask install iterm2
stout cask install docker
stout cask install postman

Productivity

stout cask install slack
stout cask install notion
stout cask install 1password

Media

stout cask install vlc
stout cask install spotify
stout cask install obs

Cask Options

Force Reinstall

stout cask install --force firefox

Skip Quarantine (macOS)

By default, macOS quarantines downloaded applications. To skip:

stout cask install --no-quarantine some-app

Casks in Brewfiles

Include casks in your Brewfile:

# Brewfile

# Formulas (CLI tools)
brew "git"
brew "node"

# Casks (Applications)
cask "firefox"
cask "visual-studio-code"
cask "docker"

Install everything:

stout bundle install

Troubleshooting

Application won't open (macOS)

If macOS blocks the application:

  1. Open System Preferences > Security & Privacy
  2. Click "Open Anyway" for the blocked application

Or remove quarantine attribute:

xattr -d com.apple.quarantine /Applications/SomeApp.app

Application not found after install

Check if the cask includes a binary:

stout cask info some-app

If it doesn't add to PATH, launch from Applications folder.

Cask conflicts with existing installation

Uninstall the existing version first, or use --force:

stout cask install --force some-app

Preferred Syntax: --cask Flag

The stout cask <command> subcommand exists for muscle-memory compatibility with brew cask but is deprecated in current releases. Each invocation now prints a deprecation notice pointing at the canonical form, which uses the --cask flag on the top-level command:

Deprecated Preferred
stout cask install firefox stout install --cask firefox
stout cask uninstall firefox stout uninstall --cask firefox
stout cask search browser stout search --cask browser
stout cask info visual-studio-code stout info --cask visual-studio-code
stout cask list stout list --cask
stout cask outdated stout outdated --cask
stout cask upgrade stout upgrade --cask

Cask logic lives in the stout-cask crate and is dispatched from src/cli/cask.rs for the deprecated path and from each top-level command module for the canonical path.


Linux Cask Handling

On Linux the cask abstraction wraps three different distribution formats:

Format Install target Detection
AppImage ~/.local/share/appimages/<app>.AppImage (chmod +x, symlinked into ~/.local/bin) .AppImage artefact in the cask manifest
Flatpak Delegated to the host flatpak CLI under the user installation flatpak provider declared in the manifest
Tarball/zip Extracted into ~/.local/share/<app>/, binaries symlinked into ~/.local/bin Default fallback

The same --cask flag is used regardless of which underlying format the package uses — stout picks the right backend based on the manifest.


Quarantine and Code Signing (macOS)

When stout installs a cask on macOS it preserves whatever code signature the upstream artefact carries and applies an xattr quarantine flag identical to what a browser download would attach. This means Gatekeeper still runs the first time you launch the app.

stout doctor includes a Mach-O signature check that walks every binary under the Cellar and Caskroom and surfaces anything missing or invalid. Pair it with stout doctor --fix to re-sign or reinstall affected packages in one pass.