Data & file locations
Where Open Free Max stores its settings, memory, usage and Mission Control data — and why your agent transcripts live elsewhere.
OFM keeps a small footprint in the OS config directory. Agent transcripts are deliberately not here — they stay in each CLI’s own store.
Config directory
- Windows —
%APPDATA%\com.openfreemax.ide\ - macOS —
~/Library/Application Support/com.openfreemax.ide/
One folder per account
Since 4.0.0, everything that belongs to you lives one level down, in a folder named after your OFM account. Two accounts on the same machine therefore no longer share projects, memory or orchestrator state.
- The move happens once, at the first launch after signing in, and nothing is discarded on the way.
- Switching account means restarting the app.
- Projects are folders on your disk: the profile isolates OFM’s own state, not the file system.
A few machine-level files stay at the root on purpose, starting with usage.db: it carries the
installation id, which has to survive an account change.
The paths below are relative to the active account folder, except where noted.
What’s inside
| Path | Contents |
|---|---|
settings.json |
App settings (provider flags, Mission Control, theme, language, routing) |
routing_quota.json |
What the quota gauges show, per subscription. Local only |
provider_usage.json |
Which CLIs you have actually run per project, and which you excluded as fallbacks |
routing_outcome.json |
Your recent routing preferences per project. Erasable from the router panel |
memory.db |
Memory store — ingested agent history and distilled facts. Stays on your machine; never uploaded |
projects.db |
Registry mapping each project to its own isolated memory store |
project-memory/<id>/memory.db |
One per-project store, keyed by a hash of the project path, so knowledge never leaks between clients |
usage.db |
Usage measurements — token counts, activity and cost roll-ups. Deliberately separate from memory.db, and kept at the machine root rather than per account |
memvault-mcp.json |
Generated MCP configuration handing the memory tools to a session. Rewritten at launch, never merged into your CLI config |
recents.json |
Recently opened workspaces |
open_projects.json |
Session snapshot (open projects + active tab) |
sessions/ |
The session map per workspace (which agent tabs were open) |
shots/ |
Saved screenshots from the image workflow |
mc/audit.jsonl |
Append-only audit log |
mc/policies.json |
Auto-approval rules |
panic.log |
Crash black box — if the app ever crashes, the panic message and location are appended here (attach it to a bug report). Machine root |
What OFM writes inside your project
Two things can appear in the project folder itself, and both are visible and removable:
| Path | Written when |
|---|---|
CLAUDE.md / AGENTS.md |
Memory injection Path B is on. Only the region between the MEMVAULT:BEGIN and MEMVAULT:END markers is written — the rest of the file is yours |
.agents/plugins/ofm/ |
An Antigravity session needs MCP servers. The CLI accepts no configuration flag, so the descriptor goes in the project rather than in the global ~/.gemini/config/, which is shared with other Google products |
Nothing else is written into your repository, and OFM never edits ~/.claude.json,
~/.codex/config.toml or any other CLI’s own configuration.
Where transcripts live
Conversations are stored by the agent CLI (e.g. ~/.claude/projects/…), not by OFM. OFM
keeps only the tiny session map and resumes each tab via the CLI’s --resume. That separation
is exactly why a conversation can’t be lost.
Renaming note
The bundle identifier is com.openfreemax.ide. If you migrated from an earlier identifier, copy
the old config directory to the new one to carry settings, memory and screenshots over.