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.

This page is the two scripts only. If you would rather your own package manager owned the install — npm, Homebrew, Docker, winget, Scoop or apt — see with a package manager.

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 source tree — 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
package manager's global directorydefault: the published @sdods/* packages
$SDODS_HOME/apponly with --source git
$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

On the default path no shim is written: the global package provides the sdods command itself.

Re-running is safe: the package is upgraded in place (or, on a source install, the checkout is fetched and checked out again and the shim 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.
  • On a source install 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

Using an AI coding agent? Install SDODS:

Install the SDODS plugin in Claude Code: skills, subagents, commands and the MCP server.

  1. /plugin marketplace add YarlisAISolutions/sdods-skills
  2. /plugin install sdods@sdods
Learn more about using SDODS with AI tools

On this page