AntigravityCliSdk runs agy --print <prompt> through
cli_subprocess_core and projects the normalized core events into SDK structs.
It is the supported Google coding-agent SDK. The retired gemini_cli_sdk
remains retired, while gemini_ex is a distinct model API SDK. This package
requires Elixir 1.19 or later and cli_subprocess_core ~> 0.4.0.
1. Add The Dependency
For sibling checkout development:
{:antigravity_cli_sdk, path: "../antigravity_cli_sdk"}For Hex after publish:
{:antigravity_cli_sdk, "~> 0.2.0"}2. Install And Authenticate agy
Install the Antigravity CLI agent binary and authenticate it with its native
login flow for the OS user that will run the SDK. Local development normally
uses that ambient CLI login. CI and governed launches should pass credentials
through %AntigravityCliSdk.Options{} or a governed authority instead of
through command-line arguments.
Optional app configuration can point at a non-PATH binary:
config :antigravity_cli_sdk,
cli_path: "/home/app/bin/agy"config/runtime.exs in this repo translates ANTIGRAVITY_CLI_PATH,
ANTIGRAVITY_MODEL, and ANTIGRAVITY_LOG_FILE into app config.
3. Run A Prompt
{:ok, text} =
AntigravityCliSdk.run("Reply with exactly: OK", %AntigravityCliSdk.Options{
dangerously_skip_permissions: true
})run/2 consumes the stream and returns final text. Use it for quick
prompt/response calls and smoke checks.
4. Stream Events
"Reply with exactly: OK"
|> AntigravityCliSdk.execute(%AntigravityCliSdk.Options{})
|> Enum.each(fn
%AntigravityCliSdk.Types.MessageEvent{content: text} -> IO.write(text)
%AntigravityCliSdk.Types.ResultEvent{result: result} -> IO.inspect(result)
_event -> :ok
end)Run the included live example:
mix run examples/simple_stream.exs
Run the full SDK-owned example suite:
~/scripts/with_bash_secrets bash examples/run_all.sh
The HexDocs Examples page is sourced from examples/README.md.
5. Use With ASM
agent_session_manager resolves the SDK runtime as
AntigravityCliSdk.Runtime.CLI for the :antigravity provider when the SDK
package is loadable locally.
In an ASM host app, add antigravity_cli_sdk as an optional dependency and run:
{:ok, result} =
ASM.query(:antigravity, "Reply with exactly: OK",
lane: :sdk,
permission_mode: :bypass
)