Repository navigation
feat(cli): support Antigravity CLI as a flat host #511
Copy link
Copy link
Open
Description
Problem to solve
Teams moving from Gemini CLI to Antigravity CLI (agy) have no AIDD installation: no profile writes the files agy reads.
Proposed solution
Add an isolated antigravity flat profile, modelled on Kilo, for the agy CLI in project scope. It writes skills, the memory hook and agents under .agents/, from the same source as every other host.
Content type
- Plugin
Target tool(s)
- Other: Google Antigravity CLI (
agy)
Additional context
- Google moved individual Gemini CLI users to Antigravity CLI on June 18, 2026 (announcement). feat(cli): add Gemini CLI as a build target and registry citizen #623 (Gemini) stays reference material only.
- Surfaces measured on
agy1.2.14: see the spike comment. - Hooks go in
.agents/hooks.json, neversettings.json(fix(aidd-context): the memory hook wired into ~/.gemini/settings.json never runs under Antigravity, and fails silently #890). - Agent shape and frontmatter rules from feat(cli): emit portable Markdown agents under .agents/agents #916.
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) - The memory hook is written to
.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 are written to
.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.ts - Tool-specific code lives in
profiles/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
- Native plugin mode (
plugin.json,agy plugin install). - Telemetry journal host (the feat(cli): support a single-clone global install shared by several CLIs #859 patch).
- Antigravity 2.0 (IDE).
- Gemini migration guide.
- Plugin files shared between two flat tools (separate bug, related to spike(framework): define the portability boundary for agent artifacts #929).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Priority
High
Projects
- StatusShow more project fieldsIn Progress
Activity
[-]feat(cli): add Gemini CLI as a per-tool build target[/-][+]feat(framework): support Google Antigravity as a first-class host[/+]blafourcade commentedon Sep 9, 2026
#511 now targets Antigravity. The Gemini work in #623 remains reference material, not a delivery dependency.
tkman59 commentedon Sep 22, 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.blafourcade commentedon Sep 24, 2026
Evidence transferred from the concluded #859 spike:
agy1.2.5 loads project customizations from<project>/.agents/and machine-wide hooks from~/.gemini/config/hooks.json.<project>/.agents/hooks.jsonactivate after folder trust.--add-diralone is not equivalent to granting trust.SessionStart→session-start,Stop→turn-end, andPostToolUse→tool-used.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.cli-*.loghook-load count andagy -p "/hooks";agy plugin validatealone is not runtime evidence..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.
dkp-consult commentedon Sep 24, 2026
@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.tkman59 commentedon Oct 2, 2026
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..agents/skills/<name>/SKILL.mdexpanded slash command "aidd-probe" (skill).agents/hooks.jsonloaded 2 named hooks;SessionStartandPreInvocationboth fire (SessionStartis missing from the docs)plugin.jsonagy plugin install) and per project (copied into.agents/plugins/); invoked only as/<plugin>:<skill>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: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.
[-]feat(framework): support Google Antigravity as a first-class host[/-][+]feat(cli): support Antigravity CLI as a flat host[/+]test(cli): check antigravity's .agents/ in the setup smoke
feat(cli): add Antigravity CLI as a flat host for skills
test(cli): check antigravity's .agents/ in the setup smoke
feat(cli): add Antigravity CLI as a flat host for skills
test(cli): check antigravity's .agents/ in the setup smoke
test(cli): prove sync restores only what antigravity setup wrote
test(cli): prove sync restores only what antigravity setup wrote
test(cli): prove sync restores only what antigravity setup wrote