# Firenook > Firenook is a faster drop-in replacement for the Firebase Local Emulator Suite. It reads firebase.json, .firebaserc, rules and indexes the way the Firebase CLI does, serves Firestore, Authentication, Cloud Storage, Cloud Functions, Pub/Sub, Cloud Tasks, Eventarc, Extensions on the official ports, and imports and exports the official format. It is one npm package with a native engine for macOS, Linux and Windows: no Java, nothing else downloaded. It does not emulate Realtime Database, Hosting, App Hosting, Data Connect. Open source under the Apache License 2.0; 0.2.0 is its first release for public use. Each docs page is also Markdown, at its address plus .md. All of the docs together are in [llms-full.txt](https://firenook.dev/llms-full.txt). ## Website - [Home](https://firenook.dev/): what Firenook is, the one-word switch, measured results, the console, MCP and the services. - [Firebase MCP for your local emulators](https://firenook.dev/mcp): firenook mcp gives Claude Code, Cursor and other coding agents 54 tools over the Firebase emulators on your machine: logs, function calls, rules and data. - [A faster Firestore emulator](https://firenook.dev/firestore-emulator): Firenook’s Firestore emulator answers the same SDKs on port 8080: writes 40× faster, 10× less memory, no Java, and data that survives restarts. - [A Pub/Sub emulator, without Java](https://firenook.dev/pubsub-emulator): Run the Pub/Sub emulator on its own with one npm command: every RPC over gRPC and HTTP/JSON on port 8085, push delivery, and a console. No Java, no gcloud. - [The console the Firebase emulators should have had](https://firenook.dev/console): Firenook’s console covers every emulator it runs, live, on the Emulator UI’s port: function calls, Firestore, Auth, Storage, Pub/Sub, Tasks, Eventarc and rules. - [Firenook against the official emulator](https://firenook.dev/benchmarks): Two hours of a real application’s traffic against each emulator: writes, listeners, memory, CPU, restarts, 26 query shapes and a store of 2.7 million documents. - [What each emulator covers](https://firenook.dev/compatibility): What Firenook’s Firestore, Auth, Storage, Functions, Extensions, Pub/Sub, Cloud Tasks and Eventarc emulators cover in 0.2.0, and what they do not. - [Firenook and the Firebase Local Emulator Suite](https://firenook.dev/vs/firebase-emulator-suite): Firenook beside the official Firebase emulators: what each runs on, speed, memory, data between runs, the console, MCP, and where the official suite is ahead. - [Changelog](https://firenook.dev/changelog): Every Firenook release, newest first: what changed, what each one made faster, and what happens to your data when you upgrade. Also as RSS. - [The Firenook blog](https://firenook.dev/blog): Posts from the people building Firenook: how it works, what it measures, and what is coming. Also as an RSS feed. - [Brand kit](https://firenook.dev/brand): The Firenook logo, mark, wordmark, block flame and colours, as SVG and PNG, with how to use them and the embers as a looping video. - [Privacy](https://firenook.dev/privacy): What firenook.dev and Firenook collect: the site sets no cookies and runs no analytics, and Firenook sends no telemetry. - [Security](https://firenook.dev/security): How to report a vulnerability in Firenook privately, what is in scope, and what to expect after you report it. - [Trademarks](https://firenook.dev/trademark): How to use the Firenook name and logo, and the trademarks of others the site mentions. Firenook is independent and not affiliated with Google. ## Blog - [How Firenook writes 40× faster than the Firebase emulator](https://firenook.dev/blog/how-firenook-writes-40x-faster): What a Firestore write costs in Firenook, read from the source: a journal write, a redb commit without a sync, a few index entries and a wake-up. - [Introducing Firenook](https://firenook.dev/blog/introducing-firenook): Firenook runs the Firebase emulators from one npm package, with your firebase.json, SDKs and ports, no Java, and data that survives restarts. - [Give your coding agent the emulator, not production](https://firenook.dev/blog/give-your-agent-the-emulator): Firenook's MCP server gives a coding agent 54 tools over the local Firebase emulators: data, users, files, function calls, logs and Security Rules. ## Docs - [Firenook docs](https://firenook.dev/docs.md): Run the Firebase emulators with Firenook. Install it, switch an existing project, connect your app, keep your data, and use the console and MCP. ## Get started - [Install Firenook](https://firenook.dev/docs/get-started/install.md): Add Firenook to a project with npm, pnpm, Yarn or Bun, check that your machine can run it, and confirm the install before you start. - [Switch from the Firebase emulators](https://firenook.dev/docs/get-started/switch.md): Move a project from the official Firebase emulators to Firenook by changing one word. Your config, rules, Functions code, app and data stay as they are. - [Start a new project](https://firenook.dev/docs/get-started/new-project.md): Set up a new project with firenook init. The screen of choices, what it writes and installs, TypeScript by default, and its scripted forms. ## Get started: Connect your app - [Connect your app](https://firenook.dev/docs/get-started/connect.md): How apps and server code find the emulators, the ports and hosts to use, demo project ids, and the console's Connect dialog with ready snippets. - [Connect a web app](https://firenook.dev/docs/get-started/connect/web.md): Point the Firebase JS SDK at Firenook with one connect call per product, once, and only in development, with patterns for Vite and Next.js. - [Connect a Flutter app](https://firenook.dev/docs/get-started/connect/flutter.md): Point FlutterFire at Firenook with useAuthEmulator, useFirestoreEmulator, useStorageEmulator and useFunctionsEmulator on Android, iOS and the web. - [Connect an Android app](https://firenook.dev/docs/get-started/connect/android.md): Point the Firebase Android SDKs at Firenook with useEmulator in Kotlin or Java, reach your machine at 10.0.2.2, and allow cleartext in debug builds. - [Connect an Apple app](https://firenook.dev/docs/get-started/connect/apple.md): Point the Firebase Apple SDKs at Firenook with useEmulator in Swift or Objective-C, turn off Firestore's SSL, and reach your Mac from a device. - [Connect a React Native app](https://firenook.dev/docs/get-started/connect/react-native.md): Point React Native Firebase or the Firebase JS SDK at Firenook, choose the host for simulators and devices, and pick the SDK that suits Expo. - [Connect server code](https://firenook.dev/docs/get-started/connect/server.md): Point the Admin SDKs for Node.js, Python, Go and Java, and Google's Cloud client libraries, at Firenook with environment variables or emulators:exec. ## Get started - [Run your tests](https://firenook.dev/docs/get-started/tests.md): Run integration tests against the emulators with firenook emulators:exec. The two command forms, the variables it sets, exit codes, seed data and an example. - [CI and GitHub Actions](https://firenook.dev/docs/get-started/ci.md): Run your integration tests against Firenook in CI. A GitHub Actions workflow, caching, the log CI gets, the Linux glibc requirement, and other CI systems. - [Docker](https://firenook.dev/docs/get-started/docker.md): Run Firenook in a container. Pick a glibc Node image such as node:24-slim, listen on all interfaces, publish the ports, and keep the data in a volume. - [Run one service on its own](https://firenook.dev/docs/get-started/one-service.md): Start only the emulators you need with --only, learn which services lean on others, and run Pub/Sub, Auth or Firestore alone with no project and no Java. ## Services - [Firestore](https://firenook.dev/docs/services/firestore.md): What the Firestore emulator covers, how to connect, who a request is from, and where it differs from the official one on queries, rules and REST. - [Authentication](https://firenook.dev/docs/services/auth.md): Sign-up and sign-in, test providers, codes and links, custom claims, MFA, passkeys, tenants and blocking functions in Firenook's Auth emulator. - [Cloud Storage](https://firenook.dev/docs/services/storage.md): Firenook's Storage emulator: the Firebase and Cloud Storage APIs, rules evaluated without Java, buckets and targets, and its limits. - [Cloud Functions](https://firenook.dev/docs/services/functions.md): How Firenook runs your Functions: the triggers it delivers, Node 22, 24 and 26, codebases, TypeScript, reload on save, and functions:invoke. - [Extensions](https://firenook.dev/docs/services/extensions.md): Run the Extensions in your firebase.json with Firenook from local, vendored, cached or registry sources, and make them start offline with ext:vendor. - [Pub/Sub](https://firenook.dev/docs/services/pubsub.md): Firenook's Pub/Sub emulator answers every RPC of the official one over gRPC and HTTP/JSON. Set it up, publish and pull, and see where it differs. - [Cloud Tasks](https://firenook.dev/docs/services/tasks.md): Queues for your onTaskDispatched functions with the official emulator's retries and rate limits, how to enqueue from a script, and what Firenook leaves out. - [Eventarc](https://firenook.dev/docs/services/eventarc.md): Publish custom events and deliver them to your onCustomEventPublished functions with Firenook's Eventarc emulator, from Functions or from a script. - [Security Rules](https://firenook.dev/docs/services/rules.md): Load, reload and test Firestore and Storage Security Rules with Firenook, read coverage, see why a request was denied, and ask your agent. ## Cloud Functions in depth - [TypeScript functions](https://firenook.dev/docs/functions/typescript.md): Compile TypeScript functions as you save with --build, see type errors in Firenook's log, and stop a test run when the build fails. - [Scheduled functions](https://firenook.dev/docs/functions/scheduled.md): Firenook runs onSchedule functions on their own clock, in their time zone. Run one now from the CLI or the console, or pause it. - [Environment variables and secrets](https://firenook.dev/docs/functions/environment.md): Which .env files Firenook reads for your functions and in what order, how secrets and params get their values, and the variables the emulator sets. - [Debugging and reload on save](https://firenook.dev/docs/functions/debugging.md): Reload on save and the r key, a debugger with --inspect-functions in Chrome or VS Code, and where to read each call's logs and errors. ## Your data - [Keep data between runs](https://firenook.dev/docs/data/keep-data.md): Keep Firestore, Auth and Storage between starts with --keep-data, where the data lives, how to stop cleanly, and how to start fresh. - [Seeds and imports](https://firenook.dev/docs/data/seeds.md): Start from an export with --import, keep a seed's data with --keep-data, and what Firenook does when the seed changes after it was imported. - [Export and snapshots](https://firenook.dev/docs/data/export.md): Export Firestore, Auth and Storage in the official format, while running or at the stop, take snapshots of kept data, and move data to the official emulator. - [Inspect and compact](https://firenook.dev/docs/data/inspect.md): See what kept data's Firestore file holds and how much of it is free with state:inspect, and give the free space back with state:compact. - [Recovery after a crash](https://firenook.dev/docs/data/recovery.md): What a crash or a kill loses, what the next start does about it, and every refusal Firenook gives for kept data, with its fix. ## Tools - [The console](https://firenook.dev/docs/tools/console.md): Firenook's web console at /console on the UI port, section by section, with the Connect dialog, themes, old Emulator UI links and host names. - [The terminal](https://firenook.dev/docs/tools/terminal.md): What firenook emulators:start and init draw in a terminal, the keys they answer, what they show when something fails, and the plain output pipes and CI get. - [Connect your coding agent](https://firenook.dev/docs/tools/mcp.md): Give Claude Code, Cursor, VS Code or another MCP client your running emulators with firenook mcp, set up for the whole team by one command. - [Use these docs from an agent](https://firenook.dev/docs/tools/agents.md): Give a coding agent the Firenook docs through an MCP server that searches and reads them, every page as Markdown, llms.txt, and a skill. ## Reference - [CLI commands](https://firenook.dev/docs/reference/cli.md): Every firenook command and flag in 0.2.0, grouped as firenook --help groups them, with what each does and its default. - [Configuration](https://firenook.dev/docs/reference/configuration.md): Every firebase.json key and .firebaserc entry Firenook reads, the keys it skips, and every environment variable it reads or sets. - [Ports](https://firenook.dev/docs/reference/ports.md): Every port Firenook listens on, its default, the firebase.json key and flag that change it, the host, and what happens when a port is taken. - [MCP tools](https://firenook.dev/docs/reference/mcp-tools.md): All 54 tools firenook mcp gives a coding agent, by group, with what each does and the parameters it takes. ## Help - [Troubleshooting](https://firenook.dev/docs/help/troubleshooting.md): The messages Firenook prints when something stops it, what each one means, and the fix, from the wrong Node to a seed that changed. - [The Java 21 error](https://firenook.dev/docs/help/java.md): Why the Firebase CLI's emulators stop with "no longer supports Java version before 21", how to fix it with Java, and how Firenook runs with no Java at all. - [Windows](https://firenook.dev/docs/help/windows.md): Run Firenook on Windows x64. Install it, quote emulators:exec commands for PowerShell and cmd, stop it safely, and see what Windows does not support. - [Without a Google login](https://firenook.dev/docs/help/no-login.md): Run Firenook with no firebase login and no Google credentials. What a demo- project id does, what Firenook contacts, and how to make Extensions work offline. - [FAQ](https://firenook.dev/docs/help/faq.md): Answers to the questions developers ask about Firenook, from firebase-tools and Java to Docker, CI, Windows, versions, data safety, speed and telemetry. - [Versions and verification](https://firenook.dev/docs/help/versions.md): How Firenook releases are numbered and tagged, how to install and upgrade one, and how to check that what you installed is what was published. - [Former name](https://firenook.dev/docs/help/former-name.md): Firenook was published as Fireside up to 0.1.0-next.9. The old package, command and variable names, and how to move a project and its saved data over. - [Report a problem](https://firenook.dev/docs/help/report.md): How to report a Firenook bug so it can be fixed: where to open an issue, what to include, and how to report a security problem privately. ## Contribute - [Build from source](https://firenook.dev/docs/contribute/build.md): Build Firenook's engine and console from source, run the tests, and try your build in your own project before anything is published. - [Architecture](https://firenook.dev/docs/contribute/architecture.md): How Firenook is put together: the npm launcher, the native engine and its crates, the data store, the Functions runtime and the console. ## Source - [Firenook on GitHub](https://github.com/firenook-dev/firenook) - [firenook on npm](https://www.npmjs.com/package/firenook)