One-command install for all platforms. No sudo — installs under your home directory.

For server setup after installing, see Quick Start. For package managers, Docker, and other methods, see Server Installation.


What It Does

  1. Detects OS, CPU architecture, and platform variants (Rosetta 2)
  2. Downloads the correct binary from GitHub Releases
  3. Installs to ~/bin (customizable via --install-dir)
  4. Adds install directory to PATH via shell config
  5. Runs bedrud completions for shell tab-completion
  6. Prints next steps

Requirements

PlatformDependencies
macOS / Linuxcurl + tar
WindowsPowerShell 5.1+ (ships with Windows 10/11)

Quick Install

curl -fsSL https://get.bedrud.org | bash

Reload shell, then verify:

source ~/.bashrc  # or ~/.zshrc
bedrud --version
irm https://get.bedrud.org/install.ps1 | iex
bedrud --version

Flags & Options

Bash Installer

Usage: curl -fsSL https://get.bedrud.org | bash -s -- [options]
FlagDefaultDescription
--install-dir <dir>~/binWhere to place the binary
--version <ver>latestPin to a release (e.g. v1.2.0)
--skip-shelloffDon’t modify shell RC files or PATH
-h, --helpPrint usage and exit

Examples:

# Default
curl -fsSL https://get.bedrud.org | bash
 
# Pin version
curl -fsSL https://get.bedrud.org | bash -s -- --version v1.2.0
 
# System-wide install
curl -fsSL https://get.bedrud.org | sudo bash -s -- --install-dir /usr/local/bin
 
# CI / automation — skip shell config
curl -fsSL https://get.bedrud.org | bash -s -- --skip-shell

PowerShell Installer

Usage: irm https://get.bedrud.org/install.ps1 | iex

To pass parameters, save to file first:

irm https://get.bedrud.org/install.ps1 -OutFile install.ps1
.\install.ps1 -Version v1.2.0 -InstallDir C:\Tools
ParameterDefaultDescription
-InstallDir <path>$HOME\binWhere to place bedrud.exe
-Version <ver>latestInstall a specific release version
-SkipPath$falseDon’t add install dir to user PATH

Environment Variables

VariableDefaultPlatformsDescription
BEDRUD_INSTALL~/binBash onlyOverride install directory (same as --install-dir)
BEDRUD_REPObedrud-ir/bedrudBothOverride GitHub repo (for forks or mirrors)
BEDRUD_INSTALL=/opt/bedrud curl -fsSL https://get.bedrud.org | bash
BEDRUD_REPO=myorg/bedrud-fork curl -fsSL https://get.bedrud.org | bash
$env:BEDRUD_REPO = "myorg/bedrud-fork"
irm https://get.bedrud.org/install.ps1 | iex

Platform Support

TargetOSArchitectureNotes
darwin_amd64macOSIntel (x86_64)Standard
darwin_arm64macOSApple Silicon (M1/M2/M3/M4)Rosetta 2 auto-detected
linux_amd64Linuxx86_64Standard
linux_arm64LinuxARM64Standard
freebsd_amd64FreeBSDx86_64Standard
windows_amd64Windowsx86_64Standard
windows_arm64WindowsARM64Standard
OS and architecture detection logic
uname -s → "Darwin"  → darwin
           "Linux"   → linux
           "FreeBSD" → freebsd
           "MINGW*"  → redirect to PowerShell script
           "MSYS*"   → redirect to PowerShell script

uname -m → "x86_64" | "amd64"  → amd64
           "aarch64" | "arm64"  → arm64

Edge Case Detection

Rosetta 2 (macOS Intel on Apple Silicon)

Detection: sysctl -n sysctl.proc_translated returns 1. Effect: Switches darwin_amd64darwin_arm64 for native ARM performance.


Install Flow

  1. Windows check — MINGW/MSYS/CYGWIN detected? Print PowerShell command, exit
  2. Dependency check — requires curl + tar
  3. Argument parsing — max 3 flags
  4. Platform detection — OS + architecture via uname
  5. Variant detection — Rosetta 2
  6. Download — download bedrud_{TARGET}.tar.xz
  7. Extract & install — temp dir, extract, mv → $INSTALL_DIR/bedrud, chmod +x
  8. Verify — run bedrud --version
  9. PATH check — already in PATH? Skip. --skip-shell? Print manual command. Otherwise → modify RC file
  10. Completions — run bedrud completions
  11. Done — print success + reload instructions

Download URL format: github.com/{repo}/releases/{ver}/bedrud_{TARGET}.tar.xz


PATH & Shell Configuration

When --skip-shell is not set, the installer adds the install directory to your PATH.

ShellRC File
fish~/.config/fish/config.fish
zsh$ZDOTDIR/.zshrc (default ~/.zshrc)
bash (macOS)~/.bash_profile, then ~/.bashrc
bash (Linux)~/.bashrc, then ~/.bash_profile

What gets added:

# bedrud
export PATH="$HOME/bin:$PATH"  # bedrud

The # bedrud comment marker prevents duplicate entries — safe to re-run.

Windows: Uses [Environment]::SetEnvironmentVariable("PATH", ..., "User") at the registry level. No RC file needed.

Reload shell after install:

source ~/.bashrc    # bash
source ~/.zshrc     # zsh
source ~/.config/fish/config.fish  # fish

Offline / Air-Gapped Installs

Download and Transfer

curl -fsSL -o bedrud.tar.xz \
  https://github.com/bedrud-ir/bedrud/releases/latest/download/bedrud_linux_amd64.tar.xz
scp bedrud.tar.xz airgapped-server:/tmp/
# On target:
tar -xf /tmp/bedrud.tar.xz -C /tmp/bedrud-extracted
mv /tmp/bedrud-extracted/bedrud ~/bin/
chmod +x ~/bin/bedrud

Self-Hosted Mirror

BEDRUD_REPO=mycompany/bedrud-mirror curl -fsSL https://get.bedrud.org | bash

Direct Binary

Download from Releases, extract, move to a directory in your PATH.


Uninstall

rm ~/bin/bedrud
# Remove PATH line from shell RC (search for "# bedrud"):
#   ~/.bashrc, ~/.bash_profile, ~/.zshrc, ~/.config/fish/config.fish

For systemd server installs:

sudo bedrud uninstall

Windows:

Remove-Item "$env:USERPROFILE\bin\bedrud.exe"
# Remove from PATH via System Properties → Environment Variables

Troubleshooting

command not found: bedrud

source ~/.bashrc    # reload shell
echo $PATH | tr ':' '\n' | grep "$HOME/bin"  # check PATH

If missing:

echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Failed to download bedrud

  1. Check internet connection
  2. Verify target exists at Releases
  3. Try a specific version: --version v1.0.0
  4. Your platform may not have a pre-built binary yet

macOS: Running x64 under Rosetta (slow)

Force native ARM:

arch -arm64 curl -fsSL https://get.bedrud.org | arch -arm64 bash

Windows: “running scripts is disabled”

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
irm https://get.bedrud.org/install.ps1 | iex