Home

Setup a developer machine in a single command line across multiple OS.

You will get a Starship terminal, Visual Studio Code with extensions and a lot more packages and tools which you can further customize

starship example

🔥 Quick Start

Mac and Linux-based distros:

curl -fsSL https://raw.githubusercontent.com/saul-salazar-dotcom/devinstall.com/master/install.sh | sh

On Windows, please open a PowerShell terminal as an Administrator and copy & paste the following command:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/saul-salazar-dotcom/devinstall.com/master/install.ps1'))

🚀 Features

  • EASY: copy & paste one line
  • KISS: script file of less than 100 lines
  • Cross Platform Wrapper powered by UPT
  • Tools Versions Manager powered by mise
  • Text Editor powered by Visual Studio Code
  • Works great with multiple Linux OS, MacOS and Windows
  • Installs Python3 and NodeJS (LTS) by default

🔤 Defaults

📝 Customization

You can add environment variables to install custom packages/tools/extensions. Just export the variable before running the quick start script.

export TOOLS="nodejs@18,go"
export EXTENSIONS="vscodevim.vim"
curl -fsSL https://raw.githubusercontent.com/saul-salazar-dotcom/devinstall.com/master/install.sh | sh
$env:PACKAGES = "docker-desktop"
$env:TOOLS = "java,go"
$env:EXTENSIONS = "ms-kubernetes-tools.vscode-kubernetes-tools"

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/saul-salazar-dotcom/devinstall.com/master/install.ps1'))
  • PACKAGES env var is meant to install system packages (which are available via apt, brew, choco, etc.)
  • TOOLS env var is meant to install developer tools (which are available via asdf plugins or mise plugins)
  • EXTENSIONS env var is meant to install extensions of Visual Studio Code using the extensions ID
  • After running the script you can install anything using upt install $pkg or mise use -g $pkg.

🎨 Presets

# AWS Cloud
export TOOLS="awscli,awscli-local,serverless,awsls,awsweeper,aws-nuke,awsebcli,aws-amplify-cli,aws-sam-cli,aws-sso-cli,saml2aws,granted,iamlive"

# Terraform
export TOOLS="opentofu,terraform,terragrunt,terraformer,terraform-lsp,tf-summarize,tfstate-lookup,tfmigrate,tflint,tfenv,tfctl,terrascan,k2tf,infracost"
export EXTENSIONS="HashiCorp.terraform,pjmiravalle.terraform-advanced-syntax-highlighting,tfsec.tfsec,Infracost.infracost"

# Security
export TOOLS="amass,bitwarden-secrets-manager,nancy,sentry-cli,gitleaks,trivy,vals,wrk,grype,syft,hey"
export EXTENSIONS="Trunk.io"

# Linters & Testing
export TOOLS="ls-lint,dotenv-linter,spectral,ruff,yamlfmt,yamllint,shellcheck,shellspec,typos,maestro,goss,hyperfine"

# FrontEnd
Zignd.html-css-class-completion,Syler.sass-indented,octref.vetur

📦 Requirements

The only dependency is curl for Linux and MacOS. On Windows you may need to install Git Bash.

brew install curl # MacOS
apt install curl # Debian and Ubuntu
yum install curl # Redhat and CentOS
dnf install curl # Fedora
nix-env -i curl # NixOS
pacman -S curl # Arch Linux
zypper install curl # SUSE and OpenSUSE
emerge net-misc/curl # Gentoo
xbps-install curl # Void Linux

💡 FAQ

Why some applications are installed using UPT and others using mise?

Because some applications are not compatible via a system package manager and we have to use mise to download directly from GitHub releases.