feat: add Antigravity CLI (agy) support#863
Conversation
Add Dockerfile.antigravity and config examples so openab can bridge Discord/Slack to Google's Antigravity CLI via `agy --acp`. - Dockerfile.antigravity: downloads the native agy binary from Google Storage, supports linux/amd64 and linux/arm64 - config.toml.example: add commented [agent] block for agy - charts/openab/values.yaml: add commented antigravity agent example - AGENTS.md: update Dockerfile count 7 → 8 - src/: cargo fmt cleanup (no functional changes) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
All PRs must reference a prior Discord discussion to ensure community alignment before implementation. Please edit the PR description to include a link like: This PR will be automatically closed in 3 days if the link is not added. |
|
Closing: verified locally that |
agy v1.0.0 has no native --acp flag. This adds a thin Node.js wrapper
(agy-acp/agy-acp.mjs) that speaks the ACP stdio JSON-RPC protocol and
translates it into agy --print invocations.
Protocol handled:
initialize → agentInfo + agentCapabilities
session/new → UUID sessionId per thread
session/prompt → agy [--continue] --print "<text>", result as
agent_message_chunk notification
session/cancel → no-op (agy --print is not interruptible)
Tested end-to-end locally with a mock agy binary covering:
- initialize handshake
- session creation
- first prompt (new conversation)
- second prompt (--continue for session continuity)
Config:
command = "node"
args = ["/usr/local/lib/agy-acp.mjs"]
# Auth via: kubectl exec -it <pod> -- agy auth
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Reopening with a real working implementation. Root cause of the original close: Fix: Added Verified locally with end-to-end test (mock agy): Config is now: [agent]
command = "node"
args = ["/usr/local/lib/agy-acp.mjs"] |
|
Closing. |
|
Thanks for putting this together — the Antigravity ACP bridge idea is interesting, and it is useful as an experiment. After reviewing the diff, my read is:
Specific concerns:
Recommendation: I would not merge this into So: useful experiment, but not something I think openab should support in-tree yet. |
Add a thin Rust ACP stdio adapter (agy-acp) that translates openab's JSON-RPC protocol into `agy -p` invocations, enabling Antigravity CLI as an agent backend. - agy-acp/: standalone Rust crate, reads ACP JSON-RPC on stdin, spawns `agy -p "prompt"` for each session/prompt, uses --continue for multi-turn session continuity - Dockerfile.antigravity: multi-stage build bundling openab + agy-acp + agy binary from Google Storage - docs/antigravity.md: configuration and usage guide Tested end-to-end locally with Discord (周嘟嘟 bot) — ~5s response time. Closes #863
Add a thin Rust ACP stdio adapter (agy-acp) that translates openab's JSON-RPC protocol into `agy -p` invocations, enabling Antigravity CLI as an agent backend. - agy-acp/: standalone Rust crate, reads ACP JSON-RPC on stdin, spawns `agy -p "prompt"` for each session/prompt, uses --continue for multi-turn session continuity - Dockerfile.antigravity: multi-stage build bundling openab + agy-acp + agy binary from Google Storage - docs/antigravity.md: configuration and usage guide Tested end-to-end locally with Discord (周嘟嘟 bot) — ~5s response time. Closes #863
Add a thin Rust ACP stdio adapter (agy-acp) that translates openab's JSON-RPC protocol into `agy -p` invocations, enabling Antigravity CLI as an agent backend. - agy-acp/: standalone Rust crate, reads ACP JSON-RPC on stdin, spawns `agy -p "prompt"` for each session/prompt, uses --continue for multi-turn session continuity - Dockerfile.antigravity: multi-stage build bundling openab + agy-acp + agy binary from Google Storage - docs/antigravity.md: configuration and usage guide Tested end-to-end locally with Discord (周嘟嘟 bot) — ~5s response time. Closes #863
Add a thin Rust ACP stdio adapter (agy-acp) that translates openab's JSON-RPC protocol into `agy -p` invocations, enabling Antigravity CLI as an agent backend. - agy-acp/: standalone Rust crate, reads ACP JSON-RPC on stdin, spawns `agy -p "prompt"` for each session/prompt, uses --continue for multi-turn session continuity - Dockerfile.antigravity: multi-stage build bundling openab + agy-acp + agy binary from Google Storage - docs/antigravity.md: configuration and usage guide Tested end-to-end locally with Discord (周嘟嘟 bot) — ~5s response time. Closes #863 Co-authored-by: Pahud Hsieh <pahud@Pahuds-MacBook-Neo.local>
Summary
Dockerfile.antigravity— downloads the nativeagybinary from Google Storage, supportslinux/amd64andlinux/arm64[agent]block inconfig.toml.exampleforagy --acpantigravityagent example incharts/openab/values.yamlAGENTS.mdDockerfile count 7 → 8Background
Google Antigravity CLI (
agy) is Google's terminal-first coding agent, the successor to@google/gemini-cli. It supports ACP viaagy --acpand authenticates via Google Sign-In (OAuth — no API key needed).The binary is distributed as a native pre-compiled binary from Google Storage:
Test plan
docker build -f Dockerfile.antigravity .on amd64docker build -f Dockerfile.antigravity .on arm64agy auth→ complete Google Sign-In, thenagy --acplaunches ACP sessionhelm template test charts/openabpasses with antigravity example uncommented in values.yaml🤖 Generated with Claude Code