Install the desktop app
Get the desktop app onto a Linux machine: download the .deb, install it, launch, and sign in. Day two takes care of itself.
Watch: install and first launch
Download and install
Open a terminal and paste the whole block below. It downloads the package for this machine from the public GitHub release and installs it with apt. Replace REPLACE_WITH_VERSION with the version shown on the Downloads page in Wingman Chat (/downloads), where the same commands appear with the version already filled in. Supported systems: Ubuntu 20.04, 22.04, 24.04, 26.04 and Debian 12, 13, on Intel/AMD or ARM.
bash
(
set -e
d=$(mktemp -d); chmod 755 "$d"; cd "$d"
sudo apt-get update || echo "Some package sources could not be refreshed; continuing." >&2
sudo apt-get install -y curl ca-certificates
v=REPLACE_WITH_VERSION; a=$(dpkg --print-architecture)
curl -fsSLO --retry 3 "https://github.com/axelera-ai-hub/wingman/releases/download/v$v/wingman_${v}_$a.deb"
sudo apt-get install -y "./wingman_${v}_$a.deb"
dpkg-query -W wingman
)The last command checks the install: it prints wingman and the installed version. On a desktop, you can instead download the .deb for your machine (amd64 for Intel and AMD, arm64 for ARM), double-click it and choose Install. Installing needs sudo once; updates after that are one click inside the app.
Check the installed version
Run
wingman --versionat any time to see the installed release. It printsAxelera Wingmanand the release version, then the editor version, commit and architecture, and exits without opening the app, so it also works over SSH. Releases before 1.7.51 open the app instead, or stop with a display error over SSH; on those,dpkg-query -W wingmanprints the installed version.check
wingman --versionLaunch and sign in
Run
wingmanfrom a terminal or open Axelera Wingman from your app launcher. First launch lands on Wingman Home with a sign-in prompt — one click if your organization uses SSO. From there,Sign in & accountscovers every path in.If the installer refuses because of ownership
If the install stops with
Unsafe ownership prevents Axelera Wingman installation: / (1000:1000), the root directory of your system belongs to your login user instead of root, which the installer refuses because a root process could then be redirected. Repair it once, then run the install commands again; a graphical package installer hides this message and appears to do nothing.repair
ls -ld / sudo chown root:root / && sudo chmod 755 /
Verify signatures before installing (optional)
To check the release signature before anything is installed, paste this block instead of the one above. It first refreshes the package lists and installs curl, the CA certificates, GnuPG and python3, which the download, the signature check and the installer need and which minimal Ubuntu and Debian systems do not include. It then downloads the signed installer and its verification files, checks the release key, the signature and the checksum, and installs only when every check passes. Paste the whole block at once, so that a failed check stops the install. Replace REPLACE_WITH_VERSION the same way. Fleet management lives in Security & admin under Deployment, fleets & self-hosting.
bash
(
set -euo pipefail
sudo apt-get update || echo "Some package sources could not be refreshed; continuing." >&2
sudo apt-get install -y curl ca-certificates gnupg python3
umask 077
version=REPLACE_WITH_VERSION
expected_fingerprint=6230D3CDBF7A0F3F60F72BDC75C0A17CBA2288F9
base="https://github.com/axelera-ai-hub/wingman/releases/download/v$version"
work_dir="$(mktemp -d)"
trap 'rm -rf "$work_dir"' EXIT HUP INT TERM
cd "$work_dir"
for asset in \
install-wingman.sh \
SHA256SUMS \
SHA256SUMS.sig \
axelera-wingman-release-public-key.asc; do
curl --fail --silent --show-error --location \
--proto '=https' --proto-redir '=https' --tlsv1.2 \
--connect-timeout 15 --max-time 120 --max-filesize 10485760 \
--output "$asset" "$base/$asset"
done
export GNUPGHOME="$work_dir/gnupg"
mkdir -m 700 "$GNUPGHOME"
actual_fingerprint="$(
gpg --no-options --no-autostart --batch --with-colons \
--import-options show-only \
--import axelera-wingman-release-public-key.asc 2>/dev/null \
| awk -F: '$1 == "fpr" { print toupper($10); exit }'
)"
test "$actual_fingerprint" = "$expected_fingerprint"
gpg --no-options --no-autostart --batch \
--import axelera-wingman-release-public-key.asc >/dev/null 2>&1
signature_status="$(
gpg --no-options --no-autostart --batch --status-fd 1 \
--verify SHA256SUMS.sig SHA256SUMS 2>/dev/null
)"
valid_signer="$(
awk '$1 == "[GNUPG:]" && $2 == "VALIDSIG" { print toupper($3) }' \
<<<"$signature_status"
)"
test "$valid_signer" = "$expected_fingerprint"
installer_hashes="$(
awk '$2 == "install-wingman.sh" || $2 == "*install-wingman.sh" \
{ print tolower($1) }' SHA256SUMS
)"
test "$(wc -l <<<"$installer_hashes" | tr -d ' ')" = 1
[[ "$installer_hashes" =~ ^[0-9a-f]{64}$ ]]
test "$(sha256sum install-wingman.sh | awk '{ print tolower($1) }')" \
= "$installer_hashes"
bash ./install-wingman.sh --version "$version"
)Version pinning and platforms
Need to stay on a specific version? The release installer takes a --version flag, so fleets can install an exact release rather than the latest. The app still shows newer versions in the title bar, but nothing installs without your authorization.
Today the desktop app is Linux-only. Watch Downloads for the macOS app and the assistant plugins — both are coming soon. On macOS or Windows, use Chat on the web in the meantime.