Skip to main content
API Preview
Developers

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; the native packages carry the daemon and integrate with your system’s updates. 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.

bash
irm https://truealter.com/install.ps1 | iex

The 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.

bash
curl -sSf https://truealter.com/install.sh | bash

Prefer 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.

bash
curl -sSf https://truealter.com/install.sh | bash

Native packages are being published one distribution at a time. These are the ones you can install today:

  • Arch Linux (AUR): yay -S truealter-cli for the CLI, or yay -S alter-runtime-git for the runtime, on Arch and Arch-based distributions (Manjaro, EndeavourOS, Garuda).
  • Nix / NixOS: install the flake straight from releases.truealter.com, either imperatively or as a NixOS module.

The Debian / Ubuntu, Fedora / RHEL / openSUSE and Alpine 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 is the route on those distributions, and it works everywhere.

Universal

Anywhere Node 20+ runs, install the CLI straight from npm:

bash
npm install -g @truealter/cli

Where 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:

bash
curl -s https://releases.truealter.com/manifest.json

alter --version

The 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.

bash
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