Repository navigation
feat(cli): support Antigravity CLI as a flat host #511
Description
Activity
- changed the title
[-]feat(cli): add Gemini CLI as a per-tool build target[/-][+]feat(framework): support Google Antigravity as a first-class host[/+]on Sep 9, 2026 #623 closed without merging, as Gemini CLI no longer serves individual accounts since June 18, 2026 (Google announcement).
Antigravity work will start on a new branch from
main. #623 stays reference material only and is not a delivery dependency.Evidence transferred from the concluded #859 spike:
- Antigravity
agy1.2.5 loads project customizations from<project>/.agents/and machine-wide hooks from~/.gemini/config/hooks.json. - Project hooks under
<project>/.agents/hooks.jsonactivate after folder trust.--add-diralone is not equivalent to granting trust. - The telemetry mapping is direct:
SessionStart→session-start,Stop→turn-end, andPostToolUse→tool-used. - Repository resolution must use
workspacePaths[0], not the hook processcwd. The sharedreadCwddefect was fixed by merged PR fix(telemetry): resolve the repository from the host, not from payload.cwd #892. - The reusable diagnostics are the Antigravity
cli-*.loghook-load count andagy -p "/hooks";agy plugin validatealone is not runtime evidence. - For agents, the cross-host portable shape proven with Kimi Code is
.agents/agents/<name>/agent.md. A flat<name>.mdcan validate successfully while Antigravity silently ignores it. feat(cli): emit portable Markdown agents under .agents/agents #916 owns that shared distribution slice.
This evidence refines #511's install and lifecycle contract. #890 separately owns the inert memory-hook wiring defect. Global configuration mutation remains a product decision of the Antigravity delivery, not a generic installer assumption inherited from #859.
- Antigravity
@tkman59 — you own this and I'm not looking to take any of it. Just leaving what I measured during #859, in case it saves you a few evenings.
blafourcade already transferred the findings above, so I'll only add what isn't in the thread yet. I have a working
antigravityjournal host foraidd-telemetry, proven over the wire in both scopes — project<repo>/.agents/hooks.jsonand machine-wide~/.gemini/config/hooks.json. It isdetectHostonconversationId+transcriptPath, the repo resolved fromworkspacePaths[0], the 1:1 event mapping, awrite_to_file/TargetFileextractor, and the skill step read off theSKILL.mdits invocation opens — with five fixtures captured from realagy1.2.5 sessions and three tests of its own.It is written as a delta on the Kimi Code journal host from the same spike, which is the one caveat worth stating up front. I re-ran the bench today on
83b0246e: the journal suite goes 197 → 201 (Kimi) → 207, and the thirteen telemetry suites 310 → 314 → 320, everything passing.Against
nextatd6a88809, applied after the Kimi patch, exactly one hunk no longer applies:file-writes.cjs:104, which is thereadCwdfix that landed separately as #892. Dropping it is the whole rebase.It's yours to take, adapt or ignore, and it carries no claim on the issue. Say the word and I'll push the branch or paste the diff here; if you'd rather write it your own way, the evidence in #859 is all you need and I'll stay out of your way.
Two things I got wrong last round, worth knowing before you trust anything of mine: I first reported that
agyhad no project hook scope — wrong namespace, the customization root is.agents/, not.gemini/or.agy/— and thatworkspacePathswas always empty, which is true only of-pwithout--add-dir.Spike on
agy1.2.14, run locally. Each result is backed by a log line or a hook marker, not by the model's answer.Surface Result Flat skill, .agents/skills/<name>/SKILL.mdworks: expanded slash command "aidd-probe" (skill)Project hooks, .agents/hooks.jsonworks: loaded 2 named hooks;SessionStartandPreInvocationboth fire (SessionStartis missing from the docs)Native plugin, plugin.jsonworks globally ( agy plugin install) and per project (copied into.agents/plugins/); invoked only as/<plugin>:<skill>CI plugin validate,installandlistrun without a login; a turn needs oneIn print mode (
agy -p), a turn can hang after answering, even with no skill loaded. A smoke test should check the log line and the hook marker, never wait for the turn to end.Narrowing this issue to the flat
agyCLI host, in project scope:- Skills and the memory hook.
- Agents, applying the rules from feat(cli): emit portable Markdown agents under .agents/agents #916 (
model: inherit,toolsas a YAML list).
Out of scope, to be filed separately: native plugin mode, telemetry (the #859 patch), Antigravity 2.0, the Gemini migration guide, and a bug where uninstalling one flat tool deletes plugin files another tool still declares (reproduced by a unit test; related to #929).
I will update the description and acceptance criteria to match.
- changed the title
[-]feat(framework): support Google Antigravity as a first-class host[/-][+]feat(cli): support Antigravity CLI as a flat host[/+]on Oct 2, 2026 - added a commit that references this issue
on Oct 5, 2026
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Projects
- StatusShow more project fieldsIn Progress
Problem to solve
Teams moving from Gemini CLI to Antigravity CLI (
agy) have no AIDD installation: no profile writes the filesagyreads.Proposed solution
Add an isolated
antigravityflat profile, modelled on Kilo, for theagyCLI in project scope. It writes skills, the memory hook and agents under.agents/, from the same source as every other host.Content type
Target tool(s)
agy)Additional context
agy1.2.14: see the spike comment..agents/hooks.json, neversettings.json(fix(aidd-context): the memory hook wired into ~/.gemini/settings.json never runs under Antigravity, and fails silently #890).Acceptance criteria
aidd setup --ai antigravitywrites AIDD skills under.agents/skills/, andagyexpands each as a skill (log lineexpanded slash command). → feat(cli): add Antigravity CLI as a flat host for skills #957 (skills, expansion measured on 1.2.14), docs: list antigravity cli as a supported flat host, with a local runtime smoke #961 (pnpm smoke:antigravityon 1.2.17).agents/hooks.jsonunderSessionStartand fires on a new session. → feat(cli): merge plugin hooks into antigravity's .agents/hooks.json #958 (format, cwd measured), docs: list antigravity cli as a supported flat host, with a local runtime smoke #961 (smoke:loaded 1 named hooks,AGENTS.mdrefreshed).agents/agents/<name>/agent.mdwithname,description,model: inheritandtoolsas a YAML list, andagyloads them. → feat(cli): emit antigravity agents as portable .agents/agents/<name>/agent.md #960, docs: list antigravity cli as a supported flat host, with a local runtime smoke #961 (smoke:/agentslistsaidd-dev-executor)aidd translate --to antigravity --as flatproduces the same tree; a newantigravity:flatgolden cell is added and no existing cell changes. → feat(cli): add Antigravity CLI as a flat host for skills #957 (cell added), feat(cli): merge plugin hooks into antigravity's .agents/hooks.json #958 and feat(cli): emit antigravity agents as portable .agents/agents/<name>/agent.md #960 (only that cell moves)cleanandrestoretouch only AIDD-written files; other user files under.agents/are left alone. →clean: feat(cli): add Antigravity CLI as a flat host for skills #957, feat(cli): merge plugin hooks into antigravity's .agents/hooks.json #958 (foreign named hooks kept).restore(sync --force): test(cli): prove sync restores only what antigravity setup wrote #962, both inantigravity-foreign-files.e2e.test.tsprofiles/antigravity/; architecture tests pass. → feat(cli): add Antigravity CLI as a flat host for skills #957, feat(cli): merge plugin hooks into antigravity's .agents/hooks.json #958, feat(cli): emit antigravity agents as portable .agents/agents/<name>/agent.md #960 (the sharedportable-agent.tsformat sits intools/domain/formats/by design, for feat(cli): emit portable Markdown agents under .agents/agents #916)Out of scope
plugin.json,agy plugin install).