Stata 19 MP with Antigravity IDE
Install Antigravity IDE (VS Code fork) and mirror your VS Code Stata workflow on Ubuntu 24.04-based Linux.
What This Guide Achieves
Antigravity IDE is a VS Code fork — it uses the same config format, same extension system, same task runner. This guide mirrors your working VS Code Stata setup so both editors behave identically.
| Feature | Status |
|---|---|
Antigravity IDE installed via tarball at /opt/antigravity-ide | Verified |
| VS Code settings, keybindings, and tasks mirrored verbatim | Verified |
| 2 Stata-pipeline extensions installed (no bloat) | Verified |
Open .do files with Stata syntax highlighting | Verified |
Ctrl+Enter runs current .do file in Stata GUI | Verified |
| Shift+Enter runs selected Stata code in Stata GUI | Verified |
Reuses existing stata_run_do.sh and stata_run_selection.sh | Verified |
This guide does not reinstall Stata. Complete the Stata 19 MP Complete Installation and VS Code Integration guide first.
Installing Antigravity IDE
Antigravity IDE is a standalone tarball download.
-
Download from antigravity.google/product/antigravity-ide (Linux x64 or ARM64).
-
Extract and install to
/opt:
cd ~/Downloads
tar -xzf Antigravity-IDE.tar.gz
sudo mv Antigravity-IDE-x64 /opt/antigravity-ide
sudo ln -s /opt/antigravity-ide/antigravity-ide /usr/local/bin/antigravity-ide
- Launch once to initialize config folders:
antigravity-ide
Then close it.
Tested Setup
command -v antigravity-ide
# /usr/local/bin/antigravity-ide
ls -la $(command -v antigravity-ide)
# /usr/local/bin/antigravity-ide -> /opt/antigravity-ide/antigravity-ide
Config paths:
~/.config/Antigravity IDE/User/ → settings.json, keybindings.json, tasks.json
~/.antigravity-ide/extensions/ → only 2 extensions (stata-enhanced, multi-command)
Note the space in
Antigravity IDE— Antigravity IDE creates its config folder with a space, not a hyphen.~/.config/Antigravity-IDE/(hyphen) does not exist.
The working settings.json on the tested system:
{
"claudeCode.preferredLocation": "panel",
"editor.minimap.enabled": false,
"workbench.settings.applyToAllProfiles": [],
"redhat.telemetry.enabled": true,
"python.analysis.typeCheckingMode": "standard",
"chat.viewSessions.orientation": "stacked"
}
The above is the resulting Antigravity IDE settings.json after copying from VS Code and having the IDE automatically strip keys that reference extensions not present in Antigravity IDE (e.g., yaml.schemas pointing to a VS Code extension, workbench.iconTheme for an extension you didn’t copy). Copy VS Code’s settings.json verbatim — Antigravity IDE will ignore unknown keys gracefully.
Prerequisites
| Requirement | Verify |
|---|---|
| Stata 19 MP installed | ls /usr/local/stata19/xstata-mp |
| X11/Xorg session | echo $XDG_SESSION_TYPE prints x11 |
| Automation tools | which wmctrl xdotool xclip |
| Runner scripts | which stata_run_do.sh and which stata_run_selection.sh |
| Antigravity IDE installed | command -v antigravity-ide |
sudo apt install wmctrl xdotool xclip
Mirroring VS Code to Antigravity IDE
Since Antigravity IDE is a VS Code fork, copy config files verbatim. Only copy the 2 extensions needed for the Stata pipeline — copying all VS Code extensions causes errors from incompatible or missing dependencies.
1. Copy VS Code config files
cp ~/.config/Code/User/settings.json ~/.config/Antigravity\ IDE/User/settings.json
cp ~/.config/Code/User/keybindings.json ~/.config/Antigravity\ IDE/User/keybindings.json
cp ~/.config/Code/User/tasks.json ~/.config/Antigravity\ IDE/User/tasks.json
The backslash before the space (
Antigravity\ IDE) escapes it in the shell. Alternatively, quote the path:~/"config/Antigravity IDE/User/settings.json".
2. Copy only the 2 Stata-pipeline extensions
cp -r ~/.vscode/extensions/kylebarron.stata-enhanced-* ~/.antigravity-ide/extensions/
cp -r ~/.vscode/extensions/ryuta46.multi-command-* ~/.antigravity-ide/extensions/
3. Rebuild extensions.json
python3 << 'PYTHON'
import json, os
ext_dir = os.path.expanduser('~/.antigravity-ide/extensions')
extensions = []
for item in sorted(os.listdir(ext_dir)):
if item.endswith('.json') or not os.path.isdir(os.path.join(ext_dir, item)):
continue
item_path = os.path.join(ext_dir, item)
parts = item.rsplit('-', 1)
if len(parts) == 2 and parts[1].replace('.', '').isdigit():
ext_id, version = parts[0], parts[1]
else:
ext_id, version = item, '0.0.0'
publisher = ext_id.split('.')[0] if '.' in ext_id else 'unknown'
extensions.append({
"identifier": {"id": ext_id, "uuid": None},
"version": version,
"location": {"$mid": 1, "path": item_path, "scheme": "file"},
"relativeLocation": item,
"metadata": {
"installedTimestamp": 1716570000000,
"pinned": False, "source": "gallery", "id": None,
"publisherId": publisher,
"publisherDisplayName": publisher,
"targetPlatform": "undefined",
"updated": False, "private": False,
"isPreReleaseVersion": False,
"hasPreReleaseVersion": False,
"preRelease": False
}
})
with open(os.path.join(ext_dir, 'extensions.json'), 'w') as f:
json.dump(extensions, f, indent=2)
print(f'Registered {len(extensions)} extensions')
PYTHON
Expected output:
Registered 2 extensions
How It Works
| Keybinding | What Happens |
|---|---|
Ctrl+Enter | Runs current .do file through stata_run_do.sh |
Shift+Enter | Copies selection via clipboard, writes to /tmp/stata_selection_run.do, runs in Stata |
The scripts live in ~/.local/bin/ and are shared with VS Code. Antigravity IDE uses the same scripts because it mirrors VS Code’s tasks.json verbatim. See the Stata 19 MP Complete guide for the full script contents and how they work.
Note:
stata_run_do.shhasEDITOR_WMCLASS="code"which only matters if you uncomment the focus-return lines. To return focus to Antigravity IDE instead of VS Code, change it toEDITOR_WMCLASS="Antigravity-IDE".
File Locations
| File | Path |
|---|---|
| Antigravity IDE binary | /opt/antigravity-ide/antigravity-ide |
| Symlink | /usr/local/bin/antigravity-ide |
| Config directory | ~/.config/Antigravity IDE/User/ |
| Extensions directory | ~/.antigravity-ide/extensions/ |
| Desktop file | ~/.local/share/applications/antigravity-ide.desktop |
| Whole-file runner (shared) | ~/.local/bin/stata_run_do.sh |
| Selection runner (shared) | ~/.local/bin/stata_run_selection.sh |
| Temp do-file | /tmp/stata_selection_run.do |
Verification
| Item | Value |
|---|---|
| Command | antigravity-ide |
| Binary | /opt/antigravity-ide/antigravity-ide |
| Settings | ~/.config/Antigravity IDE/User/settings.json (VS Code copy, IDE autotrims unknown keys) |
| Keybindings | ~/.config/Antigravity IDE/User/keybindings.json (identical to VS Code) |
| Tasks | ~/.config/Antigravity IDE/User/tasks.json (identical to VS Code) |
| Extensions | ~/.antigravity-ide/extensions/ (2 extensions only) |
| Stata extension | kylebarron.stata-enhanced@1.6.1 |
| Multi-command | ryuta46.multi-command@1.6.0 |
Test the Workflow
antigravity-ide /path/to/your/stata/project
| Test | Expected Result |
|---|---|
Open .do file | Stata syntax highlighting appears |
Press Ctrl+Enter | Current .do file runs in Stata GUI |
Select lines, press Shift+Enter | Selection runs in Stata GUI |
| Code with backticks/globals | Runs correctly via temp .do file |
Desktop Launcher
Antigravity IDE does not create a desktop file. Add one:
Get an icon
curl -sL "https://antigravity.google/assets/image/brand/antigravity-icon__full-color.png" -o /opt/antigravity-ide/antigravity-ide.png
Install to hicolor theme
for size in 16 24 32 48 64 128 256; do
sudo mkdir -p /usr/share/icons/hicolor/${size}x${size}/apps
sudo cp /opt/antigravity-ide/antigravity-ide.png /usr/share/icons/hicolor/${size}x${size}/apps/antigravity-ide.png
done
sudo gtk-update-icon-cache -f -t /usr/share/icons/hicolor
Create .desktop file
cat > ~/.local/share/applications/antigravity-ide.desktop << 'EOF'
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Antigravity IDE
Comment=Google Antigravity IDE (VS Code fork)
Exec=/usr/local/bin/antigravity-ide %F
Icon=antigravity-ide
Categories=Development;IDE;
StartupNotify=true
StartupWMClass=Antigravity-IDE
EOF
chmod +x ~/.local/share/applications/antigravity-ide.desktop
update-desktop-database ~/.local/share/applications
Press Alt+F2, type r, Enter. Antigravity IDE appears under Development.
Verify
desktop-file-validate ~/.local/share/applications/antigravity-ide.desktop
ls /usr/share/icons/hicolor/*/apps/antigravity-ide.png
Antigravity CLI (Replaces Gemini CLI)
Google has transitioned from Gemini CLI to Antigravity CLI. If you previously used gemini, replace it with the Antigravity CLI.
Install
curl -fsSL https://antigravity.google/cli/install.sh | bash
This downloads and installs the antigravity binary to ~/.local/bin/ and adds it to your PATH via ~/.bashrc.
After installation, restart your terminal or run:
source ~/.bashrc
Then verify:
antigravity --version
The binary is currently a staging build — automatic updates are planned. For now, re-run the install script to get the latest version.
Note: Antigravity CLI runs as a daemon by default (keeps your session alive for follow-up commands). If you prefer one-off commands, use
antigravity --no-daemon.
Removal
rm -f ~/.local/bin/antigravity
rm -rf ~/.antigravitycli
Troubleshooting
| Problem | Fix |
|---|---|
Ctrl+Enter does nothing | Verify tasks.json was copied to the correct directory: diff ~/.config/Code/User/tasks.json ~/'config/Antigravity IDE/User/tasks.json' |
Shift+Enter does nothing | Verify multi-command extension folder exists in ~/.antigravity-ide/extensions/ |
| No Stata highlighting | Verify stata-enhanced extension folder exists |
| Task opens terminal but not Stata | which stata_run_do.sh stata_run_selection.sh |
| Stata doesn’t receive paste | echo $XDG_SESSION_TYPE must be x11 |
| Extensions not loading | Delete ~/.antigravity-ide/extensions/extensions.json and rebuild with the Python script |
| ”Unable to read file …/package.json” error | Stale extension folders without matching package.json |
| Config changes don’t take effect | Wrote to wrong directory (Antigravity-IDE with hyphen) |
| Config changed but behavior did not | Window needs reload |
Removal
sudo rm -rf /opt/antigravity-ide
sudo rm /usr/local/bin/antigravity-ide
rm -f ~/.local/share/applications/antigravity-ide.desktop
update-desktop-database ~/.local/share/applications
Clean user data (optional):
rm -rf ~/.config/Antigravity IDE
rm -rf ~/.antigravity-ide
Discussion