Run your Firestore database locally, with its real documents
dbplex is a Mac app that copies the Firestore database of your Firebase project into the Firestore emulator on your Mac, every document included, and gives you a local address for your app, your tests and your AI agent. Production is only read.
For Apple Silicon Macs. 7 days free with every feature. No card and no account.
- Runs on
- The Firestore emulator 1.22
- Download
- About 137 MB, plus Java 21
- Needs
- A service account key, no Docker
- Production
- Only read. Google bills the reads
What comes with a Firebase copy
Copied to your Mac
- Your documentsEvery collection and subcollection of the project's default database.Needs the Cloud Datastore Viewer role
- Security rulesCopied when the key may read them. Without them the emulator lets every request through.Needs the Firebase Rules Viewer role
Left behind, and why
- Firebase Auth usersOnly Firestore is copied.
- Cloud Storage filesOnly Firestore is copied.
- Other named databasesOnly the default database is copied.
- Composite indexes and TTL policiesNothing expires here.
- Cloud Functions and triggersNothing runs here when a document changes.
After each pull the Connect tab lists what was left out.
What you paste
One JSON file. Give its service account the read-only Cloud Datastore Viewer role and nothing more.
my-project-firebase-adminsdk.jsonIn the Firebase console open Project settings, then Service accounts, then Generate new private key. dbplex keeps it in your Keychain.Read only. Nothing is ever written to production.
A pull reads every document in the default database once, so Google bills those reads to the project.
Then point your app at the copy
FIRESTORE_EMULATOR_HOST=127.0.0.1:15000
http://127.0.0.1:15000/v1/projects/your-project/databases/(default)/documentsThe port is the first free one from 15000, so yours may differ. The Connect tab shows the exact values.
Why not the Firebase Emulator Suite alone?
The emulator is what dbplex runs. The difference is what is in it.
| The emulator alone | dbplex | |
|---|---|---|
| Data | Starts empty, unless you export production to a bucket and import it. | Every document of the default database, from one key. |
| Security rules | You point it at your rules file. | Copied from the project when the key may read them. |
| Going back | Export again before each experiment. | Save a state and restore it. |
| Where it runs | A terminal you keep open. | One window with every copy, running or stopped. |
| Fresh data | Export and import again. | One Refresh button. |
What you can do with a Firebase copy
- Browse collections and run queriesEvery collection and document, and Firestore structured queries in JSON.
- Save and restore statesSave before a risky change and go back to it.
- Branch the copyWork on a second copy, from now or from the last pull, and keep the first as it is.
- Back up the copyDaily or weekly, to a folder you choose. Each backup opens as a new copy.
- Refresh from productionOne button reads every document again. Google bills those reads to the project.
- Read the logsThe server log of the copy, in the Logs tab.
There is no schema graph or Changes tab for Firestore, since its collections have no fixed schema. Masking is not available for Firestore yet, so a pull copies every document as it is.
A Firebase sandbox for your AI agent
Give Claude Code, Cursor, Codex or Windsurf a copy of production to test on, and let it break things. dbplex's built-in MCP server hands the agent your local Firebase copy, never production: it never sees your production credentials, and every tool it gets acts on local copies only.
Add it from the app's Settings. Cloud Functions and triggers are not copied, so nothing runs here when a document changes.
- Query real documentsFirestore queries over MCP only read. Your app can still write to the emulator.
- Save a state before it tries somethingAnd restore it when the attempt goes wrong.
- A branch for each agentEach agent clones the copy and works alone. A clone holds no credentials and can never reach production.
- Start over with today's dataIt can refresh the copy from production, and never sees the credentials.
- Read the logsThe newest lines of the server log.
Questions about Firebase in dbplex
Can dbplex change my Firebase production database?
No. It only reads production to make your copy, and it has no push, sync or way to write anything back. The credentials stay in your Mac's Keychain.
Which role does the service account need?
Cloud Datastore Viewer, which only reads. Add Firebase Rules Viewer if you want the security rules copied too; without them the emulator lets every request through.
Does Google bill the pull?
Yes. A pull reads every document in the default database once, and so does each refresh, so Google bills those reads to the project.
Are Firebase Auth users and Storage files copied?
No. Only Firestore is copied, from the default database. Auth users, Storage files and other named databases stay behind.
Do I need Docker for Firebase?
No. The Firestore emulator runs on Java 21, which dbplex downloads for you the first time.
Can my AI agent use the Firebase copy?
Yes. Add dbplex's MCP server to Claude Code, Cursor, Codex or Windsurf from the app's Settings. It can list collections, read documents and run Firestore queries, which only read, and save, restore and branch the copy. Every tool acts on local copies only, and the agent never sees your production credentials.
Other databases dbplex copies
Break prod. Locally.
Try it on your own Firebase database for 7 days. No card and no account.