Release Notes

Fuego 2.0: AI assistant, multi-window, and an MCP server

Fuego 2.0 ships a built-in AI assistant that reads your real data, an MCP server with 40 tools for Claude and other agents, native multi-window support, on-device anonymization, Firestore Enterprise pipelines, JSON Schema generation and validation, and a rebuilt native application layer.

Fuego 2.0 is here, and it’s the largest release since the project started.

Version 1.0 was about maturity. Version 2.0 is about reach: Fuego now runs on a rebuilt native application layer, opens as many windows as you need, talks to AI agents through an MCP server, and ships its own assistant that can read your Firestore data and hand you back schemas, queries, and dashboard widgets you can apply with one click.

It’s also considerably faster. The video below runs the same operations twice — Fuego 1 in the first half, Fuego 2 in the second — with nothing sped up or cut:

Same operations, same data: Fuego 1 first, Fuego 2 second.

Here’s everything that’s new.


Why 2.0

The version number reflects a foundation change, not just a feature list.

Fuego’s native layer has been rewritten. That work isn’t visible in a screenshot, but it’s what makes the rest of this release possible: real multi-window support with per-window state, proper OS integration (Stage Manager on macOS, native window management everywhere), a fuego:// URL scheme, .fuego file associations, and noticeably better memory behavior when you keep many collections open.

On top of that foundation, 2.0 adds the features below.


The AI assistant

The headline feature. Fuego now has a built-in conversational assistant that knows where you are and what you’re looking at.

Open it from the ✨ button in the topbar, from the command palette (“Ask AI assistant”), or from the contextual Ask AI buttons in the JSON Schema editor, the Index Advisor, the query builder sidebar, and the literals editor. It opens as a floating window you can drag, resize, maximize, or collapse to a pill — and it remembers where you left it.

It knows your context

Every message carries a snapshot of your current position — project, database, collection — plus whatever the open panels contribute: the schema you’re editing, the query you’re building, the documents in the literals editor, the indexes the advisor is looking at. Those contributions show up as chips above the input, so you can see exactly what the assistant can see.

That means “improve this schema” or “how many documents match this query” just work, with no copy-pasting and no re-explaining.

It answers with things you can use

The assistant doesn’t dump JSON into a chat bubble. It delivers typed cards with real actions:

  • Schema proposals — copy, diff against the current schema, or Apply directly into the schema editor
  • Query proposals — run in the explorer via deep link, or load straight into the visual query builder
  • Result tables — the backend actually runs the query and shows you the rows in a compact table you can copy or open in the explorer
  • Sample documents — generated seed data you can push into the literals editor
  • Dashboard widgets — a ready-made widget you can add to any dashboard from a picker

And when the assistant is missing something, it asks instead of guessing: you get a real question with one-click answer options.

The assistant asking for consent before reading real data, with Reject, Anonymize and Approve

It doesn’t touch your data unless you let it

The assistant starts read-only. Writing is an explicit opt-in in Settings → AI, and even then it stays boxed in:

  • it never writes to a project flagged as production, whatever the other settings say
  • it stays inside the projects and databases you allowed under Settings → AI → Data access
  • every single write or delete is confirmed in the chat, one call at a time, and that confirmation cannot be turned off

With writes off — the default — any write attempt is refused at the access-guard level, and the assistant answers with a proposal card for you to apply yourself.

Conversations are stored locally and encrypted at rest, because tool results contain real customer data.

Bring your own model

Configure providers in Settings → AI. The assistant works with:

  • Google — Gemini and Vertex AI
  • OpenAI and any OpenAI-compatible endpoint
  • Ollama — fully local, no data leaves your machine
  • Anthropic, OpenRouter, Mistral, xAI, DeepSeek

Provider and model are remembered per conversation, and you can switch models from the badge in the assistant’s title bar.


An MCP server with 40 tools

If you’d rather use your own agent, Fuego 2.0 exposes its capabilities over the Model Context Protocol (spec revision 2026-07-28, with older revisions still supported). Enable the server from the AI tab and point Claude, Cursor, or any MCP client at it.

The server ships 40 tools — 23 read, 17 write — covering Firestore documents and queries, index management, Firebase Authentication users, Firebase Storage, bookmarks, background jobs and exports. Access is yours to control: pick which tools are exposed with an allowlist, restrict which projects and databases are reachable, and decide whether write tools are available at all. You can also ask the server to anonymize every document it returns, so an agent can work on the shape of your data without ever seeing the values.

The MCP server panel: tool allowlist, project scope and anonymized tool results

The same tool registry powers both the MCP server and the built-in assistant, so the two never drift apart.


Native multi-window

Right-click any resource and open it in a new window — a collection, a dashboard, a query, a Storage bucket. Middle-click (or ⌘/Ctrl-click) a project name to open the whole project in its own window.

Windows aren’t independent copies of the app. Edit a document in one and every other window showing it updates in place — and it works even with real-time turned off, because the change travels inside Fuego instead of going out to Firestore and back. The same goes for collections, schemas, saved queries, workspaces, bookmarks and background tasks. What stays local to each window is what you’re looking at: tabs, scroll position, and its own assistant conversation.

Edit in one window, the other follows — with real-time turned off.

Each window manages its own datasets, so closing one actually frees its memory instead of leaving it around.


Command palette and notification center

Press ⌘ ⇧ P (macOS) or Ctrl ⇧ P (Windows/Linux) to open the command palette and run any action without hunting through menus. If that combination clashes with something else in your setup, pick another one in Settings → Command palette shortcut (⌘ P, ⌘ ⇧ K and ⌘ J are available). The assistant has its own shortcut, ⌘ J.

A new notification center collects the things you’d otherwise miss — completed tasks, sync results, warnings — in one place.

The sidebar also learned a trick: when it’s closed, hovering the left edge slides it back in, so the main actions are always one gesture away.


Dashboards: charts, top lists, notes, users, and Storage

Dashboards get five new widget types:

  • Charts — visualize your data instead of reading numbers off a table
  • Top lists — the highest or lowest N documents by any field
  • Notes — annotate a dashboard so the next person understands it
  • Auth users — a live count of your Firebase Authentication users
  • Storage — preview a single file, or list files coming from a query

There’s also a Bookmarks widget, so the collections, documents, queries and files you care about can sit right on the dashboard.

A dashboard combining a chart, a top list, a note and an Auth users counter

Combined with the assistant’s dashboard_widget artifacts, you can describe the panel you want and add it to a dashboard without touching the widget editor.


JSON Schema generation and document validation

Fuego can now infer a JSON Schema from the documents in a collection — optionally with AI assistance to clean up types, descriptions, and optionality.

Once you have a schema, you can validate documents against it and see which ones don’t match. This is the fastest way to find the drift that accumulates in any real Firestore collection: the field that used to be a string, the document that’s missing createdAt, the enum value nobody expected.


Anonymization: share data without sharing data

Real Firestore documents are full of things you’d rather not paste into a ticket, hand to a colleague, or send to a model provider. Fuego 2.0 can anonymize documents on the fly, on your machine.

Configure the policy once in Settings → Privacy, then use it wherever data leaves its original context: an Anonymize documents toggle in the explorer toolbar, exports and imports, the payload the AI assistant is about to send to its provider (with a preview and a Send anonymized button), and the results the MCP server returns.

You choose how values are masked:

  • Shape-preserving mask (the default) — m***@g***.com, **** **** **** 1234
  • Generic placeholders[EMAIL], [PHONE]
  • Realistic fake data — deterministic fictional values from reserved ranges, so joins between documents still line up
  • Deterministic hash — unreadable but correlatable

Built-in detectors cover emails, phone numbers, IP addresses, credit card numbers (Luhn-checked) and conventional PII field names, and you can add your own field names or exclude entire collections. For everything a regex can’t catch — people, companies, places written in free text — there’s an optional on-device NER model running on the ONNX runtime: it’s downloaded on demand and never sends anything off your machine.

The same collection, masked and unmasked, from the toolbar toggle.

When the assistant is about to send something out, you see exactly what leaves — field by field, before and after:

Before / after diff of the payload sent to the provider

Anonymized documents are read-only display copies. Masked values are never written back to Firestore.

Read the anonymization guide →


Bookmarks and Quick View

Bookmarks now cover everything: collections, documents, saved queries and Storage files. They show up on the project home in a dedicated bar, and in a dashboard widget.

Quick View is the other half of the same idea. Right-click a document or a Storage file and open it in a lightweight preview window — you see what you need without changing view, losing your query, or opening a tab you’ll have to close.


Firestore Enterprise: pipelines and index management

Fuego 2.0 adds support for Firestore Enterprise edition:

  • Pipeline queries — build and run pipeline queries against capable databases, with stages instead of a flat filter list
  • Index management for Enterprise — the same index tooling you already use, extended to Enterprise databases

Code generation understands pipelines too. The query builder could already turn a query into code; now it does the same for pipeline queries, emitting code for every SDK that supports them — Admin: Node.js, Python, Go, Java; Client: Web/TypeScript, Kotlin, Swift.

The assistant is aware of this too: on a database that supports pipelines, it prefers pipeline queries when they’re the better fit, and it ships a bundled skill for writing them.


Index management improvements

  • More filters in the index list, so large index sets stay navigable
  • Index exemptions can now be created from the app
  • Search indexes (Preview) can be created and managed from the app
  • TTL policies on a field can be enabled and disabled without leaving Fuego, with their state visible in the field list
  • Vector index creation is clearer and less error-prone
  • Enterprise edition indexes are supported

Index Advisor

New in 2.0: paste or build a query, and the Index Advisor analyses it and tells you exactly which index it needs — deterministically, without asking a model. If you want a second opinion, there’s an Ask AI shortcut right next to it.


Live document count in the Query Builder

As you build a query, the Query Builder now shows a live count of the documents that match. You find out that your filter is wrong while you’re writing it, instead of after you run it.

The match count updates as the query changes.

Firebase Storage: drag & drop and more

File Management picks up the interactions you’d expect from a real file manager:

  • Drag & drop to move files and folders — hold Option (macOS) or Alt (Windows) to copy instead
  • Drag selection to select multiple items at once
  • A compact icon view for dense buckets

Export and import get a single, coherent format. File → Export and File → Import now use .fuego files with a manifest and integrity verification, covering app backups, workspaces and dashboards, and shared queries. Legacy formats still import: .zip backups, .json workspaces and queries all keep working.

Alongside it, Fuego registers a fuego:// URL scheme and a .fuego file association. That means a link can point directly at a document, a collection, a query, a Storage file or bucket, or a user — and open it in the app. Grab one with Copy Fuego link from a document’s context menu, from the query share menu, or from the command palette, and paste it into a ticket, a PR, or a Slack thread.

Double-clicking a .fuego file opens it in Fuego too. URL scheme and file association are available on macOS and Windows; on Linux you can still import .fuego files from File → Import.


Background tasks you can pause

Long imports and exports can now be paused and resumed, and the activity sidebar shows considerably more detail about what each task is doing and how far along it is.

They also survive a crash: a task interrupted by a forced quit is restored on the next launch and picks up where it stopped, instead of starting over.


Read time (PITR), redesigned and fixed

The read time picker has been rebuilt around an inline calendar with date and time, replacing the old timeline of buttons. A header shows the selected instant and how long ago it was, and the window of versions actually available to you is now stated explicitly instead of implied.

The rebuilt read time picker: inline calendar, selected instant and available window

This release also fixes a long-standing annoyance: PITR could show up as “not activatable” when reading database info failed silently. The Firebase CLI can return output that parses as a success with empty data, and that empty result was being cached for an hour — leaving PITR stuck at “disabled”. Database info is now read primarily through the Firestore Admin SDK in a single, more reliable call, fallbacks are validated, and incomplete results are never cached. The picker also distinguishes unknown from disabled, and has a Re-check button that bypasses the cache — handy right after you enable PITR from the console.


int64 and double, handled properly

Firestore distinguishes 64-bit integers from doubles, and Fuego 2.0 now does the same. Whole numbers that fit in an int64 are stored as int64, everything else as a double — matching what the Firestore SDKs do.

When you need to force the type, both the inline editor and the Monaco editor understand an explicit form:

{ "price": { "__double__": 10 }, "quantity": { "__int64__": 3 } }

Explorer: realtime in tree view, and better copying

  • Realtime updates now reach nested resources in tree view, so an expanded subcollection stays live instead of going stale until you reload
  • Reference previews load the referenced document, right there in the table
  • Copy attribute values from the selected documents, optionally unique values only — documents sharing a value are copied once
  • Find on the page (⌘ F / Ctrl F) searches the text on the current screen
  • Global search results can be opened in a new window

Firebase Authentication

  • Multiple tabs, exactly like the Firestore explorer — one per filter, or one per tenant
  • A user count in the list header
  • Last sign-in date as a column

A redesigned home, and “workspaces”

The project home has been rebuilt: stacked, adaptive project cards, a bookmarks bar, persistent extra views, and grids that use the space they’re given instead of a fixed layout.

The redesigned home: stacked project cards and the bookmarks bar

One naming change comes with it: what used to be called views is now called workspaces, everywhere in the app. Same thing, clearer name — your saved explorer and dashboard layouts are untouched.


Performance and polish

  • Faster Firestore table view and user list, especially on large result sets
  • Bulk update improvements — a clear summary before you commit, and errors grouped by cause instead of a wall of individual failures
  • A sync button in the main toolbar for projects and settings
  • A new macOS icon in Liquid Glass style
  • Visual polish throughout, including the context menu and popover positioning glitches that showed up in 1.2 depending on available space

Fixes

  • Fixed PITR appearing as not activatable when database info retrieval failed silently (details above)
  • Fixed the “The request is not allowed by the user agent…” error when sharing queries — sharing now writes a .fuego file through a native dialog instead of going through the Web Share API
  • Fixed editing Firestore objects (GeoPoint, Timestamp, Reference) in the inline popover editor
  • Fixed update-data radio groups leaking state across modifications in bulk edits

Update now

Fuego 2.0 is available today. Download it from fuegoapp.dev or update from within the app. Existing 1.x licenses continue to work — there’s nothing to migrate.

If you hit something, or if the assistant does something surprising, tell us at support@fuegoapp.dev. The AI features in particular got much better because of beta feedback, and that loop is still open.


Useful resources: