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.
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
shwithcurl,tar,gzip,awk,sed,mktemp,readlink, and eithersha256sumorshasumavailable.
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.
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:
- Detects
darwinorlinuxand maps the CPU toamd64orarm64. - Resolves the Anyy home directory and the release version.
- Takes a per-home install/update lock so two release changes cannot run together.
- Checks required commands and available temporary and home-directory space.
- Downloads the platform archive and its
CHECKSUMS.sha256, retrying bounded download failures without keeping partial files. - Verifies the archive's SHA-256 digest and rejects unsafe archive paths or links before installation.
- Places the binary in a versioned release directory and atomically switches
currentto it. - Writes install-source metadata and creates a command entrypoint when it can do so without overwriting another file.
- Reports the installed command and the Gateway status.
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 user | Anyy home | Command entrypoint |
|---|---|---|
| Normal user | $HOME/.anyy | $HOME/.local/bin/anyy |
root | /root/.anyy | First writable directory among /usr/local/bin, /opt/homebrew/bin, and /usr/bin |
Custom ANYY_HOME | The path you provide | Normal-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:
| Variable | Default | Use it when |
|---|---|---|
ANYY_HOME | $HOME/.anyy, or /root/.anyy for root | You want this installation in another home directory |
VERSION | Version returned by https://anyy.ai/releases/latest | You need a specific available vMAJOR.MINOR.PATCH release |
ANYY_INSTALL_COMPACT | 0 | Disk space is tight and you accept losing older rollback history |
ANYY_RELEASE_BASE_URL | https://anyy.ai/releases | You 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 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.
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
| Symptom | What it means | What to do |
|---|---|---|
unsupported operating system or unsupported architecture | No native release is selected for this platform | Use a supported macOS or Linux amd64/arm64 machine; native Windows is not supported by this installer |
<command> is required for release install | A required local utility is missing | Install the named command, then rerun the installer |
Preflight failed: not enough ... space | The archive or new binary cannot fit with the installer's safety reserve | Free temporary or Anyy-home space and retry; use compact mode only if reduced rollback history is acceptable |
another Anyy install or update is already running | The same home is locked by another release operation | Wait for that operation to finish, then retry |
checksum mismatch | The downloaded archive does not match the published checksum | Retry the installer; do not bypass verification or activate the archive manually |
Command entrypoint already exists and was not replaced | Another file or live symlink owns the intended command path | Run the printed Binary: path, then inspect and resolve the conflicting command yourself |
anyy: command not found after a successful install | The entrypoint directory is not on your current PATH | Follow the exact PATH guidance printed by the installer, open a new shell, and run anyy --version |
Gateway: status unavailable | The installed binary could not report Gateway state | Treat 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 release | Read the preceding error, fix it, and retry; an existing active release was not replaced by this failed attempt |