SDODS
Reference

Installer

Every flag, environment variable, exit code and file the one-line installers touch.

What you'll learn

The complete contract of install.sh and install.ps1: options, exit codes, what they write, what they never write, and how to audit them before running.

Sources

URLScript
https://sdods.com/install.shmacOS and Linux (POSIX sh)
https://sdods.com/install.ps1Windows (PowerShell 5.1 and 7)
https://sdods.com/install.sh · install.ps1the same files, mirrored
…/install.sh.sha256 · …/install.ps1.sha256checksums in sha256sum -c format

Both are served as text/plain with Cache-Control: no-store, and both come from installer/ in the repository — one source of truth, copied into the sites at build time.

Options

install.sh accepts --flag value and --flag=value. install.ps1 uses PowerShell parameters (-Flag value). Environment variables apply to both and are overridden by an explicit flag.

Prop

Type

HTTPS_PROXY, HTTP_PROXY, NO_PROXY and NO_COLOR are honoured. SDODS_REPO_URL overrides the clone source, which is useful behind an internal mirror.

Exit codes

CodeMeaning
0success (also --help, --version-check and a cancelled uninstall)
1generic failure
2usage error: unknown flag, missing value, invalid choice
3unsupported platform (Windows under git-bash, BSD, unknown architecture)
4missing prerequisite: git, curl, or the requested package manager
5Node.js missing or older than 22
6download failure: clone, fetch or toolchain download
7install failure: dependency install, or an incomplete checkout
8permission problem: bin directory not writable, or running as root

What it writes

PathWritten when
$SDODS_HOME/appalways (source install)
$SDODS_HOME/.bunBun was not already on PATH
$SDODS_HOME/.fnm--install-node and neither fnm nor nvm was present
$BIN_DIR/sdodssource install (Windows: sdods.cmd and sdods.ps1)
shell profile or user PATHonly with --modify-path
Browser engine cacheunless --browsers none
the workspace you namedonly with --workspace
~/.claude.json, ~/.codex/configonly with --mcp, through sdods mcp install

Re-running is safe: the checkout is fetched and checked out again, the shim is rewritten, and the PATH line is added only once.

Safety

  • It refuses to run as root unless SDODS_ALLOW_ROOT=1, so browsers and caches stay owned by you.
  • --uninstall removes only $SDODS_HOME and the shim, and refuses paths such as $HOME or /.
  • With no terminal available it will not guess an answer to a destructive prompt; pass --yes explicitly.
  • The clone is verified with git rev-parse HEAD and a check that packages/cli arrived.
  • Read it before you run it: curl -fsSLO …/install.sh && sha256sum -c install.sh.sha256 && less install.sh.

Automation examples

CI step (Linux)
curl -fsSL https://sdods.com/install.sh | sh -s -- \
  --browsers chromium --bin-dir /usr/local/bin --yes
sdods --version
Dockerfile
ENV SDODS_HOME=/opt/sdods SDODS_BIN_DIR=/usr/local/bin \
    SDODS_BROWSERS=chromium SDODS_YES=1 SDODS_ALLOW_ROOT=1
RUN curl -fsSL https://sdods.com/install.sh | sh
Windows, unattended
& ([scriptblock]::Create((irm https://sdods.com/install.ps1))) -Yes -ModifyPath -Browsers chromium

Next steps

On this page