Release notes

FEATURE

Stream JSON keeps external programs in one conversation

When an external program needs to send Antigravity a run of prompts, print mode can now take --input-format stream-json. It reads one newline-delimited JSON prompt from stdin for each turn in one conversation. A driver can keep that session open instead of starting a new conversation for every message.

FEATURE

Agents and plugins can name rule files to apply

When setting rules for an agent, add rules: to its Markdown frontmatter and name rule files directly. A rule named there always applies, without inheriting whole rule tree. A plugin can also put rules.json at top level to declare rule files it ships, as it already declares skills.

FEATURE

Spinner names tool call and stops reverting to generic label

While agent runs tool, spinner line now names current tool call. It also no longer flickers back to generic label in gaps between quick tool calls.

You can see what agent is doing instead of only watching spinner.

BUGFIX

CLI starts on hosts that preload a memory allocator

Some hosts use LD_PRELOAD to load own allocator before program starts. CLI used to abort before interface appeared on those hosts, including Cloud TPU VM images. CLI now starts on these hosts.

BUGFIX

Restored sign-in data keeps account and billing choices

When saved credentials return from system keyring, personal accounts no longer hit resource-exhausted error at startup and repeated account checks are cut. After CLI restarts, billing project and license tier it selects also stay put.

BUGFIX

Enterprise accounts no longer get false out-of-credits alert

Enterprise users signed in through Application Default Credentials no longer see spurious "Out of credits" message. This update fixes that false alert.

Enterprise users who saw this message no longer see spurious "Out of credits" message.

BUGFIX

Model picker scrolls and aligns columns in short terminals

If terminal is too short to show every model, /model picker now scrolls instead of cutting off models or own header. For model names beyond plain ASCII, columns measure display cells rather than bytes and stay aligned.

You can read whole list and each row more clearly.

BUGFIX

Streamed text preserves non-ASCII characters

When reply arrives as stream, non-ASCII characters used to become replacement characters. Both interactive display and text deltas from --output-format stream-json were affected. They now preserve original characters instead of changing text midstream into unreadable symbols.

BUGFIX

Conversation artifacts in subdirectories appear in list

A file written under subdirectory of conversation artifact directory, such as scratch/, used to miss artifact list. Artifact directory stores conversation artifacts. Those artifacts now appear in list too.

Files in scratch/ can be found with other conversation artifacts.

BUGFIX

WAV audio reads after media type normalization

Reading .wav file could fail as unsupported media type. It now normalizes non-canonical MIME types such as audio/wave before they reach model.

A .wav is not rejected only because type label uses different form.

Original changelog

Original changelogStream JSON keeps external programs in one conversation
Added `--input-format stream-json` to print mode, which reads newline-delimited JSON prompts from stdin and runs one turn per message in a single conversation, so a driver can keep a session open.
Original changelogAgents and plugins can name rule files to apply
Added a `rules:` key to markdown agent frontmatter, so an agent can name rule files directly instead of inheriting your whole rule tree; a rule named this way always applies.
Added plugin support for a top-level `rules.json`, so a plugin can declare the rule files it ships the same way it already declares its skills.
Original changelogSpinner names tool call and stops reverting to generic label
Added a more specific hint on the spinner line, which now names the tool call the agent is currently running.
Fixed the spinner line flickering to a generic label between quick tool calls.
Original changelogCLI starts on hosts that preload a memory allocator
Fixed the CLI aborting at startup on hosts that preload their own allocator through `LD_PRELOAD`, such as Cloud TPU VM images, where it died before the interface appeared.
Original changelogRestored sign-in data keeps account and billing choices
Fixed personal accounts hitting a resource-exhausted error at startup when saved credentials were restored from the system keyring, and cut the repeated account checks that followed.
Fixed your billing project, and the license tier it selects, being lost when the CLI restarted and restored saved credentials from the system keyring.
Original changelogEnterprise accounts no longer get false out-of-credits alert
Fixed a spurious "Out of credits" message for enterprise users signed in through Application Default Credentials.
Original changelogModel picker scrolls and aligns columns in short terminals
Fixed the `/model` picker cutting off models, and its own header, on terminals too short to show every model; the list now scrolls.
Fixed the `/model` picker misaligning its columns for model names that are not plain ASCII, by measuring column widths in display cells rather than bytes.
Original changelogStreamed text preserves non-ASCII characters
Fixed streamed text corrupting non-ASCII characters into replacement characters, in both the interactive display and `--output-format stream-json` text deltas.
Original changelogConversation artifacts in subdirectories appear in list
Fixed artifacts written into a subdirectory of a conversation's artifact directory, such as `scratch/`, never appearing in the artifact list.
Original changelogWAV audio reads after media type normalization
Fixed reading a `.wav` file failing as an unsupported media type, by normalizing non-canonical MIME types such as `audio/wave` before they reach the model.