DOCUMENTATION · v1.0

Docs.

Everything you need to know about xo.rs installation scripts — getting started, troubleshooting, templates, and examples.

Getting Started Windows & Linux Contributing
/ 01 Getting Started

xo.rs provides a collection of installation scripts that let you install development tools with a single command. No manual downloads, no configuration hassles — copy, paste, run.

TIP

All scripts are idempotent — running them multiple times is safe. If the tool is already installed, the script detects it and exits cleanly.

Prerequisites (both platforms)

  • Internet connection
  • Administrator / sudo privileges for most tools
  • Windows 10+ or Ubuntu 20.04+ / Debian 10+ / macOS
/ 02 Windows · PowerShell

Prerequisites

  • Windows 10 or Windows 11
  • PowerShell 5.1 or later (PowerShell 7+ recommended)
  • Administrator privileges for most installations

Basic Usage

Open PowerShell and run:

PowerShell
irm https://xo.rs/install/<tool>.ps1 | iex

Example: Install Go

PowerShell
irm https://xo.rs/install/go.ps1 | iex

Example: Install Custom PowerShell Profile

PowerShell
irm https://xo.rs/install/profile.ps1 | iex
WARN
Execution Policy: If you hit an execution policy error, run first:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
/ 03 Linux · Bash

Prerequisites

  • Ubuntu 20.04+, Debian 10+, or macOS
  • Bash shell
  • sudo privileges for most installations

Basic Usage

Open your terminal and run:

Bash
curl -sSL https://xo.rs/install/<tool>.sh | bash

Example: Install Docker

Bash
curl -sSL https://xo.rs/install/docker.sh | bash

Example: Install Go

Bash
curl -sSL https://xo.rs/install/go.sh | bash
NOTE

Some scripts may prompt for your sudo password during installation.

/ 04 Features
Idempotent

Safe to run multiple times. Detects existing installations and exits cleanly.

Progress Indicators

Visual feedback during downloads and installations so you always know what's happening.

Error Handling

Robust error handling with clear messages explaining what went wrong and how to fix it.

Latest Versions

Always fetches the latest stable releases directly from official sources.

Common Libraries

All scripts share two common libraries that provide consistent logging, spinners, and utilities:

PowerShell (common.ps1)

Show-Banner           # Display branded ASCII art
Write-Success/Error/Warning/Info  # Colored logging
Command-Exists        # Check if a command is available
Ensure-Admin          # Require administrator privileges
Invoke-WithSpinner    # Show progress spinner

Bash (common.sh)

show_banner           # Display branded ASCII art
log_success/error/warning/info    # Colored logging
command_exists        # Check if a command is available
prime_sudo            # Prime sudo credentials
run_with_spinner      # Show progress spinner
/ 05 Troubleshooting

Windows Issues

Execution Policy Error

If you see an error about execution policy, run this first:

PowerShell
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force

Network Error

If downloads fail, check your internet connection and retry. Some corporate networks block remote script execution — contact your network administrator.

Administrator Rights

Most installations require elevated privileges. Right-click PowerShell and select "Run as Administrator".

Linux Issues

Permission Denied

Verify you have sudo access:

Bash
sudo -v

Package Manager Issues

Update your package manager before running scripts:

Bash
sudo apt update  # Ubuntu / Debian

Group Changes (Docker, etc.)

Some scripts add your user to a group (e.g. docker). Log out and back in for the changes to take effect.

/ 06 Examples

Complete Development Environment

Windows

PowerShell
# Install PowerShell 7+ and profile
irm https://xo.rs/install/ps.ps1 | iex
irm https://xo.rs/install/profile.ps1 | iex

# Languages
irm https://xo.rs/install/go.ps1 | iex
irm https://xo.rs/install/python.ps1 | iex

# Build tools
irm https://xo.rs/install/build_essentials.ps1 | iex
irm https://xo.rs/install/cmake.ps1 | iex

Linux

Bash
# Essential tools
curl -sSL https://xo.rs/install/git.sh | bash
curl -sSL https://xo.rs/install/docker.sh | bash

# Languages
curl -sSL https://xo.rs/install/go.sh | bash
curl -sSL https://xo.rs/install/python.sh | bash
curl -sSL https://xo.rs/install/rust.sh | bash

Batch Install Loop

Windows (PowerShell)

$tools = @('go', 'python', 'cmake', 'protoc')
foreach ($tool in $tools) {
    irm "https://xo.rs/install/$tool.ps1" | iex
}

Linux (Bash)

#!/bin/bash
for tool in git docker go python rust; do
    curl -sSL "https://xo.rs/install/$tool.sh" | bash
done
/ 07 Contributing

Want to add a new script or improve an existing one? Contributions are welcome.

PowerShell Template

PowerShell template
iex (iwr -useb https://xo.rs/common.ps1)

Show-Banner
Write-Section "Tool Name Installation"

if (Command-Exists tool-name) {
    Write-Success "Tool is already installed"
    exit
}

Ensure-Admin

# Your installation logic here

Write-Success "Installation complete!"

Bash Template

Bash template
#!/bin/bash
source <(curl -sSL https://xo.rs/common.sh)

show_banner
log_section "Tool Name Installation"

if command_exists tool-name; then
    log_success "Tool is already installed"
    exit 0
fi

prime_sudo

# Your installation logic here

log_success "Installation complete!"
Best Practices
  • Always check if the tool is already installed
  • Use common library functions for consistency
  • Provide clear error messages
  • Test on clean systems before submitting
  • Document prerequisites and post-install steps
  • Add an entry to scripts.json for catalog visibility

Submit

Fork github.com/incredimo, add your script, and open a pull request. Questions? Email [email protected].