The single most disruptive moment in using Antigravity is the one when the built-in terminal goes silent. Your agent is about to run npm install, and the panel refuses to open. Or the panel is right there, but typing node -v produces nothing. I hit this on day one of spinning up a Next.js 16 project in Antigravity, and I burned two hours chasing the wrong layer before I realized why.
Here is the trap: the symptoms look similar, but the root causes live on completely different layers. "Won't open" and "opens but frozen" and "opens but commands are missing" are three separate problems with three separate fixes. This guide is the three-layer triage flow I wish I had that first day. It takes you from "a clean restart fixed it" to "your $PATH is wrong at the process-boundary level," step by step.
Step one: classify which of the three patterns you are in
Half of the time spent debugging terminal issues is spent working on the wrong layer. The first 30 seconds should go into identifying which of these three shapes your problem has.
- Pattern A — the terminal panel itself will not appear: You press
Ctrl+backtick, or pick "New Terminal" from the menu, and nothing happens. Or the panel flashes and disappears. This is an Electron renderer issue or a ptyHost process failing to spawn. - Pattern B — the panel appears but no prompt shows up: The terminal panel is visible, but there is no
$or%prompt. You see a cursor blinking and nothing else. The shell process started, but it is stuck somewhere in the login profile. - Pattern C — prompt works but commands are not found: You see
node: command not foundorgit: command not found. The shell is alive, but your environment variables, especially$PATH, are not what you expect.
Confusing these three means running fixes that were never going to help. Once you know which pattern you have, you only need to read the matching section below.
Pattern A: when the terminal panel refuses to open
When the panel itself does not appear, the fastest move is to open Antigravity's developer tools. Go to Help → Toggle Developer Tools, switch to the Console tab, and scan for red errors.
You will most often see Unable to start pty host process or spawn /bin/bash ENOENT. These mean Antigravity is trying to launch a shell at a path that no longer exists on the OS side.
Here is the fix order I follow, in priority:
- Fully quit Antigravity and relaunch it: Just closing the window sometimes leaves the ptyHost process running. On macOS, use Cmd+Q. On Windows, check Task Manager and kill any lingering
antigravity.exe. - Remove any user-level shell path override: If your
settings.jsoncontains"terminal.integrated.defaultProfile.osx"or similar, delete it temporarily and fall back to the default. A broken profile definition is a surprisingly common cause. - Confirm the shell actually exists on disk: The terminal is just spawning a shell binary. Open a different terminal app and run
ls -la /bin/zsh /bin/bash /opt/homebrew/bin/fish. If you reinstalled a shell via Homebrew, the binary likely moved to/opt/homebrew/bin/, and a stale/usr/local/bin/reference will hit ENOENT. - Last resort: reload with extensions disabled: Run
Developer: Reload With Extensions Disabledfrom the command palette. Extensions that touch the terminal layer (ShellLauncher-style extensions, Remote Development extensions) are sometimes the culprit.
In my experience, around 80% of "won't open" issues resolve within those four steps. The remaining 20% are cases where the OS upgraded the shell underneath Antigravity, and you need to combine this with the Pattern B instructions below.
Pattern B: when the panel opens but hangs before the prompt
A panel that appears but never prompts is almost always a shell login profile that has stalled, usually waiting on an external command that never returns.
The first place to look is your ~/.zshrc or ~/.bashrc. Specifically, any line that calls out to the network at startup: things like nvm use default, pyenv init -, or a custom script that fetches environment variables from a secrets service. When the network is flaky, any of these can block for 30 seconds or more.
Profile the startup cost
Run this in a different terminal (your OS's stock terminal app) to see where your shell is spending time:
# Goal: find which lines of zsh startup are consuming wall-clock time
# Requires: zsh is your default shell, ~/.zshrc exists
zsh -xvs 2>&1 | ts '[%H:%M:%.S]' | head -100If ts is not installed, grab it with brew install moreutils. Any row where the timestamp jumps forward by more than a second is a suspect. In most cases, the offender is nvm.sh sourcing, or rbenv init evaluating on every shell start.
A quick bypass and a permanent fix
For an emergency bypass, edit "terminal.integrated.profiles.osx" in Antigravity and add "args": ["-l", "-i", "--no-rcs"] to your shell entry. This starts the shell without sourcing the profile. The cost is that your PATH will not be what you expect, so treat it as a temporary patch, not a solution.
The real fix is to restructure .zshrc to lazy-load the expensive parts. Use zsh-defer or similar lazy-load helpers so that nvm.sh only runs the first time you actually call node. On my machine this cut shell startup from around 4 seconds to under 300 milliseconds.
Pattern C: when commands work nowhere, not even the ones that "should just be there"
If the terminal runs fine but node: command not found keeps greeting you, the cause is usually that Antigravity, launched from the GUI, inherited a different $PATH than your regular terminal.
This is especially common on macOS with Homebrew. Antigravity launched from Finder or Spotlight often does not see /opt/homebrew/bin. If launching from the command line with open -a Antigravity works but double-clicking the Dock icon does not, you are in this situation.
See exactly what your PATH is
Run this inside the Antigravity terminal to list each entry on its own line:
# Goal: print the current PATH one entry per line so differences are easy to spot
# Expected output: each directory on its own line; confirm /opt/homebrew/bin is present
echo "$PATH" | tr ':' '\n'If neither /opt/homebrew/bin (Apple Silicon) nor /usr/local/bin (Intel Mac) is present, your Homebrew-installed tools are invisible to this shell.
Two ways to fix it permanently
You have two clean options. I switch between them depending on the project:
- Option 1 — set PATH in Antigravity's settings: Add
"PATH": "/opt/homebrew/bin:/usr/local/bin:${env:PATH}"under"terminal.integrated.env.osx"insettings.json. Fast, but awkward if different projects need different Node versions. - Option 2 — fix it in
.zprofile: This is the one I recommend. Add a single line to~/.zprofile:eval "$(/opt/homebrew/bin/brew shellenv)". Since.zprofileis read by login shells, GUI-launched processes see the right PATH too, and there is no per-terminal cost.
On Windows, if you see the same shape of symptom, set your PATH in the System environment variables rather than User, then restart Antigravity fully. User-level variables sometimes fail to propagate to the Antigravity launcher process.
Last resort: reset just the terminal configuration without touching the rest
If none of the three pattern fixes worked, the cleanest rescue is to reset only the terminal-related configuration. You do not need to reinstall Antigravity to do this.
Quit Antigravity, then back up and prune only the terminal keys from settings.json. On macOS:
# Goal: back up settings.json and remove only terminal.* keys
# Requires: Antigravity fully quit before running
cd ~/Library/Application\ Support/Antigravity/User
cp settings.json settings.json.backup
python3 -c "
import json
with open('settings.json') as f:
data = json.load(f)
cleaned = {k: v for k, v in data.items() if not k.startswith('terminal.integrated.')}
with open('settings.json', 'w') as f:
json.dump(cleaned, f, indent=2)
print(f'removed {len(data) - len(cleaned)} terminal keys')
"Relaunch Antigravity. You should get a terminal on default settings. Once it is stable, restore settings from the backup one at a time until you find the specific key that was breaking things.
Using exactly this approach I once isolated terminal.integrated.persistentSessionReviveProcess as the problem setting after an Antigravity update changed how persistent sessions are restored. Settings that worked for months can suddenly turn into landmines after the editor updates its internals.
What to do next
Terminal plumbing is one of those layers you stop thinking about until it breaks, and then it takes your whole day. Before you close this article, spend one minute measuring how long your own shell takes to start. Run zsh -xvs as shown above. If any single line takes more than two seconds, that line is a future incident waiting to happen, and you have the chance to defuse it now.
If you are working through related issues, these companion articles may help:
- Antigravity setup error FAQ — for issues that appear during first launch and authentication
- When Antigravity's retry loop won't stop — for agents stuck in infinite retry behavior
- Antigravity credits and quota troubleshooting — for API-call errors that can masquerade as terminal failures