Installer internals

Mayros ships three installer scripts, served from maryos.apilium.com.

ScriptPlatformWhat it does
install.shmacOS / Linux / WSLInstalls Node if needed, installs Mayros via npm (default) or git, and can run onboarding.
install-cli.shmacOS / Linux / WSLInstalls Node + Mayros into a local prefix (~/.mayros). No root required.
install.ps1Windows (PowerShell)Installs Node if needed, installs Mayros via npm (default) or git, and can run onboarding.

Quick commands

bash
curl -fsSL --proto '=https' --tlsv1.2 https://maryos.apilium.com/install.sh | bash
bash
curl -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)

1

Detect OS

Supports macOS and Linux (including WSL). If macOS is detected, installs Homebrew if missing.

2

Ensure Node.js 22+

Checks Node version and installs Node 22 if needed (Homebrew on macOS, NodeSource setup scripts on Linux apt/dnf/yum).

3

Ensure Git

Installs Git if missing.

4

Install Mayros

  • npm method (default): global npm install
  • git method: clone/update repo, install deps with pnpm, build, then install wrapper at ~/.local/bin/mayros
5

Post-install tasks

  • Runs mayros doctor --non-interactive on 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)

bash
curl -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)

1

Install local Node runtime

Downloads Node tarball (default 22.22.0) to <prefix>/tools/node-v<version> and verifies SHA-256.

2

Ensure Git

If Git is missing, attempts install via apt/dnf/yum on Linux or Homebrew on macOS.

3

Install Mayros under prefix

Installs with npm using --prefix <prefix>, then writes wrapper to <prefix>/bin/mayros.

Examples (install-cli.sh)

bash
curl -fsSL --proto '=https' --tlsv1.2 https://maryos.apilium.com/install-cli.sh | bash

install.ps1

Flow (install.ps1)

1

Ensure PowerShell + Windows environment

Requires PowerShell 5+.

2

Ensure Node.js 22+

If missing, attempts install via winget, then Chocolatey, then Scoop.

3

Install Mayros

  • npm method (default): global npm install using selected -Tag
  • git method: clone/update repo, install/build with pnpm, and install wrapper at %USERPROFILE%\.local\bin\mayros.cmd
4

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)

powershell
iwr -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.

bash
curl -fsSL --proto '=https' --tlsv1.2 https://maryos.apilium.com/install.sh | bash -s -- --no-prompt --no-onboard

Troubleshooting