Skip to content

Installation

Aethon ships native bundles for macOS, Linux, and Windows. All bundles contain the same Tauri 2 shell, the bun-built pi agent sidecar, and the React frontend — only the OS surface differs.

Download a release

Grab the latest bundle from the GitHub Releases page.

PlatformBundleNotes
macOS (Apple Silicon)Aethon_<version>_aarch64.dmgDrag to /Applications.
macOS (Intel)Aethon_<version>_x64.dmgDrag to /Applications.
Linux (x86_64, Debian / Ubuntu)aethon_<version>_amd64.debsudo apt install ./aethon_*.deb
Linux (x86_64, Fedora / RHEL)aethon-<version>-1.x86_64.rpmsudo rpm -i aethon-*.rpm
Linux (portable)aethon_<version>_amd64.AppImagechmod +x and run.
WindowsAethon_<version>_x64-setup.exeNSIS installer.

Updates

The macOS app self-updates via the bundled updater plugin. Linux/Windows users currently re-download from Releases — automated update channels for those platforms are tracked in the spec.

Install with Nix

Aethon's flake exposes a package and overlay for downstream Nix consumers:

bash
nix run github:utensils/aethon
nix build github:utensils/aethon#aethon

Or pin the overlay in your own flake:

nix
{
  inputs.aethon.url = "github:utensils/aethon";
  outputs = { nixpkgs, aethon, ... }: {
    # Apply the overlay to get pkgs.aethon
    nixosConfigurations.host = nixpkgs.lib.nixosSystem {
      modules = [ { nixpkgs.overlays = [ aethon.overlays.default ]; } ];
    };
  };
}

Run from source (for contributors)

Aethon's dev environment is fully Nix-managed. With direnv installed, the dev shell activates when you cd into the repo.

bash
git clone https://github.com/utensils/aethon
cd aethon
nix develop          # rust toolchain + bun + tauri CLI
bun install          # install JS deps
dev                  # launch with hot reload

Without Nix you'll need:

  • Rust 1.92.0 (pinned in rust-toolchain.toml)
  • Bun 1.x
  • Tauri 2 prerequisites for your OS — see the Tauri docs.

First-run setup — provider keys

Pi (the embedded coding agent) reads provider keys from the environment. At least one of:

bash
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
export GROQ_API_KEY="..."
# ...or any other provider pi supports

Set these in your shell profile (~/.zshrc, ~/.bashrc) so they're visible to Aethon when the GUI app launches. On macOS, GUI apps inherit environment variables set in the user's login shell only when the variable is exported via launchctl setenv or ~/Library/LaunchAgents/. For most users, launching Aethon from a terminal (open -a Aethon or running the dev build) is the simplest path.

The first time Aethon runs it creates ~/.aethon/ with:

~/.aethon/
├── config.toml         User-editable settings (see Configuration)
├── projects.json       MRU project list (max 16)
├── sessions/<tabId>/   Pi session transcripts per tab
├── extensions/         Drop-in extensions (.ts files)
├── skills/             npm-installed skills
└── themes/             Custom theme JSON files

Nothing under ~/.aethon/ is created or modified before the first launch.

Verify the install

Launch Aethon and:

  1. Send any message in the default agent tab — you should see a streamed response from your provider.
  2. Press Cmd+, (Ctrl+, on Linux/Windows) to open the Settings panel and confirm the active model.
  3. Press Cmd+P to open the Command palette and explore the built-in actions.

If the agent never responds, see Troubleshooting.

Next steps