placeholderScoop Handbook

Scoop Handbook

Scoop is a command-line installer for Windows. This note covers directory structure, installation, common commands, updates, cleanup, and buckets.

Scoop is an installer
The goal of Scoop is to let you use Unix-y programs in a normal Windows environment
Mike Zick

Scoop is a Windows download and installation tool that makes it convenient to install all kinds of software.

Directory Structure

  • apps/
    • git/
      • current/
      • 2.45.1.windows.1
  • buckets/
    • main/
    • extras/
  • cache/
  • persist/
  • shims/
  • Apps: installed software or programs.

  • Buckets: collections of apps. The buckets directory stores many buckets. For example, main is the default bucket, extras includes common software not included in the main bucket, and nerdfonts is a bucket for font apps. Each bucket is a GitHub repository that maintains many app JSON files. These JSON files store installation information for apps, including version, license, download URL, etc. These JSON files are called app manifests. Here is a simple example:

    {  "version": "1.0",  "url": "https://github.com/lukesampson/cowsay-psh/archive/master.zip",  "extract_dir": "cowsay-psh-master",  "bin": "cowsay.ps1"}
  • Cache: stores temporary downloaded files.

  • Shims: Scoop adds this directory to the environment variable. For programs installed through Scoop, Scoop automatically generates a corresponding exe file under the Shims directory, so the program can be called directly from the command line after installation. For GUI programs, Scoop automatically adds shortcuts to the Start Menu under C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Scoop Apps.

Installation

The default installation path is C:\Users\<YOUR USERNAME>\scoop.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserInvoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

Custom installation directory:

$ irm get.scoop.sh -outfile 'install.ps1'$ .\install.ps1 -ScoopDir 'D:\envir_vars\scoop\' -ScoopGlobalDir 'D:\envir_vars\scoop\GlobalApps' -NoProxy

If Scoop is already installed and you want to migrate the directory, see Change Directory.

To migrate apps, export JSON with scoop export and then import it. Directly moving source directory files will not make shims work, because they still point to the original directory.

Command

Install & Uninstall

  • scoop search vim searches for an app.
  • scoop install neovim installs a specified app.
  • scoop install git@2.23.0.windows.1 installs a specified app version.
  • scoop install -g git installs an app globally.
    Install Options:
    -g, --global Install the app globally
    -i, --independent Don’t install dependencies automatically
    -k, --no-cache Don’t use the download cache
    -u, --no-update-scoop Don’t update Scoop before installing if it’s outdated
    -s, --skip Skip hash validation (use with caution!)
    -a, --arch <32bit|64bit> Use the specified architecture, if the app supports it

  • scoop uninstall neovim uninstalls a specified app.
  • scoop uninstall -p python uninstalls an app and its configuration files.
  • scoop uninstall -g git uninstalls a global app.

Update

  • scoop list List installed apps

  • scoop status Show status and check for new app versions

    Name      Installed Version Latest Version Missing Dependencies Info----      ----------------- -------------- -------------------- ----7zip      23.01             24.05aria2     1.36.0-1          1.37.0-1eza       0.18.15           0.18.16fastfetch 2.11.3            2.14.0fd        9.0.0             10.1.0git       2.42.0.2          2.45.1gitui     0.26.1            0.26.2kotlin    1.9.22            2.0.0neovim    0.9.5             0.10.0
  • scoop update updates Scoop.

  • scoop update neovim 7zip aria2 updates specified apps.

  • scoop update * updates all apps.

  • scoop hold/update neovim uses hold to freeze certain apps, preventing them from being updated. unhold is the corresponding unfreeze command, removing the update restriction.

Clean

  • scoop cleanup git cleans old versions of a specified app.
  • scoop cleanup * cleans old versions of all apps.
  • scoop cache rm * cleans cached download files.

MISC

Switch between different versions of the same program:

scoop reset python@3.10.6# do somethingscoop reset python@3.12.3
  • alias Manage scoop aliases
  • bucket Manage Scoop buckets
  • cat Show content of specified manifest.
  • checkup Check for potential problems
  • create Create a custom app manifest
  • depends List dependencies for an app, in the order they’ll be installed
  • download Download apps in the cache folder and verify hashes
  • export Exports installed apps, buckets (and optionally configs) in JSON format
  • help Show help for a command
  • home Opens the app homepage
  • import Imports apps, buckets and configs from a Scoopfile in JSON format
  • info Display information about an app
  • prefix Returns the path to the specified app
  • shim Manipulate Scoop shims
  • virustotal Look for app’s hash or url on virustotal.com
  • which Locate a shim/executable (similar to ‘which’ on Linux)

Ref

Scoop_Wiki