I had just finished a round of site updates one evening, and I wanted to keep the exchange I'd had with the agent that day. I opened the "…" menu on the conversation and chose Export. No dialog appeared. No save location was requested, no error was shown — nothing happened at all. I clicked three times, and on the fourth it occurred to me that this might not be something I was doing wrong.
The same symptom is on the official forum. In Export chat is not working, people describe exactly that: no dialog, no file, no error. As of late September 2026 the thread is still open.
What I'd most like to say first is that you can keep your records while you wait for the button to be fixed. Below are the three routes I actually use, written so that you can follow them without being an engineer.
Is it not being pressed, or pressed and doing nothing?
Before chasing the cause, separate the symptoms. This takes half a minute.
- Try a different conversation. If it only fails on long ones, size may still be part of the story.
- Check the likely destinations — your Downloads folder, and the root of the project you had open — immediately after clicking. Occasionally a file has been written without any confirmation.
- Quit the app, reopen it, and click once more in the same conversation.
If all three come up empty, it's perfectly reasonable to decide that today is not a day to rely on that button. Early on I spent half an hour going back and forth through the settings panel, assuming I was clicking the wrong thing. That didn't get me anywhere. Waiting for a fix and keeping a record are two separate decisions, and you can make them independently.
Route 1: Find the conversation file by modification time, not by path
I once opened a path I'd seen quoted in a write-up and found nothing there. Antigravity ships as three things in parallel — the 2.0 desktop app, the IDE, and the CLI — and all of them update often, so where a conversation lives moves between versions. Rather than memorizing a location, I let the timestamp point at it.
There are only two steps. Send a short message to the agent, then narrow the config directory by time right afterward.
# Run this right after sending one message.
# Show only files modified in the last 5 minutes and larger than 1KB
find ~/.gemini -type f -mmin -5 -size +1k 2>/dev/null | head -20
# If nothing appears, widen the search to hidden folders under your home directory
find ~ -maxdepth 4 -type d -name '.*antigravity*' -o -maxdepth 4 -type d -name '.gemini' 2>/dev/nullOn Windows, PowerShell does the same job.
# List the 20 most recently modified files from the last 5 minutes
Get-ChildItem "$env:USERPROFILE\.gemini" -Recurse -File -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddMinutes(-5) } |
Sort-Object LastWriteTime -Descending |
Select-Object -First 20 FullName, LengthThe message you just sent is inside one of the files in that list. If the extension is .json or .jsonl, a text editor will open it as-is. If it's .db or .sqlite, copy it before you open anything. Reading a file while the app is still writing to it doesn't just fail — it can put you on the wrong side of a corrupted history.
# Always open the copy (bring the -wal / -shm companions along)
mkdir -p ~/chat-backup/2026-09-22
cp <the file you found>* ~/chat-backup/2026-09-22/The strength of this route is that it works regardless of whether the feature is broken. The weakness, for me, was that the contents aren't shaped for a human reader. I thought I wanted the full transcript. When I actually opened it, I realized that only a small part was worth re-reading — which is what led me to route 3.
Route 2: Decide two things before handing a conversation to a community exporter
While the official button sits still, community tools like antigravity-chat-exporter keep working. They're convenient, and they produce something readable.
That said, a conversation carries more than you tend to remember. API key strings. A client's domain. The internal name of an app you haven't announced. The shape of your local folders. As an indie developer I move between conversations about store copy for my own apps and conversations about client sites inside the same editor, and the two don't always stay neatly apart.
So I decide two things before exporting.
- Which conversations go through. My own product work goes through; anything containing someone else's information does not.
- Where the tool runs. I check whether it stays on my machine or sends anything outward before I run it.
This isn't distrust of the tool. A conversation is a record of my thinking and, at the same time, an inventory of things other people entrusted to me — the two-sidedness is what the step is there to keep in view.
Route 3: Decide what to keep while the conversation is still open
Of the three, this is the one I use most.
Even when the official export works, it has a ceiling. What comes out is the visible exchange; how the agent reasoned along the way falls away. A full transcript, in other words, is less complete than it sounds.
So at the end of a work session I ask the agent to write the summary itself, on the spot. The prompt is the same every time.
Append to docs/worklog/2026-09-22.md, as bullets under exactly three headings:
files actually changed in this session, options considered and rejected with
the reason, and the first concrete step for picking this back up.
No commentary, no preamble.There's a reason the headings are fixed at three. Left to summarize freely, an agent tends to keep the parts that went well. Asking explicitly for the rejected options is what lets a future me stop just short of walking into the same dead end a week later.
In the daily updates for the sites I run, I forbid a job from ending silently — it has to leave a file saying success, limit reached, or failure. Records of conversations follow the same rule at Dolice. Whether something gets kept should not depend on whether a button feels like working.
Choosing between the three
| Route | Best for | Effort | Weakness |
|---|---|---|---|
| 1. Locate by modification time | Rescuing a past conversation right now | Medium | Contents aren't shaped for reading |
| 2. Community exporter | Getting a readable copy of the whole thing | Low | The judgment about what to hand over stays with you |
| 3. Summary at the end of the session | Doing it every day | Low | Can't reach back to past conversations |
The first is a rescue, the second is transport, the third is a habit. They don't compete. On the day the export button starts working again, the third one still stands.
For the wider picture of how the product is meant to be used, the Antigravity documentation is the place to look. Button behavior shifts between versions, so checking once a month whether it's been fixed has been enough for me.
What to do next
At the end of today's work, try route 3 once. Name the three headings, and have the agent append them to a dated file inside your repository. That's the whole thing. Tomorrow morning, reading those five lines back will tell you whether it's worth continuing.
Since that evening when nothing happened, this is the one step I've kept doing without fail.