Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,27 @@ bash run_config/tw/opus-4p6_claude-code.sh

To create your own config, copy an existing one and modify the agent, model, and parameters.

### Gemini via the Antigravity CLI

`run_config/*/gemini-3p6-flash_antigravity.sh` runs Gemini under Google's own
Antigravity CLI (`agy`) instead of Claude Code or mini-swe-agent. Set
`GEMINI_API_KEY` in `.env`; the allowed agent host is
`generativelanguage.googleapis.com`.

Two things to know before trusting the numbers:

- Harbor's `antigravity-cli` agent needs
[harbor#2776](https://github.com/harbor-framework/harbor/pull/2776) and
[harbor#2687](https://github.com/harbor-framework/harbor/pull/2687), both open
but unmerged as of 2026-08-18. Without them, settings are written where `agy`
does not read them, `GEMINI_API_KEY` is ignored in favour of an interactive
login that hangs headless, no trajectory is collected, and — absent
`--add-dir` — file-producing tasks can write outside the workdir and score
zero. Test Writing is the track most exposed to that last one.
- `agy` rejects model ids outside its client-side allowlist before any request
leaves the process, so `--model` failures are not quota or auth problems.
Which ids are accepted depends on your key's entitlement.

## Citation

If you use SWE Atlas in your research, please cite our paper:
Expand Down
30 changes: 30 additions & 0 deletions run_config/qa/gemini-3p6-flash_antigravity.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash
# Gemini under Google's own Antigravity CLI (agy) rather than Claude Code or
# mini-swe-agent. Requires GEMINI_API_KEY in .env.
#
# The model id is what agy's client-side allowlist accepts in Gemini Developer
# API mode; newer ids depend on your key's entitlement and are rejected before
# any request is sent, so change it only if you have verified yours.
set -euo pipefail

# Load credentials
set -a
source "$(dirname "$0")/../../.env"
set +a

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
: "${GEMINI_API_KEY:?Set GEMINI_API_KEY in .env}"

harbor run \
-p ./data/qa \
-a antigravity-cli \
-m "google/gemini-3.6-flash" \
-e modal \
--ek 'keepalive=["-c","sleep infinity"]' \
-k 1 \
-n 12 \
--ae "GEMINI_API_KEY=${GEMINI_API_KEY}" \
--allow-agent-host generativelanguage.googleapis.com \
--agent-include-logs '**' \
-o results/qa/ \
--job-name "gemini-3p6-flash_antigravity"
30 changes: 30 additions & 0 deletions run_config/rf/gemini-3p6-flash_antigravity.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash
# Gemini under Google's own Antigravity CLI (agy) rather than Claude Code or
# mini-swe-agent. Requires GEMINI_API_KEY in .env.
#
# The model id is what agy's client-side allowlist accepts in Gemini Developer
# API mode; newer ids depend on your key's entitlement and are rejected before
# any request is sent, so change it only if you have verified yours.
set -euo pipefail

# Load credentials
set -a
source "$(dirname "$0")/../../.env"
set +a

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
: "${GEMINI_API_KEY:?Set GEMINI_API_KEY in .env}"

harbor run \
-p ./data/rf \
-a antigravity-cli \
-m "google/gemini-3.6-flash" \
-e modal \
--ek modal_vm_runtime=true \
-k 1 \
-n 12 \
--ae "GEMINI_API_KEY=${GEMINI_API_KEY}" \
--allow-agent-host generativelanguage.googleapis.com \
--agent-include-logs '**' \
-o results/rf/ \
--job-name "gemini-3p6-flash_antigravity"
35 changes: 35 additions & 0 deletions run_config/tw/gemini-3p6-flash_antigravity.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash
# Gemini under Google's own Antigravity CLI (agy) rather than Claude Code or
# mini-swe-agent. Requires GEMINI_API_KEY in .env.
#
# The model id is what agy's client-side allowlist accepts in Gemini Developer
# API mode; newer ids depend on your key's entitlement and are rejected before
# any request is sent, so change it only if you have verified yours.
#
# TW runs with network access restricted to an allowlist, so the agent's own
# API host has to be named explicitly -- see HARBOR_AGENT_ALLOWED_HOST in the
# README. For agy that host is generativelanguage.googleapis.com.
set -euo pipefail

# Load credentials
set -a
source "$(dirname "$0")/../../.env"
set +a

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
HARBOR_BIN="${HARBOR_BIN:-harbor}"
: "${GEMINI_API_KEY:?Set GEMINI_API_KEY in .env}"

"$HARBOR_BIN" run \
-p ./data/tw \
-a antigravity-cli \
-m "google/gemini-3.6-flash" \
-e modal \
--ek 'keepalive=["-c","sleep infinity"]' \
-k 1 \
-n 12 \
--ae "GEMINI_API_KEY=${GEMINI_API_KEY}" \
--allow-agent-host "${HARBOR_AGENT_ALLOWED_HOST:-generativelanguage.googleapis.com}" \
--agent-include-logs '**' \
-o results/tw/ \
--job-name "gemini-3p6-flash_antigravity"