Installer internals
Mayros ships three installer scripts, served from maryos.apilium.com.
| Script | Platform | What it does |
|---|---|---|
install.sh | macOS / Linux / WSL | Installs Node if needed, installs Mayros via npm (default) or git, and can run onboarding. |
install-cli.sh | macOS / Linux / WSL | Installs Node + Mayros into a local prefix (~/.mayros). No root required. |
install.ps1 | Windows (PowerShell) | Installs Node if needed, installs Mayros via npm (default) or git, and can run onboarding. |
Quick commands
bashcurl -fsSL --proto '=https' --tlsv1.2 https://maryos.apilium.com/install.sh | bash
bashcurl -fsSL --proto '=https' --tlsv1.2 https://maryos.apilium.com/install.sh | bash -s -- --help
If install succeeds but mayros is not found in a new terminal, see Node.js troubleshooting.
install.sh
Recommended for most interactive installs on macOS/Linux/WSL.
Flow (install.sh)
Detect OS
Supports macOS and Linux (including WSL). If macOS is detected, installs Homebrew if missing.
Ensure Node.js 22+
Checks Node version and installs Node 22 if needed (Homebrew on macOS, NodeSource setup scripts on Linux apt/dnf/yum).
Ensure Git
Installs Git if missing.
Install Mayros
npmmethod (default): global npm installgitmethod: clone/update repo, install deps with pnpm, build, then install wrapper at~/.local/bin/mayros
Post-install tasks
- Runs
mayros doctor --non-interactiveon upgrades and git installs (best effort) - Attempts onboarding when appropriate (TTY available, onboarding not disabled, and bootstrap/config checks pass)
- Defaults
SHARP_IGNORE_GLOBAL_LIBVIPS=1
Source checkout detection
If run inside a Mayros checkout (package.json + pnpm-workspace.yaml), the script offers:
- use checkout (
git), or - use global install (
npm)
If no TTY is available and no install method is set, it defaults to npm and warns.
The script exits with code 2 for invalid method selection or invalid --install-method values.
Examples (install.sh)
bashcurl -fsSL --proto '=https' --tlsv1.2 https://maryos.apilium.com/install.sh | bash
install-cli.sh
Designed for environments where you want everything under a local prefix (default ~/.mayros) and no system Node dependency.
Flow (install-cli.sh)
Install local Node runtime
Downloads Node tarball (default 22.22.0) to <prefix>/tools/node-v<version> and verifies SHA-256.
Ensure Git
If Git is missing, attempts install via apt/dnf/yum on Linux or Homebrew on macOS.
Install Mayros under prefix
Installs with npm using --prefix <prefix>, then writes wrapper to <prefix>/bin/mayros.
Examples (install-cli.sh)
bashcurl -fsSL --proto '=https' --tlsv1.2 https://maryos.apilium.com/install-cli.sh | bash
install.ps1
Flow (install.ps1)
Ensure PowerShell + Windows environment
Requires PowerShell 5+.
Ensure Node.js 22+
If missing, attempts install via winget, then Chocolatey, then Scoop.
Install Mayros
npmmethod (default): global npm install using selected-Taggitmethod: clone/update repo, install/build with pnpm, and install wrapper at%USERPROFILE%\.local\bin\mayros.cmd
Post-install tasks
Adds needed bin directory to user PATH when possible, then runs mayros doctor --non-interactive on upgrades and git installs (best effort).
Examples (install.ps1)
powershelliwr -useb https://maryos.apilium.com/install.ps1 | iex
If -InstallMethod git is used and Git is missing, the script exits and prints the Git for Windows link.
CI and automation
Use non-interactive flags/env vars for predictable runs.
bashcurl -fsSL --proto '=https' --tlsv1.2 https://maryos.apilium.com/install.sh | bash -s -- --no-prompt --no-onboard