A command-line installer for Windows.
Branch: master
Clone or download

README.md

Scoop

Features | Installation | Documentation


Code Size Repository size Build Status Gitter Chat License

Scoop is a command-line installer for Windows.

What does Scoop do?

Scoop installs programs from the command line with a minimal amount of friction. It tries to eliminate things like:

  • Permission popup windows
  • GUI wizard-style installers
  • Path pollution from installing lots of programs
  • Unexpected side-effects from installing and uninstalling programs
  • The need to find and install dependencies
  • The need to perform extra setup steps to get a working program

Scoop is very scriptable, so you can run repeatable setups to get your environment just the way you like, e.g.:

scoop install sudo
sudo scoop install 7zip git openssh --global
scoop install aria2 curl grep sed less touch
scoop install python ruby go perl

If you've built software that you'd like others to use, Scoop is an alternative to building an installer (e.g. MSI or InnoSetup) — you just need to zip your program and provide a JSON manifest that describes how to install it.

Requirements

  • Windows 7 SP1+ / Windows Server 2008+
  • PowerShell 3 (or later) and .NET Framework 4.5+
  • PowerShell must be enabled for your user account e.g. set-executionpolicy remotesigned -s currentuser

Installation

Run this command from your PowerShell to install scoop to its default location (C:\Users\<user>\scoop)

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

Once installed, run scoop help for instructions.

The default setup is configured so all user installed programs and Scoop itself live in C:\Users\<user>\scoop. Globally installed programs (--global) live in C:\ProgramData\scoop. These settings can be changed through environment variables.

Install Scoop to a Custom Directory

[environment]::setEnvironmentVariable('SCOOP','D:\Applications\Scoop','User')
$env:SCOOP='D:\Applications\Scoop'
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

Configure Scoop to install global programs to a Custom Directory

[environment]::setEnvironmentVariable('SCOOP_GLOBAL','F:\GlobalScoopApps','Machine')
$env:SCOOP_GLOBAL='F:\GlobalScoopApps'

Documentation

Multi-connection downloads with aria2

Scoop can utilize aria2 to use multi-connection downloads. Simply install aria2 through Scoop and it will be used for all downloads afterward.

scoop install aria2

You can tweak the following aria2 settings with the scoop config command:

Inspiration

What sort of apps can Scoop install?

The apps that install best with Scoop are commonly called "portable" apps: i.e. compressed program files that run stand-alone when extracted and don't have side-effects like changing the registry or putting files outside the program directory.

Since installers are common, Scoop supports them too (and their uninstallers).

Scoop is also great at handling single-file programs and Powershell scripts. These don't even need to be compressed. See the runat package for an example: it's really just a GitHub gist.

Support this project

If you find Scoop useful and would like to support ongoing development and maintenance, here's how: