Install ~Alter
Installing anything is optional. The way in is your AI client: add a custom connector at https://mcp.truealter.com/api/v1/mcp in Claude, ChatGPT, Le Chat, or Perplexity, sign in through your browser, and choose your ~handle. The Getting Started guide and the client guides cover that path. This page is the deepest layer, for people who want the command line or the always-on daemon.
Two artifacts ship: the alter command (the CLI) and alter-runtime (the optional always-on daemon). The one-line installers set up the CLI, and today the daemon installs from PyPI with pip install alter-runtime. Native packages for the daemon are built but not published yet. If you want the CLI route, the one-liner for your platform is enough.
Windows
Open PowerShell and run the one-liner. It fetches and verifies the official @truealter/cli package, puts the alter command on your PATH, and installs Node 20+ via winget if it is missing.
irm https://truealter.com/install.ps1 | iexThe full Windows walkthrough covers Node handling, verification, and re-runs. If you already manage Node yourself, install straight from the registry with npm install -g @truealter/cli (see the npm guide).
macOS
The shell one-liner is the recommended route and installs the CLI. A verify-first variant (download, check the sha256, then run) is printed in the script header.
curl -sSf https://truealter.com/install.sh | bashPrefer a managed install? The CLI ships through the Homebrew tap with brew install true-alter/tap/alter, updated alongside the rest of your brew packages. It is also on npm with npm install -g @truealter/cli if you manage Node yourself.
Linux
The shell one-liner works on every distribution and touches no system packages.
curl -sSf https://truealter.com/install.sh | bashNative packages are being published one distribution at a time. These are the ones you can install today:
- •Arch Linux (AUR):
yay -S truealter-clifor the CLI, on Arch and Arch-based distributions (Manjaro, EndeavourOS, Garuda). - •macOS and Linux (Homebrew):
brew install true-alter/tap/alterfor the CLI. - •The runtime, on any platform with Python:
pip install alter-runtime.
The Debian / Ubuntu, Fedora / RHEL / openSUSE, Alpine and Nix packages are built and their pages document what they will install, but the repositories that serve them are not open yet. Until they are, the shell one-liner above installs the CLI on those systems, and pip install alter-runtime installs the runtime.
Universal
Anywhere Node 20+ runs, install the CLI straight from npm:
npm install -g @truealter/cliWhere releases come from
releases.truealter.com is the source of truth for every published artefact. Each release is cut once, signed once, and listed there with its version, its sha256 and its signature bundle. Every other channel, npm, PyPI, the AUR, Homebrew, the shell installers, carries a copy of that same artefact rather than a separately-built one.
That means you can check what you installed against what we published, from any channel, without trusting the channel:
curl -s https://releases.truealter.com/manifest.json
alter --versionThe manifest names the current stable version, the artefact URL it resolves to, and that artefact’s sha256. Check the sha256 of what you installed against it from any channel. Signature verification is a second layer on top of that, and the trust anchors it needs are not published yet, so treat the checksum as the check that works today. A channel that lags the manifest is a packaging fault on our side, not a decision, so tell us and we will bring it into line.
Turn the daemon on or off
The native packages install alter-runtime, the optional always-on daemon. It is never required: the alter command alone signs you in and keeps you known. If you do run it, you can turn it on or off at any time. The commands are the same on every platform; alter-runtime targets systemd, launchd, or the Windows Service for you.
alter-runtime init # first run only: device keypair + service unit
alter-runtime start # turn it on (and start on boot)
alter-runtime status # check whether it is running
alter-runtime stop # turn it off