[Showcase] Antigravity Operator (agyo): The Open-Source Session Harness in Go (Built 100% inside Antigravity!)

Hey everyone in the Google AI & Antigravity community! :waving_hand:

I’m thrilled to share an open-source project that was conceived, engineered, tested, and published 100% from within Google Antigravity itself:

:rocket: Antigravity Operator (agyo)
GitHub: GitHub - tiagovilasboas/antigravity-operator: The Autonomous Session Agent Engine & Outer Harness for Google Antigravity & Google AI Pro · GitHub
Release: v0.2.0


:light_bulb: Why Antigravity Operator?

Google Antigravity provides incredible atomic power: bash execution, surgical file edits, subagents, and Model Context Protocol (MCP) integrations.

However, out of the box, building complex, autonomous, long-running workflows reveals a missing layer: Session State Governance & OS Lifecycle Supervision.

Without a persistent harness, agents face:

  1. Operational Amnesia: Decisions and progress are lost across context compactions or session restarts.
  2. Browser Protocol Friction: Running browser tools manually often collides with existing Chrome instances or exposes personal profiles.
  3. The macOS vs Linux Gap: Agents navigating headless Linux servers / VPS without $DISPLAY crash unless strict server flags (--headless=new, --no-sandbox, --disable-dev-shm-usage) are carefully orchestrated.

:hammer_and_wrench: What agyo Delivers

Written in pure Go with zero external dependencies (CGO_ENABLED=0, ~6MB single static binary), agyo implements the canonical Outer Harness (Martin Fowler) model:

  • :file_folder: Deterministic Session Memory (.agents/session/): Persists state.md, decisions.md, and todo.md directly on the filesystem so agents can pick up exactly where they left off.
  • :globe_with_meridians: Zero-Pollution Chrome Supervisor: Automatically launches and tracks an isolated Chrome instance on port 9222 (~/.gemini/antigravity-browser-profile) with graceful PID tracking and shutdown.
  • :desktop_computer: Display Server Auto-Detection: Seamlessly detects whether a GUI is available or switches to headless mode on Linux VPS/Docker.
  • :shield: Privacy & LGPD/GDPR by Design: 100% local-first, zero telemetry, full user data sovereignty.
  • :package: Universal One-Line Installer & Homebrew: Instant installation on macOS and Linux.

:high_voltage: Quick Start

raw.githubusercontent

:rocket: Update: v0.4.1 is officially out!

Thank you all for the initial feedback! We have been heads down improving agyo to bring a complete outer harness experience for Google Antigravity.

Here are the major capabilities released in v0.4.1:

  • :deciduous_tree: Subagent Tree Visualizer (agyo session watch --tree):
    Track live invocations when Antigravity spawns subagents (invoke_subagent) or exchanges inter-agent messages (send_message), rendering the hierarchical agent tree directly in your terminal.

  • :bar_chart: Pure-Go Live Web Dashboard (agyo dashboard):
    Spawns a local, zero-dependency dark-mode dashboard at http/localhost:8080 showing real-time session progress, system doctor diagnostics, active Chrome DevTools tabs, and live activity feeds.

  • :page_facing_up: Executive Session Exporter (agyo session export):
    Export consolidated mission reports directly into clean Markdown or standalone responsive HTML (ready for documentation, team syncs, or portfolio sharing).

  • :high_voltage: Shell Autocompletion (agyo completion):
    Native command and flag completion generators built from scratch for Zsh, Bash, and Fish.

  • :beer_mug: Official Homebrew Tap:
    You can now install agyo with automatic completion setup on macOS and Linuxbrew:

    brew tap tiagovilasboas/tap
    brew install agyo
    
  • :shield: Zero External Dependencies: Still 100% pure Go standard library with static multi-OS binaries.

Source code and full changelog:
:backhand_index_pointing_right: https githubcom/tiagovilasboas/antigravity-operator/releases/tag/v0.4.1

Would love to hear your thoughts and feedback!

Brilliant work on this @Tiago_Vilas_Boas!

The subagent tree visualizer (agyo session watch --tree) in v0.4.1 is especially slick. Watching parallel subagents and inter-agent messages in a clean terminal hierarchy is something the native Antigravity UI desperately needs out of the box. Building it in pure Go with zero external dependencies makes the deployment beautifully clean and lightweight.

Your description of “Operational Amnesia” hits the nail on the head. It’s one of the biggest friction points when pushing Antigravity beyond quick single-turn prompts into serious multi-day projects.

It’s fascinating seeing the community tackle this. We’ve been experimenting with solving this from the inside out using native MCP protocol gates for session handoffs, but seeing it approached as an outer supervisor harness in Go gives a totally different and very compelling perspective.

Quick question on your .agents/session/ memory model:
When projects run across long-horizon sprints (say 50+ turns with heavy diffs), do you find the markdown state files accumulate context bloat when re-ingested by the agent, or do you have agyo compact/curate them before passing them back into the workspace?

Hey @dllhell, thanks a lot for the kind words!

Great question. We tackle context bloat with two principles:

  1. Strict Decoupling: Raw diffs and transcripts never enter .agents/session/ (the engine and Git handle those out-of-band). The active files are strictly bounded executive memory ($O(1)$ size).
  2. Deterministic Compaction: Inspired by your question, we actually just released agyo v0.4.2 today with agyo session compact! It automatically archives older completed tasks and pruning historical logs from state.md into .agents/session/archive/, keeping only the active context and saving ~75% of session tokens per turn.

agyo session status now also gives live token telemetry (Optimal 🟢 vs Bloated 🔴), and agyo doctor audits session bloat automatically.

Appreciate the feedback!

Huge congratulations on shipping v0.4.2 so quickly @Tiago_Vilas_Boas!

The agyo session compact approach with the /archive/ tier is spot on. Keeping active executive memory strictly $O(1)$ while archiving completed milestones out-of-band is the only reliable way to keep models sharp past Turn 50. That ~75% token saving per turn is a massive win for anyone running long-horizon sprints.

The visual telemetry in session status (Optimal :green_circle: vs Bloated :red_circle:) is brilliant UX—giving developers immediate visibility before context degradation kicks in.

It’s exciting to see how both outer supervisors (like agyo) and native MCP protocol boundaries are converging on the exact same architectural reality: agentic pair-programming requires deterministic memory governance to scale.

Kudos on a fantastic release.