Jason19 downloadsProcess notes with Gemini 3.8 Flash through the locally installed Antigravity CLI (agy). Summarize, translate, rewrite, or chat about the current note or selection and write the result back into your vault.
Process your notes with Gemini 3.8 Flash (and the other models your Google Antigravity
account offers) from inside Obsidian, through the locally installed Antigravity CLI (agy).
agy itself. No proxy service, no API key stored in Obsidian; it
reuses the CLI's own sign-in.agy --version
agy models
The second command must print the model list (for example gemini-3.8-flash-high). If it says
you are not logged in, run agy interactively and sign in first; the plugin never handles login.agy 1.2.7 on Windows 10. macOS and Linux use the same protocol but were not
manually verified.Settings -> Community plugins -> Browse -> search Antigravity CLI -> Install -> Enable. (Available once the plugin is accepted into the directory.)
https://github.com/jsun2020/Obsidian-antigravitycli.Download main.js, manifest.json, and styles.css from the
latest release
into <vault>/.obsidian/plugins/antigravity-cli/, then enable the plugin.
Settings -> Antigravity CLI:
%LOCALAPPDATA%\agy\bin\agy.exe on Windows,
~/.local/bin/agy, /usr/local/bin/agy, /opt/homebrew/bin/agy, then PATH). Click Test
CLI: it reports the version, whether the CLI is signed in, and loads the model list.gemini-3.8-flash-high by default. The slug carries the reasoning effort
(high / medium / low); -medium is faster for bulk summarizing. Each chat tab can switch models
from its footer chip.--dangerously-skip-permissions
so the agent can read and write files and run commands in the vault without prompts. The article
presets do not need tools, so leave this on native unless you want agentic edits.--add-dir, relative to the vault root.agy prints nothing for this long (default 120 s).Preset: ... from the command palette. A preset uses the
current selection when there is one and the preset accepts it, otherwise the whole current note.Source: [[...]] link). The
preset's suggested action is outlined.agy conversation. History lives in history.json in the plugin folder.A preset can carry an output schema (JSON Schema). Such a preset runs in its own one-shot
agy --json-schema session, the CLI returns a parsed object, and the chat shows its fields.
Apply to frontmatter merges them into the note's properties: title is set, tags are merged
with existing ones (normalized: no #, lowercase, hyphenated), and other scalar fields are added
only when absent. The built-in Title + tags preset ships with a {title, tags} schema.
Right-click a folder in the file explorer -> Antigravity: run preset on folder..., or run the command Run preset on folder.... Pick the preset, whether to include subfolders, and how to write results: Append to each note, New note per source note, or Into frontmatter (schema presets only). Untick notes you want to skip, then Start.
agy process, so nothing bleeds between
notes. Expect roughly 10-30 seconds per note including the CLI startup.Each chat tab owns one agy process in headless stream-json mode:
agy --input-format stream-json --output-format stream-json --model <slug>
--add-dir <vault> --mode accept-edits [--conversation <id>] [--dangerously-skip-permissions]
The plugin writes one {"event":"user","message":{"content":...}} line per turn to stdin and
renders the step_update / result events from stdout. Stop kills the process tree; the tab
keeps its conversation id and the next message resumes it with --conversation. Prompts travel
over stdin, so long articles never hit command-line length limits.
agy has no system-prompt flag, so house instructions (reply language, Markdown formatting, your
custom instructions) are appended to each message inside an <antigravity_app_context> block.
Note text you send (the attached note or selection, plus your message) goes to Google's
Antigravity service through the CLI under your own account. Nothing is sent anywhere else, and
the plugin makes no network requests of its own. Settings are stored in data.json and chat
history in history.json inside the plugin folder; no credentials are stored by the plugin.
agy in a terminal and sign in, then retry.agy takes several seconds to start and authenticate; later turns in
the same tab are fast because the process stays alive.-medium / -low model.npm install
npm run build # emits main.js
npm test # unit tests against captured agy output (no agy needed)
npm run typecheck
npm run lint # eslint + eslint-plugin-obsidianmd
npm run smoke # optional live test against the real agy (uses quota); add -- --stop to test stop+resume
Pure logic lives in src/runtime/ and is unit-tested with Node's built-in runner; Obsidian-API
code lives in src/main.ts, src/view/, and src/settings/.
Releases are automated by .github/workflows/release.yml. Bump the version in manifest.json,
package.json, and versions.json, then push a matching tag (bare version, no v prefix):
git tag 0.2.0 && git push origin 0.2.0
The workflow builds the plugin, verifies the tag equals the manifest version, attaches build
provenance attestations, and creates the GitHub release with main.js, manifest.json, and
styles.css.