Skip to main content

Installation

This page installs the native anyy command on macOS or Linux. When you finish, anyy --version should work. Provider setup, Profile data, and the resident Gateway are separate steps.

For a container-managed resident deployment instead, use Docker Deployment. Do not combine the native release layout and Docker data volume as one installation.

Supported installer targets

The native release installer supports macOS and Linux on amd64/x86_64 and arm64/aarch64. Native Windows is not an installer target.

Quick Install

Prerequisites

You need:

  • a supported macOS or Linux machine;
  • an internet connection to anyy.ai; and
  • POSIX sh with curl, tar, gzip, awk, sed, mktemp, readlink, and either sha256sum or shasum available.

The installer checks its required commands before it downloads the release. Root access is not required for a normal personal installation.

Install the latest release

Run the canonical installer:

curl -fsSL https://anyy.ai/install.sh | sh

The command selects the release for your operating system and CPU architecture. A successful run ends with lines similar to:

Installed Anyy <version>.
Command: anyy
Gateway: <current status>

The Gateway line reports the status it can currently observe. It does not mean the installer started or configured the Gateway.

Inspect the installer first

If you do not want to pipe a remote script directly into sh, open anyy.ai/install.sh or download and review it before running it. The published script is the same entrypoint used by the command above.

Verify the installation

Run:

anyy --version

You should see output beginning with:

Anyy (anyy) version

If the installer prints Binary: instead of Command: anyy, run the displayed binary path with --version. Then add the exact directory shown in the installer's PATH guidance and open a new shell.

For a normal non-root install, Anyy tries to create this command entrypoint:

$HOME/.local/bin/anyy

The installer never edits your shell startup files and does not replace an unrelated existing anyy command.

What the Installer Does

The installer performs these steps in order:

  1. Detects darwin or linux and maps the CPU to amd64 or arm64.
  2. Resolves the Anyy home directory and the release version.
  3. Takes a per-home install/update lock so two release changes cannot run together.
  4. Checks required commands and available temporary and home-directory space.
  5. Downloads the platform archive and its CHECKSUMS.sha256, retrying bounded download failures without keeping partial files.
  6. Verifies the archive's SHA-256 digest and rejects unsafe archive paths or links before installation.
  7. Places the binary in a versioned release directory and atomically switches current to it.
  8. Writes install-source metadata and creates a command entrypoint when it can do so without overwriting another file.
  9. Reports the installed command and the Gateway status.
Installation stops at the binary

Installation does not choose a model provider, write config.yaml, create state.db, or install and start a background service. Run anyy setup after the command is available.

Install Layout

The default home depends on the user running the installer:

Installer userAnyy homeCommand entrypoint
Normal user$HOME/.anyy$HOME/.local/bin/anyy
root/root/.anyyFirst writable directory among /usr/local/bin, /opt/homebrew/bin, and /usr/bin
Custom ANYY_HOMEThe path you provideNormal-user or root entrypoint above, pointing back to that home

The installer prepares this resident layout:

<ANYY_HOME>/
├── releases/
│ └── <version>/anyy
├── current -> releases/<version>
├── bin/
│ └── anyy -> ../current/anyy
├── .install/
│ ├── source.json
│ └── previous # present after a release change when rollback exists
├── backups/
├── cache/
├── logs/
├── memory/
├── scripts/
├── secrets/
├── skills/
├── system/
└── workspace/

The home and installer-managed directories are created with mode 0700; .install/source.json is written with mode 0600. Later commands add runtime and Profile files only when they are needed.

When the Profile runtime first opens its durable state, it also creates state.db and the content-addressed objects/ store. These are runtime data, not files delivered by the installer.

Activation uses the current link, so a completed release change switches the active binary as one operation. When an older active release exists, Anyy records it as the rollback target.

Installer Options

Set installer options on the sh process after the pipe:

VariableDefaultUse it when
ANYY_HOME$HOME/.anyy, or /root/.anyy for rootYou want this installation in another home directory
VERSIONVersion returned by https://anyy.ai/releases/latestYou need a specific available vMAJOR.MINOR.PATCH release
ANYY_INSTALL_COMPACT0Disk space is tight and you accept losing older rollback history
ANYY_RELEASE_BASE_URLhttps://anyy.ai/releasesYou operate a trusted compatible release mirror

Use a custom home

curl -fsSL https://anyy.ai/install.sh | ANYY_HOME="$HOME/.local/share/anyy" sh

Commands launched through the installed entrypoint can infer this resident home. You can still pass --home PATH explicitly when a command offers it.

Install a specific release

curl -fsSL https://anyy.ai/install.sh | VERSION=v0.1.105 sh

Replace the example with an available release tag. VERSION=latest is not accepted; leave VERSION unset to follow the latest published release.

Use compact mode on a low-space host

curl -fsSL https://anyy.ai/install.sh | ANYY_INSTALL_COMPACT=1 sh
Compact mode can reduce rollback history

Compact mode always preserves the active release. It can remove inactive releases and, only when necessary to pass the home-space check, the previous rollback target. Freeing disk space is safer when you want to keep that rollback option.

Trust the release source

A custom ANYY_RELEASE_BASE_URL supplies both the binary and its checksum file. Use only a source you control or independently trust.

Reinstall and Update

Running the canonical installer again when the same release is already active repairs Anyy's internal and command entrypoints without downloading or replacing that release.

For an installed resident release, check for a newer version with:

anyy update --check

Use anyy update for the normal upgrade workflow. See Updating for version selection, compact updates, and rollback behavior.

After Installation

Continue with interactive setup:

anyy setup

Then open Dashboard:

anyy dashboard

For the complete first-run path, continue with Quickstart. The dedicated Setup page explains provider and model configuration.

Troubleshooting

SymptomWhat it meansWhat to do
unsupported operating system or unsupported architectureNo native release is selected for this platformUse a supported macOS or Linux amd64/arm64 machine; native Windows is not supported by this installer
<command> is required for release installA required local utility is missingInstall the named command, then rerun the installer
Preflight failed: not enough ... spaceThe archive or new binary cannot fit with the installer's safety reserveFree temporary or Anyy-home space and retry; use compact mode only if reduced rollback history is acceptable
another Anyy install or update is already runningThe same home is locked by another release operationWait for that operation to finish, then retry
checksum mismatchThe downloaded archive does not match the published checksumRetry the installer; do not bypass verification or activate the archive manually
Command entrypoint already exists and was not replacedAnother file or live symlink owns the intended command pathRun the printed Binary: path, then inspect and resolve the conflicting command yourself
anyy: command not found after a successful installThe entrypoint directory is not on your current PATHFollow the exact PATH guidance printed by the installer, open a new shell, and run anyy --version
Gateway: status unavailableThe installed binary could not report Gateway stateTreat binary verification separately; run anyy setup, then anyy gateway status if you need to inspect the resident runtime
No release was activated.Installation stopped before switching to the candidate releaseRead the preceding error, fix it, and retry; an existing active release was not replaced by this failed attempt