Google Antigravity changed sharply with the 2.0 launch. Fedora now has three current install paths: the Antigravity 2.0 desktop app for orchestrating agents visually, the Antigravity IDE for editor-first coding, and the agy CLI for terminal-first work. The older Antigravity IDE RPM still exists, but it now belongs in a legacy path for users who specifically need the 1.x package-managed IDE.
The legacy Fedora RPM repository still resolves, but its newest RPM currently stops at 1.23.2. Treat that repo as the legacy IDE path unless Google later publishes a 2.x RPM. For current releases, use Google’s Linux tarballs through local update helpers for the desktop app and IDE, and use Google’s official installer for the CLI.
Choose a Google Antigravity Install Path on Fedora
Google’s download page now presents Antigravity 2.0, Antigravity CLI, Antigravity SDK, and Antigravity IDE as separate products. Fedora’s default repositories do not ship Antigravity, so each install path uses a Google-hosted source.
| Install path | Best fit | Update method |
|---|---|---|
| Option 1: Antigravity 2.0 desktop app | Current standalone agent platform for projects, artifacts, scheduled work, and visual agent orchestration. | Run sudo update-antigravity. |
| Option 2: Antigravity IDE | Current editor-first IDE with the agent manager, artifacts, tab completion, and codebase-aware commands. | Run sudo update-antigravity-ide. |
| Option 3: Antigravity CLI | Terminal-first agy workflow for local projects, SSH sessions, scripts, and keyboard-driven development. | Run agy update or update-antigravity-cli. |
| Legacy: Antigravity IDE RPM | Older package-managed IDE flow when you specifically need the 1.x app. | Run sudo dnf upgrade --refresh antigravity if Google publishes a newer RPM. |
The Antigravity 2.0 desktop helper exposes
antigravity, while the current IDE helper exposesantigravity-ide. The legacy RPM also exposesantigravityandantigravity.desktop, so remove the legacy RPM before using the current desktop helper on the same Fedora system.
Install Antigravity 2.0 Desktop App on Fedora
Refresh Fedora first, then install the small set of tools used by the desktop helper:
sudo dnf upgrade --refresh
sudo dnf install curl tar desktop-file-utils python3
These commands use
sudofor tasks that need root privileges. If your account is not in the sudoers file yet, follow the guide on how to add a user to sudoers on Fedora.
The desktop helper reads Google’s download page, selects the x86_64 or aarch64 tarball for the local machine, installs the app under /opt/antigravity, creates /usr/local/bin/antigravity, extracts Google’s bundled icon, and adds the desktop launcher Fedora needs for correct app-menu and dock matching.
The desktop helper intentionally uses Google’s download page instead of the older auto-updater endpoint, which currently stops at 2.0.1. Overwrite any earlier saved /usr/local/bin/update-antigravity copy before updating an existing desktop install.
sudo tee /usr/local/bin/update-antigravity > /dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
if [ "$(id -u)" -ne 0 ]; then
echo "Run with sudo: sudo update-antigravity" >&2
exit 1
fi
download_page="https://antigravity.google/download"
install_root="/opt/antigravity"
command_link="/usr/local/bin/antigravity"
desktop_file="/usr/share/applications/antigravity.desktop"
icon_file="/usr/share/icons/hicolor/512x512/apps/antigravity.png"
old_icon_file="/usr/share/icons/hicolor/scalable/apps/antigravity.svg"
case "$(uname -m)" in
x86_64 | amd64) platform="linux-x64" ;;
aarch64 | arm64) platform="linux-arm" ;;
*)
echo "Unsupported architecture: $(uname -m)" >&2
exit 1
;;
esac
for required_command in curl tar python3; do
if ! command -v "$required_command" >/dev/null 2>&1; then
echo "$required_command is required to install Antigravity." >&2
exit 1
fi
done
if [ -L "$command_link" ]; then
command_target=$(readlink -f "$command_link" || true)
case "$command_target" in
"$install_root"/*) ;;
*)
echo "$command_link points to $command_target. Move it before rerunning this helper." >&2
exit 1
;;
esac
elif [ -e "$command_link" ]; then
echo "$command_link exists and is not a symlink. Move it before rerunning this helper." >&2
exit 1
fi
tmp_parent="${TMPDIR:-/var/tmp}"
mkdir -p "$tmp_parent"
tmpdir=$(mktemp -d "$tmp_parent/antigravity.XXXXXX")
trap 'rm -rf "$tmpdir"' EXIT
download_html="$tmpdir/download.html"
download_js="$tmpdir/download.js"
archive="$tmpdir/Antigravity.tar.gz"
archive_list="$tmpdir/archive-list.txt"
icon_staged="$tmpdir/antigravity.png"
curl -fsSL --compressed --retry 3 -o "$download_html" "$download_page"
main_js_url=$(
python3 - "$download_html" "$download_page" <<'PY'
import re
import sys
from pathlib import Path
from urllib.parse import urljoin
html = Path(sys.argv[1]).read_text()
page_url = sys.argv[2]
matches = re.findall(r'(?:src|href)="([^"]*main-[^"]+\.js)"', html)
if not matches:
raise SystemExit("Could not find the Antigravity download bundle")
print(urljoin(page_url, matches[-1]))
PY
)
curl -fsSL --compressed --retry 3 -o "$download_js" "$main_js_url"
download_fields=$(
python3 - "$download_js" "$platform" <<'PY'
import re
import sys
from pathlib import Path
bundle = Path(sys.argv[1]).read_text(errors="replace")
platform = sys.argv[2]
start = bundle.find('id:"antigravity-2"')
end = bundle.find('},{name:"command",id:"antigravity-cli"', start)
if start == -1 or end == -1:
raise SystemExit("Could not find Antigravity 2.0 downloads")
section = bundle[start:end]
match = re.search(r'href:"([^"]+/' + re.escape(platform) + r'/Antigravity\.tar\.gz)"', section)
if not match:
raise SystemExit(f"Could not find a download for {platform}")
url = match.group(1)
version_match = re.search(r'/antigravity-hub/([^/]+)/', url)
if not version_match:
raise SystemExit("Could not parse Antigravity version from download URL")
print(version_match.group(1).split("-", 1)[0], url)
PY
)
read -r version download_url <<<"$download_fields"
if [ -z "$version" ] || [ -z "$download_url" ]; then
echo "Could not parse the Antigravity download page." >&2
exit 1
fi
case "$platform" in
linux-x64) expected_top_dir="Antigravity-x64" ;;
linux-arm) expected_top_dir="Antigravity-arm64" ;;
esac
expected_target="$install_root/$expected_top_dir/antigravity"
installed_version=$(cat "$install_root/.linuxcapable-version" 2>/dev/null || true)
desktop_matches=no
if [ -f "$desktop_file" ] &&
grep -q '^Icon=antigravity$' "$desktop_file" &&
grep -q '^StartupWMClass=Antigravity$' "$desktop_file"; then
desktop_matches=yes
fi
if [ "$installed_version" = "$version" ] &&
[ -x "$expected_target" ] &&
[ -L "$command_link" ] &&
[ "$(readlink -f "$command_link")" = "$expected_target" ] &&
[ "$desktop_matches" = yes ] &&
[ -f "$icon_file" ]; then
printf 'Antigravity %s is already installed at %s\n' "$version" "$install_root/$expected_top_dir"
exit 0
fi
printf 'Downloading Antigravity %s for %s...\n' "$version" "$platform"
curl -fsSL --retry 3 -o "$archive" "$download_url"
tar -tzf "$archive" >"$archive_list"
top_dir=$(sed -n '1{s#/.*##;p;q}' "$archive_list")
case "$top_dir" in
Antigravity-*) ;;
*)
echo "Unexpected archive layout: $top_dir" >&2
exit 1
;;
esac
if [ "$top_dir" != "$expected_top_dir" ]; then
echo "Unexpected archive directory: $top_dir" >&2
exit 1
fi
tar -xzf "$archive" -C "$tmpdir"
if [ ! -x "$tmpdir/$top_dir/antigravity" ]; then
echo "The Antigravity launcher was not found in the archive." >&2
exit 1
fi
python3 - "$tmpdir/$top_dir/resources/app.asar" "$icon_staged" <<'PY'
import json
import struct
import sys
from pathlib import Path
asar = Path(sys.argv[1])
output = Path(sys.argv[2])
with asar.open("rb") as archive:
archive.read(4)
header_size = struct.unpack("<I", archive.read(4))[0]
archive.read(4)
json_size = struct.unpack("<I", archive.read(4))[0]
header = json.loads(archive.read(json_size).decode())
try:
icon = header["files"]["icon.png"]
except KeyError as exc:
raise SystemExit("icon.png was not found in the Antigravity bundle") from exc
with asar.open("rb") as archive:
archive.seek(8 + header_size + int(icon["offset"]))
output.write_bytes(archive.read(int(icon["size"])))
PY
rm -rf "${install_root}.new"
mkdir -p "${install_root}.new"
cp -a "$tmpdir/$top_dir" "${install_root}.new/"
printf '%s\n' "$version" >"${install_root}.new/.linuxcapable-version"
if [ -d "$install_root" ]; then
rm -rf "${install_root}.previous"
mv "$install_root" "${install_root}.previous"
fi
mv "${install_root}.new" "$install_root"
ln -sfn "$install_root/$top_dir/antigravity" "$command_link"
mkdir -p "$(dirname "$icon_file")"
install -m 0644 "$icon_staged" "$icon_file"
rm -f "$old_icon_file"
tee "$desktop_file" >/dev/null <<DESKTOP
[Desktop Entry]
Name=Antigravity
Comment=Google Antigravity 2.0 agent platform
Exec=$command_link %U
Icon=antigravity
Terminal=false
Type=Application
Categories=Development;IDE;
StartupNotify=true
StartupWMClass=Antigravity
DESKTOP
if command -v restorecon >/dev/null 2>&1; then
restorecon -R "$install_root" "$command_link" "$desktop_file" "$icon_file" 2>/dev/null || true
fi
if command -v update-desktop-database >/dev/null 2>&1; then
update-desktop-database /usr/share/applications >/dev/null 2>&1 || true
fi
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
gtk-update-icon-cache -q /usr/share/icons/hicolor 2>/dev/null || true
fi
printf 'Installed Antigravity %s at %s\n' "$version" "$install_root/$top_dir"
EOF
sudo chmod +x /usr/local/bin/update-antigravity
Run the helper to install or refresh the Antigravity 2.0 desktop app. A successful run prints the installed version and path:
sudo update-antigravity
Downloading Antigravity 2.0.6 for linux-x64... Installed Antigravity 2.0.6 at /opt/antigravity/Antigravity-x64
Verify the launcher path and desktop entry. The resolved directory name can differ by architecture, but it should end with the antigravity executable.
readlink -f /usr/local/bin/antigravity
test -x "$(readlink -f /usr/local/bin/antigravity)" && echo "Antigravity launcher is installed"
grep -E '^(Name|Exec|Icon|Categories|StartupWMClass)=' /usr/share/applications/antigravity.desktop
test -f /usr/share/icons/hicolor/512x512/apps/antigravity.png && echo "Antigravity icon is installed"
/opt/antigravity/Antigravity-x64/antigravity Antigravity launcher is installed Name=Antigravity Exec=/usr/local/bin/antigravity %U Icon=antigravity Categories=Development;IDE; StartupWMClass=Antigravity Antigravity icon is installed
The helper also restores Fedora’s default SELinux labels after copying the tarball payload. The important context types are usr_t for the application directory, desktop file, and icon, and bin_t for the command link:
ls -Zd /opt/antigravity /usr/local/bin/antigravity /usr/share/applications/antigravity.desktop /usr/share/icons/hicolor/512x512/apps/antigravity.png
unconfined_u:object_r:usr_t:s0 /opt/antigravity unconfined_u:object_r:bin_t:s0 /usr/local/bin/antigravity unconfined_u:object_r:usr_t:s0 /usr/share/applications/antigravity.desktop system_u:object_r:usr_t:s0 /usr/share/icons/hicolor/512x512/apps/antigravity.png
Install Antigravity IDE on Fedora
The current Antigravity IDE is a separate 2.x editor build from Google’s download page. It uses a Linux tarball instead of the legacy RPM repo, so install it with its own helper, command name, desktop file, and icon.
Install the helper prerequisites if you skipped the desktop app section:
sudo dnf install curl tar desktop-file-utils python3
The IDE helper reads Google’s download bundle, selects the Linux x64 or ARM64 IDE tarball, installs it under /opt/antigravity-ide, creates /usr/local/bin/antigravity-ide, installs the upstream icon, and writes a separate Fedora launcher.
sudo tee /usr/local/bin/update-antigravity-ide > /dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
if [ "$(id -u)" -ne 0 ]; then
echo "Run with sudo: sudo update-antigravity-ide" >&2
exit 1
fi
download_page="https://antigravity.google/download"
install_root="/opt/antigravity-ide"
command_link="/usr/local/bin/antigravity-ide"
desktop_file="/usr/share/applications/antigravity-ide.desktop"
icon_file="/usr/share/icons/hicolor/512x512/apps/antigravity-ide.png"
case "$(uname -m)" in
x86_64 | amd64) platform="linux-x64" ;;
aarch64 | arm64) platform="linux-arm" ;;
*)
echo "Unsupported architecture: $(uname -m)" >&2
exit 1
;;
esac
for required_command in curl tar python3; do
if ! command -v "$required_command" >/dev/null 2>&1; then
echo "$required_command is required to install Antigravity IDE." >&2
exit 1
fi
done
if [ -L "$command_link" ]; then
command_target=$(readlink -f "$command_link" || true)
case "$command_target" in
"$install_root"/*) ;;
*)
echo "$command_link points to $command_target. Move it before rerunning this helper." >&2
exit 1
;;
esac
elif [ -e "$command_link" ]; then
echo "$command_link exists and is not a symlink. Move it before rerunning this helper." >&2
exit 1
fi
tmp_parent="${TMPDIR:-/var/tmp}"
mkdir -p "$tmp_parent"
tmpdir=$(mktemp -d "$tmp_parent/antigravity-ide.XXXXXX")
trap 'rm -rf "$tmpdir"' EXIT
download_html="$tmpdir/download.html"
download_js="$tmpdir/download.js"
archive="$tmpdir/Antigravity-IDE.tar.gz"
archive_list="$tmpdir/archive-list.txt"
curl -fsSL --compressed --retry 3 -o "$download_html" "$download_page"
main_js_url=$(
python3 - "$download_html" "$download_page" <<'PY'
import re
import sys
from pathlib import Path
from urllib.parse import urljoin
html = Path(sys.argv[1]).read_text()
page_url = sys.argv[2]
matches = re.findall(r'(?:src|href)="([^"]*main-[^"]+\.js)"', html)
if not matches:
raise SystemExit("Could not find the Antigravity download bundle")
print(urljoin(page_url, matches[-1]))
PY
)
curl -fsSL --compressed --retry 3 -o "$download_js" "$main_js_url"
download_fields=$(
python3 - "$download_js" "$platform" <<'PY'
import re
import sys
from pathlib import Path
bundle = Path(sys.argv[1]).read_text(errors="replace")
platform = sys.argv[2]
start = bundle.find('id:"antigravity-ide"')
end = bundle.find('},{name:"download",id:"antigravity-sdk"', start)
if start == -1 or end == -1:
raise SystemExit("Could not find Antigravity IDE downloads")
section = bundle[start:end]
match = re.search(r'href:"([^"]+/' + re.escape(platform) + r'/Antigravity%20IDE\.tar\.gz)"', section)
if not match:
raise SystemExit(f"Could not find an IDE download for {platform}")
url = match.group(1)
version_match = re.search(r'/stable/([^/]+)/', url)
if not version_match:
raise SystemExit("Could not parse Antigravity IDE version from download URL")
print(version_match.group(1).split("-", 1)[0], url)
PY
)
read -r version download_url <<<"$download_fields"
if [ -z "$version" ] || [ -z "$download_url" ]; then
echo "Could not parse the Antigravity IDE download page." >&2
exit 1
fi
expected_top_dir="Antigravity IDE"
expected_target="$install_root/$expected_top_dir/antigravity-ide"
installed_version=$(cat "$install_root/.linuxcapable-version" 2>/dev/null || true)
desktop_matches=no
if [ -f "$desktop_file" ] &&
grep -q '^Icon=antigravity-ide$' "$desktop_file" &&
grep -q '^StartupWMClass=antigravity-ide$' "$desktop_file"; then
desktop_matches=yes
fi
if [ "$installed_version" = "$version" ] &&
[ -x "$expected_target" ] &&
[ -L "$command_link" ] &&
[ "$(readlink -f "$command_link")" = "$expected_target" ] &&
[ "$desktop_matches" = yes ] &&
[ -f "$icon_file" ]; then
printf 'Antigravity IDE %s is already installed at %s\n' "$version" "$install_root/$expected_top_dir"
exit 0
fi
printf 'Downloading Antigravity IDE %s for %s...\n' "$version" "$platform"
curl -fsSL --retry 3 -o "$archive" "$download_url"
tar -tzf "$archive" >"$archive_list"
top_dir=$(sed -n '1{s#/.*##;p;q}' "$archive_list")
if [ "$top_dir" != "$expected_top_dir" ]; then
echo "Unexpected archive directory: $top_dir" >&2
exit 1
fi
tar -xzf "$archive" -C "$tmpdir"
if [ ! -x "$tmpdir/$top_dir/antigravity-ide" ]; then
echo "The Antigravity IDE launcher was not found in the archive." >&2
exit 1
fi
icon_source="$tmpdir/$top_dir/resources/app/resources/linux/code.png"
if [ ! -f "$icon_source" ]; then
echo "The Antigravity IDE icon was not found in the archive." >&2
exit 1
fi
rm -rf "${install_root}.new"
mkdir -p "${install_root}.new"
cp -a "$tmpdir/$top_dir" "${install_root}.new/"
printf '%s\n' "$version" >"${install_root}.new/.linuxcapable-version"
if [ -d "$install_root" ]; then
rm -rf "${install_root}.previous"
mv "$install_root" "${install_root}.previous"
fi
mv "${install_root}.new" "$install_root"
ln -sfn "$install_root/$top_dir/antigravity-ide" "$command_link"
mkdir -p "$(dirname "$icon_file")"
install -m 0644 "$icon_source" "$icon_file"
tee "$desktop_file" >/dev/null <<DESKTOP
[Desktop Entry]
Name=Antigravity IDE
Comment=Google Antigravity IDE
Exec=$command_link %U
Icon=antigravity-ide
Terminal=false
Type=Application
Categories=Development;IDE;
MimeType=x-scheme-handler/antigravity-ide;application/x-antigravity-workspace;
StartupNotify=true
StartupWMClass=antigravity-ide
DESKTOP
if command -v restorecon >/dev/null 2>&1; then
restorecon -R "$install_root" "$command_link" "$desktop_file" "$icon_file" 2>/dev/null || true
fi
if command -v update-desktop-database >/dev/null 2>&1; then
update-desktop-database /usr/share/applications >/dev/null 2>&1 || true
fi
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
gtk-update-icon-cache -q /usr/share/icons/hicolor 2>/dev/null || true
fi
printf 'Installed Antigravity IDE %s at %s\n' "$version" "$install_root/$top_dir"
EOF
sudo chmod +x /usr/local/bin/update-antigravity-ide
Run the helper to install or refresh the current Antigravity IDE. A successful run prints the version and install path:
sudo update-antigravity-ide
Downloading Antigravity IDE 2.0.3 for linux-x64... Installed Antigravity IDE 2.0.3 at /opt/antigravity-ide/Antigravity IDE
Verify the IDE command, desktop entry, and icon:
readlink -f /usr/local/bin/antigravity-ide
test -x "$(readlink -f /usr/local/bin/antigravity-ide)" && echo "Antigravity IDE launcher is installed"
grep -E '^(Name|Exec|Icon|Categories|StartupWMClass)=' /usr/share/applications/antigravity-ide.desktop
test -f /usr/share/icons/hicolor/512x512/apps/antigravity-ide.png && echo "Antigravity IDE icon is installed"
/opt/antigravity-ide/Antigravity IDE/antigravity-ide Antigravity IDE launcher is installed Name=Antigravity IDE Exec=/usr/local/bin/antigravity-ide %U Icon=antigravity-ide Categories=Development;IDE; StartupWMClass=antigravity-ide Antigravity IDE icon is installed
Install Antigravity CLI on Fedora
The Antigravity CLI is a separate terminal interface named agy. Install it from your normal Fedora user account with Google’s official shell installer; it writes the binary under ~/.local/bin instead of installing a system RPM.
curl -fsSL https://antigravity.google/cli/install.sh | bash
Open a new terminal if the installer updated your shell startup files, or export ~/.local/bin for the current terminal before verifying agy:
export PATH="$HOME/.local/bin:$PATH"
command -v agy
agy --version
/home/username/.local/bin/agy 1.0.1
Check the available CLI flags and subcommands after installation:
agy --help | sed -n '1,24p'
Usage of agy: --add-dir Add a directory to the workspace (repeatable) (default []) -c Short alias for --continue --continue Continue the most recent conversation --conversation Resume a previous conversation by ID --dangerously-skip-permissions Auto-approve all tool permission requests without prompting -i Short alias for --prompt-interactive --log-file Override CLI log file path -p Short alias for --print --print Run a single prompt non-interactively and print the response --print-timeout Timeout for print mode wait (default 5m0s) --prompt Alias for --print --prompt-interactive Run an initial prompt interactively and continue the session --sandbox Run in a sandbox with terminal restrictions enabled Available subcommands: changelog Show changelog and release notes help Show help for subcommands install Configure environment paths and shell settings plugin Manage plugins (install, uninstall, list, enable, disable) plugins Alias for plugin update Update CLI
Create a small update helper if you want the same repeatable management pattern used by the desktop app. The helper installs the CLI when agy is missing; otherwise, it runs agy update.
mkdir -p "$HOME/.local/bin"
tee "$HOME/.local/bin/update-antigravity-cli" > /dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
export PATH="$HOME/.local/bin:$PATH"
if [ ! -x "$HOME/.local/bin/agy" ]; then
curl -fsSL https://antigravity.google/cli/install.sh | bash
else
"$HOME/.local/bin/agy" update
fi
"$HOME/.local/bin/agy" --version
EOF
chmod +x "$HOME/.local/bin/update-antigravity-cli"
Run the helper whenever you want to refresh the CLI. A successful run prints the installed CLI version:
update-antigravity-cli
1.0.1
Install Legacy Antigravity IDE RPM on Fedora
The RPM path is legacy for Fedora at the moment. The Google RPM repo still exists, but the newest package exposed by the repo metadata is
1.23.2, not the current Antigravity 2.0 desktop app or the current Antigravity IDE tarball.
Create the RPM repository file only if you specifically need the older Antigravity IDE package:
printf '%s\n' \
'[antigravity-rpm]' \
'name=Antigravity RPM Repository' \
'baseurl=https://us-central1-yum.pkg.dev/projects/antigravity-auto-updater-dev/antigravity-rpm' \
'enabled=1' \
'gpgcheck=0' | sudo tee /etc/yum.repos.d/antigravity.repo > /dev/null
Refresh that repository and check the newest package visible for your architecture before installing:
sudo dnf makecache --refresh --repo antigravity-rpm
dnf repoquery --repo antigravity-rpm --arch="$(uname -m)" --latest-limit=1 antigravity
antigravity-0:1.23.2-1776330658.el8.x86_64
If you still want the legacy IDE package after confirming the version, install it with DNF:
sudo dnf install antigravity
Google’s RPM repo currently uses
gpgcheck=0. DNF can warn that OpenPGP checks were skipped for the Antigravity package; that warning comes from the upstream repository configuration.
Warning: skipped OpenPGP checks for 1 package from repository: antigravity-rpm Complete!
The legacy RPM metadata includes /usr/bin/antigravity and antigravity.desktop. After installing that package, launch the older IDE from Activities as Antigravity, or run /usr/bin/antigravity when you intentionally want the RPM-managed 1.x IDE.
Launch Google Antigravity on Fedora
The graphical Antigravity surfaces and the terminal CLI launch separately. Use the Fedora app menu for the desktop app or IDE, and use agy from a terminal when you want the CLI workflow.
The Antigravity 2.0 desktop app and Antigravity IDE need a logged-in graphical session before their interfaces are useful. Fedora Server or a minimal install can hold the files, but the GUI surfaces are meant for a desktop session.
Open Antigravity 2.0 Desktop App from Activities
- Open Activities.
- Search for Antigravity.
- Select the Antigravity launcher to open the app.
A desktop terminal can start the same launcher directly:
antigravity
On first launch, choose a Google account or Google Cloud project if the desktop app asks you to sign in. After sign-in, the main workspace opens with the model picker and conversation input.


Open Antigravity IDE on Fedora
The IDE helper creates a separate Antigravity IDE launcher for editor-first work.
- Open Activities.
- Search for Antigravity IDE.
- Select the Antigravity IDE launcher to open the editor.

A desktop terminal can start the same IDE launcher directly:
antigravity-ide
The IDE is the right surface when you want normal file editing, tab completion, code commands, and the agent manager in one editor window. Use the Antigravity 2.0 desktop app instead when you want the standalone project and scheduled-task surface.

Start Antigravity CLI from a Terminal
Run agy from a project directory when you want the terminal interface. The CLI uses the current directory as the main workspace unless you add more paths with --add-dir.
export PATH="$HOME/.local/bin:$PATH"
agy
Authenticate Antigravity CLI on Fedora
When no saved session is available, Antigravity CLI uses a browser-backed sign-in flow. On a local Fedora desktop, agy can open the browser sign-in page. In an SSH session, it prints an authorization URL for your local browser and asks you to paste the returned code into the terminal.
To clear saved CLI credentials later, open agy and run /logout from the prompt.
Run first Antigravity CLI commands
The CLI can run interactively or answer a single non-interactive prompt. Start with a project directory so the agent has the right file context:
cd ~/Projects/example-project
agy --print "Summarize this project and list the safest next setup step."
Use --prompt-interactive when you want to seed the first message and continue the conversation in the terminal UI:
agy --prompt-interactive "Review this repository and ask before changing files."
Add another directory when the work spans more than one local folder:
agy --add-dir ../shared-library --prompt-interactive "Use both folders as context for this task."
Use the sandbox flag for a session where local command execution should start from stricter containment:
agy --sandbox --print "Run a read-only project health check and report findings."
Use Antigravity CLI features
Several CLI controls are typed directly into the agy prompt. These are useful after the first launch:
| CLI control | Use |
|---|---|
? | Open inline help and available slash commands. |
@ | Trigger path suggestions when referencing files. |
! | Start a terminal command prompt from inside the CLI. |
/config or /settings | Open the settings panel for behavior, safety, and interface options. |
/permissions | Set how much review the agent needs before actions. |
/agents | Open the subagents panel to monitor parallel agent work. |
/tasks | Monitor, inspect, or stop background tasks. |
/skills | Browse available local and global skills. |
/mcp | Configure Model Context Protocol servers. |
/resume | Resume or switch conversations. |
/rewind | Roll back conversation history to an earlier point. |
/logout | Sign out and clear saved CLI credentials. |
If this Fedora workstation still needs Git, install Git on Fedora first, then configure Git username and email before you start cloning repositories inside Antigravity.
For Python projects, Antigravity uses the interpreter and virtual environments available in the workspace. If that toolchain is not ready yet, install Python on Fedora before opening the project folder.
Official Google Antigravity resources
- Google Antigravity 2.0 overview explains the standalone agent platform.
- Google Antigravity IDE product page explains the editor surface, agent manager, and artifact review workflow.
- Google Antigravity CLI docs cover
agysettings, commands, and keybindings. - Google Antigravity CLI getting started docs cover installation and sign-in behavior.
- Google Antigravity CLI features explain plugins, terminal sandboxing, slash commands, subagents, and the
/agentspanel. - Google Antigravity downloads list the current Linux desktop, CLI, SDK, and IDE downloads.
- Google Antigravity releases collect release notes and product changes.
- Google Antigravity support collects official help resources.
Update Google Antigravity on Fedora
Update Antigravity 2.0 desktop app
The desktop helper performs the same download-page check during updates. It leaves the previous install under /opt/antigravity.previous so you can inspect or remove the old copy after a successful upgrade.
If sudo update-antigravity reports that Antigravity 2.0.1 is already installed, the local helper is stale. Recreate /usr/local/bin/update-antigravity with the current desktop helper definition, then rerun the update command.
sudo update-antigravity
Update Antigravity IDE
The IDE helper checks the current download page and keeps the previous copy under /opt/antigravity-ide.previous after a successful replacement:
sudo update-antigravity-ide
Update Antigravity CLI
Use the helper when you want one command that handles first install and later updates:
update-antigravity-cli
After agy is installed, the direct updater works too:
agy update
With the transient spinner and status icon omitted, a no-op update looks like this:
Checking for updates... (current version 1.0.1) You are already on the latest version.
Update the legacy Antigravity IDE RPM
DNF can update the legacy RPM if Google publishes another package to the RPM repo:
sudo dnf upgrade --refresh antigravity
For regular workstation maintenance, update the whole Fedora system so DNF-managed packages move together:
sudo dnf upgrade --refresh
If you prefer unattended package maintenance for DNF-managed software, the guide to install dnf-automatic on Fedora covers the background update path.
Troubleshoot Google Antigravity on Fedora
Antigravity RPM still shows version 1.23.2
A 1.23.2 result means DNF is reading the legacy RPM repository, not the current Antigravity 2.0 desktop or IDE download paths. Use sudo update-antigravity for the desktop app, sudo update-antigravity-ide for the current IDE, or rerun dnf repoquery later if Google starts publishing 2.x RPMs.
Desktop helper reports Antigravity 2.0.1 is already installed
That message means the local desktop helper is an older saved copy that still queries Google’s previous auto-updater endpoint. The current desktop path resolves the Linux tarball from Google’s download page instead.
if [ -f /usr/local/bin/update-antigravity ] && grep -Fq 'antigravity-auto-updater-974169037036' /usr/local/bin/update-antigravity; then
echo "Old desktop helper detected"
elif [ -f /usr/local/bin/update-antigravity ]; then
echo "Current download-page helper or a different helper is installed"
else
echo "No desktop helper is installed"
fi
If the old helper is detected, overwrite /usr/local/bin/update-antigravity with the current desktop helper definition and run sudo update-antigravity again.
Desktop or IDE helper fails with a download or 404 error
A download 404 usually means Google’s download page changed or an old helper built an invalid download URL. Check whether the download page still exposes a JavaScript bundle:
curl -fsSL --compressed https://antigravity.google/download | grep -o 'main-[^"]*\.js' | head -n 1
If the command prints a bundle name, replace the affected helper with the current helper definition and rerun the update. If it prints nothing, check Google’s download, release, and support pages before retrying.
Antigravity desktop or IDE version check fails over SSH
The Antigravity desktop and IDE executables initialize graphical components. On a headless SSH session, antigravity --version or antigravity-ide --version can fail with a missing $DISPLAY or X server error. Verify the install with the matching update helper, readlink -f command, and desktop launcher instead.
Fix a black Antigravity desktop or IDE window
A black desktop window is usually a Chromium or Electron GPU-rendering problem under the active Fedora graphics session, not an SELinux denial. Check the user journal first so you can separate rendering errors from a different startup failure:
journalctl --user --no-pager -n 300 | grep -i antigravity || echo "No Antigravity messages found"
If the log mentions GPU, VA-API, or rendering failures, launch the affected Antigravity surface from a desktop terminal with GPU acceleration disabled:
antigravity --disable-gpu
antigravity-ide --disable-gpu
If the window still stays black on a Wayland session, test an Xwayland fallback with the same GPU workaround:
ELECTRON_OZONE_PLATFORM_HINT=x11 antigravity --disable-gpu
ELECTRON_OZONE_PLATFORM_HINT=x11 antigravity-ide --disable-gpu
If the desktop app command works, create a separate fallback launcher so the normal Antigravity launcher remains unchanged:
sudo cp /usr/share/applications/antigravity.desktop /usr/share/applications/antigravity-x11.desktop
sudo sed -i \
-e 's/^Name=.*/Name=Antigravity (X11 fallback)/' \
-e 's#^Exec=.*#Exec=env ELECTRON_OZONE_PLATFORM_HINT=x11 /usr/local/bin/antigravity --disable-gpu %U#' \
/usr/share/applications/antigravity-x11.desktop
sudo update-desktop-database /usr/share/applications
If the IDE command works with the same fallback, create a separate IDE fallback launcher:
sudo cp /usr/share/applications/antigravity-ide.desktop /usr/share/applications/antigravity-ide-x11.desktop
sudo sed -i \
-e 's/^Name=.*/Name=Antigravity IDE (X11 fallback)/' \
-e 's#^Exec=.*#Exec=env ELECTRON_OZONE_PLATFORM_HINT=x11 /usr/local/bin/antigravity-ide --disable-gpu %U#' \
/usr/share/applications/antigravity-ide-x11.desktop
sudo update-desktop-database /usr/share/applications
Remove the fallback launchers later if a Google update or Fedora graphics update fixes the black window:
sudo rm -f /usr/share/applications/antigravity-x11.desktop
sudo rm -f /usr/share/applications/antigravity-ide-x11.desktop
sudo update-desktop-database /usr/share/applications
Check SELinux labels for desktop and IDE paths
A normal helper install should not need a custom SELinux policy after Fedora labels the copied files correctly. If you edited a helper, copied files manually, or moved Antigravity to a different prefix, restore the default file contexts before chasing denials:
sudo restorecon -R /opt/antigravity /opt/antigravity-ide \
/usr/local/bin/antigravity /usr/local/bin/antigravity-ide \
/usr/share/applications/antigravity.desktop /usr/share/applications/antigravity-ide.desktop \
/usr/share/icons/hicolor/512x512/apps/antigravity.png \
/usr/share/icons/hicolor/512x512/apps/antigravity-ide.png
Then recheck the labels. Fedora should show normal user and binary contexts, not temporary extraction contexts from /tmp:
ls -Zd /opt/antigravity /opt/antigravity-ide \
/usr/local/bin/antigravity /usr/local/bin/antigravity-ide \
/usr/share/applications/antigravity.desktop /usr/share/applications/antigravity-ide.desktop \
/usr/share/icons/hicolor/512x512/apps/antigravity.png \
/usr/share/icons/hicolor/512x512/apps/antigravity-ide.png
unconfined_u:object_r:usr_t:s0 /opt/antigravity unconfined_u:object_r:usr_t:s0 /opt/antigravity-ide unconfined_u:object_r:bin_t:s0 /usr/local/bin/antigravity unconfined_u:object_r:bin_t:s0 /usr/local/bin/antigravity-ide unconfined_u:object_r:usr_t:s0 /usr/share/applications/antigravity.desktop unconfined_u:object_r:usr_t:s0 /usr/share/applications/antigravity-ide.desktop system_u:object_r:usr_t:s0 /usr/share/icons/hicolor/512x512/apps/antigravity.png system_u:object_r:usr_t:s0 /usr/share/icons/hicolor/512x512/apps/antigravity-ide.png
Fix agy command not found
The CLI installer writes agy to ~/.local/bin. Open a new terminal, or add that directory to the current shell before trying again:
export PATH="$HOME/.local/bin:$PATH"
command -v agy
Fix Antigravity CLI sign-in on SSH
If agy cannot open a browser from an SSH session, use the authorization URL it prints in the terminal. Open that URL in a local browser, sign in, then paste the returned code back into the SSH terminal when the CLI asks for it.
Fix legacy RPM signature verification errors
If an older repo example or local hardening changed gpgcheck to 1, DNF can fail with a signature mismatch. Restore the upstream repo shape, clean metadata, and retry only if you intentionally want the legacy RPM path:
printf '%s\n' \
'[antigravity-rpm]' \
'name=Antigravity RPM Repository' \
'baseurl=https://us-central1-yum.pkg.dev/projects/antigravity-auto-updater-dev/antigravity-rpm' \
'enabled=1' \
'gpgcheck=0' | sudo tee /etc/yum.repos.d/antigravity.repo > /dev/null
sudo dnf clean metadata
sudo dnf install --refresh antigravity
Remove Google Antigravity from Fedora
Remove Antigravity 2.0 desktop app
Delete the tarball-managed desktop app, previous copy, command link, helper, desktop launcher, and icon files:
sudo rm -rf /opt/antigravity /opt/antigravity.previous
sudo rm -f /usr/local/bin/antigravity /usr/local/bin/update-antigravity /usr/share/applications/antigravity.desktop /usr/share/applications/antigravity-x11.desktop /usr/share/icons/hicolor/512x512/apps/antigravity.png /usr/share/icons/hicolor/scalable/apps/antigravity.svg
if command -v update-desktop-database >/dev/null 2>&1; then
sudo update-desktop-database /usr/share/applications >/dev/null 2>&1 || true
fi
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
sudo gtk-update-icon-cache -q /usr/share/icons/hicolor 2>/dev/null || true
fi
hash -r
test ! -e /usr/local/bin/antigravity && echo "Antigravity 2.0 command link is removed"
Remove Antigravity IDE
Delete the tarball-managed IDE, previous copy, command link, helper, desktop launcher, and icon file:
sudo rm -rf /opt/antigravity-ide /opt/antigravity-ide.previous
sudo rm -f /usr/local/bin/antigravity-ide \
/usr/local/bin/update-antigravity-ide \
/usr/share/applications/antigravity-ide.desktop \
/usr/share/applications/antigravity-ide-x11.desktop \
/usr/share/icons/hicolor/512x512/apps/antigravity-ide.png
if command -v update-desktop-database >/dev/null 2>&1; then
sudo update-desktop-database /usr/share/applications >/dev/null 2>&1 || true
fi
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
sudo gtk-update-icon-cache -q /usr/share/icons/hicolor 2>/dev/null || true
fi
hash -r
test ! -e /usr/local/bin/antigravity-ide && echo "Antigravity IDE command link is removed"
Remove Antigravity CLI
Remove the user-local CLI binary and update helper:
rm -f "$HOME/.local/bin/agy" "$HOME/.local/bin/update-antigravity-cli"
hash -r
command -v agy || echo "agy command is removed"
Remove the legacy Antigravity IDE RPM
Uninstall the RPM package and remove the legacy repository file:
sudo dnf remove antigravity
sudo rm -f /etc/yum.repos.d/antigravity.repo
sudo dnf clean metadata
Confirm the RPM package and repo file are gone:
rpm -q antigravity || echo "antigravity RPM is removed"
test ! -e /etc/yum.repos.d/antigravity.repo && echo "antigravity repo file is removed"
Delete Antigravity user data
User-data cleanup permanently deletes Antigravity desktop settings, IDE settings, CLI state, cached files, and updater data from your home directory. Keep a backup first if you may need the profile later.
Review matching Antigravity paths before deleting anything:
find "$HOME/.config" "$HOME/.cache" "$HOME/.gemini" "$HOME/.antigravity-ide" -maxdepth 2 \( -iname '*Antigravity*' -o -iname '*antigravity*' \) -print 2>/dev/null
Remove the known desktop, IDE, and CLI profile paths when you are ready to discard them:
rm -rf "$HOME/.config/Antigravity" \
"$HOME/.config/Antigravity IDE" \
"$HOME/.antigravity-ide" \
"$HOME/.cache/antigravity" \
"$HOME/.cache/antigravity-updater" \
"$HOME/.gemini/antigravity-cli"
Conclusion
Fedora now has a clear Antigravity split: use the tarball helpers for the current Antigravity 2.0 desktop app and Antigravity IDE, use agy for the terminal CLI, and keep the RPM repo only for the legacy 1.x IDE path. If you want to round out the workstation, install GitHub Desktop on Fedora for a GUI Git workflow or install Docker on Fedora for disposable test environments.


Please answer how update Antigravity 2.0.1 to last version 2.0.6?
Hi Alex. If your
/usr/local/bin/update-antigravityhelper was created from the older article version, replace it first with the current desktop helper shown in the Fedora guide. The old helper can stop at2.0.1. After recreating the helper, run:If you already recreated the helper from the updated guide, that command is all you need. It should resolve the current desktop app as
2.0.6from Google’s download page.sudo update-antigravity
Antigravity 2.0.1 is already installed at /opt/antigravity/Antigravity-x64
Does not see the 2.0.6? Thanks.
That version check was coming from an older saved copy of
/usr/local/bin/update-antigravity. The old helper was still checking Google’s previous updater endpoint, which now appears to stop at2.0.1, so it incorrectly treated that as the latest version.I’ve updated the Fedora article to use Google’s current download page instead, and added a troubleshooting note for anyone who still has the stale helper installed. Recreate
/usr/local/bin/update-antigravitywith the updated helper from the guide, then run:After that, it should detect the desktop app as
2.0.6instead of incorrectly treating2.0.1as current.Thank you. It worked.
Good helper scripts. Please add the one for Antigravity IDE.
Done!
I am on Fedora 43 KDE Plasma, first opening Antigravity will freezes my PC, also when closing Antigravity. do you have same problem?