CLI
This reference lists common fireemu commands and options. Run npx fireemu --help, or npx fireemu help <command>, for the help of the version you have installed. The blocks below are the help text of the current release; exec and capabilities accept every option of up, which is listed once under up.
| Command | What it does |
|---|---|
init |
Create fireemu.toml in the current directory |
up |
Start the emulators and keep them running until Ctrl+C (alias: emulators:start) |
exec |
Start the emulators, run a command, stop them (alias: emulators:exec) |
emulators:export |
Export the state of a running suite to a directory |
doctor |
Check the installation: binary, UI, Functions runner, Node.js |
capabilities |
Print the capability manifest of the resolved profile as JSON |
config show |
Print every configuration key with its effective value and source |
--version (also -V, version) |
Print the version and exit |
help [command] (also --help, -h) |
Print the command list, or the help of one command |
fireemu init - create fireemu.toml in the current directory
usage: fireemu init [options]
Creates fireemu.toml in the current directory and prints the command to start with it. It never overwrites an existing file unless --force is given. An existing fireemu.json must be removed before creating fireemu.toml.
options: --reference Also write fireemu.reference.toml, which fireemu does not load. With an existing fireemu.toml or fireemu.json and no --profile or --firebase-json, write only the reference. Copying a key into fireemu.toml makes it explicit and stops productionExact from switching it. --profile strict|emulator Compatibility profile. strict follows production Firebase and is recommended, including when migrating from the official emulator; emulator is only for checking alignment with the pinned official emulator and is not needed when migrating. Default: strict (asked interactively). --firebase-json <file> Reference this firebase.json from fireemu.toml, so rules, indexes, Functions and ports are read from it on every start. Default: ./firebase.json when it exists (asked interactively). --interactive Ask for the missing choices. Default: only when stdin and stdout are terminals. --yes, --no-interactive Never ask; use the defaults for what is not given. --force Replace existing output files. Default: an existing file is an error. -h, --help Print this help and exit.fireemu up - start the emulators and keep them running until Ctrl-C (alias: emulators:start)
usage: fireemu up [options] fireemu emulators:start [options]
Serves the selected emulators (Firestore, Auth, Storage and App Check; Functions when a codebase is configured, and with it Eventarc and Cloud Tasks; Pub/Sub when configured; the Realtime Database when configured) plus the control API, the Emulator Hub and the UI on loopback until Ctrl-C.
options: --config <file> Configuration file: TOML (.toml) or JSON (any other extension), with schemaVersion 1, or a firebase.json. Default: ./fireemu.toml or ./fireemu.json when neither --config nor --firebase-json is given (both present is an error; remove one), else the nearest firebase.json (see --no-config-discovery), else the built-in defaults. --firebase-json <file> Read ports, rules, indexes and Functions codebases from this firebase.json. Takes precedence over one referenced by --config. Default: the one ./fireemu.toml or ./fireemu.json names, else, without either, the nearest firebase.json in the current directory or a parent. --no-config-discovery Do not search for ./fireemu.toml, ./fireemu.json or the nearest firebase.json when neither --config nor --firebase-json is given; use the built-in defaults. Also silences the warning for a discovered file that was skipped because of its owner or permissions. Default: the search is on. -P, --project <id|alias> Project ID, or an alias from the .firebaserc next to the firebase.json (else the current directory). Default: the .firebaserc default, else daemon.authProject from --config, else demo-app. --only <list> Comma-separated services to start: auth, firestore, storage, functions (or functions:<codebase>), eventarc, tasks, pubsub, database, appcheck, hosting. Default: Firestore, Auth, Storage and App Check; Functions when a codebase is configured (firebase.json or --functions), and with it Eventarc and Cloud Tasks; Pub/Sub when configured (emulators.pubsub, daemon.pubsubPort or --pubsub-port); the Realtime Database when configured (emulators.database, daemon.databasePort or --database-port); Hosting when firebase.json has hosting.public. --firestore-port <n> Firestore port. Default: 8080 (0 picks a free port). --http-port <n> Auth (Identity Toolkit) port. Default: 9099 (0 picks a free port). --storage-port <n> Storage port. Default: 9199 (0 picks a free port). --functions-port <n> Functions port, used when a codebase is loaded. Default: 5001 (0 picks a free port). --hosting-port <n> Hosting port, used when firebase.json has hosting.public. Default: 5000 (0 picks a free port). --eventarc-port <n> Eventarc port. Eventarc starts exactly when a Functions backend is loaded; this option only sets the port. Default: 9299. --tasks-port <n> Cloud Tasks port. Cloud Tasks starts exactly when a Functions backend is loaded; this option only sets the port. Default: 9499. --pubsub-port <n> Pub/Sub port. Without --only, giving it also starts Pub/Sub; with --only, Pub/Sub starts only when the list names pubsub. Default: 8085. --database-port <n> Realtime Database port. Without --only, giving it also starts the Realtime Database; with --only, it starts only when the list names database. Default: 9000. --functions <dir> Load exactly one Functions codebase from this directory, whatever firebase.json declares. Default: the codebases firebase.json declares. --ui-port <n|auto> UI port; auto assigns an available port, 0 disables the UI. Default: 4000 for up (the UI is skipped if that port is busy), off for exec. --hub-port <n|auto> Emulator Hub port; auto assigns an available port, 0 disables it. Default: 4400. --logging-port <n> Logging emulator port; 0 disables it. Default: 4500. --inspect-functions [port] Run the Functions runner under the Node inspector on this port (1024-65535); without a port, or with `true`, a free port. Refused when functions.runner is not node. Default: off. --log-verbosity quiet|silent|info|debug quiet and silent print errors only; info adds the banner and notices; debug also prints the resolved configuration. Case-insensitive. Default: info. --import <dir> Import an export directory (from --export-on-exit or emulators:export) at start; it must exist. Default: start empty. --export-on-exit [dir] Export all state to this directory when the emulators stop; without a directory, the --import directory. Refused for the working directory or a parent of it, and unavailable on Windows. Default: no export. --ready-file <file> Publish endpoint discovery, including a control capability, to this private file once every listener is bound, and remove it on graceful shutdown. For tooling such as fireemu/testing. Default: none. --owner-stdin Shut down when standard input is closed. For tooling such as fireemu/testing. Default: off. -h, --help Print this help and exit.fireemu exec - start the emulators, run a command, stop them (alias: emulators:exec)
usage: fireemu exec [options] "shell script" fireemu exec [options] -- <command...> fireemu emulators:exec [options] "shell script" fireemu emulators:exec [options] -- <command...>
Starts the same emulators as `up`, runs the command with the emulator host environment variables (FIRESTORE_EMULATOR_HOST, FIREBASE_AUTH_EMULATOR_HOST, and so on) once every listener is bound, stops everything when the command exits, and exits with the command's status. On Unix, a command ended by signal n gives 128 + n, and SIGINT and SIGTERM are forwarded to it.
With "shell script" (the official form) the script is run by the system shell. With `--` the command is run as exactly that program and argv, without a shell. Everything after `--` belongs to the command, including --help; a `--help` inside the script text is script text.
options: every option of `up` (listed under up above), and: --ui Start the UI while the command runs (exec does not start it otherwise, as in `firebase emulators:exec`). --ui-port overrides. -h, --help Print this help and exit.emulators:export
Section titled “emulators:export”fireemu emulators:export - export the state of a running suite to a directory
usage: fireemu emulators:export <dir> [options]
Asks the suite that is already running for the project (found through its Emulator Hub locator file) to write its state to <dir>, in the format --import reads. Not available on Windows.
options: -P, --project <id> Project of the running suite. Default: the .firebaserc default in the current directory, else demo-app. -f, --force Overwrite a non-empty destination. Default: refused. -h, --help Print this help and exit.doctor
Section titled “doctor”fireemu doctor - check the installation: binary, UI, Functions runner, Node.js
usage: fireemu doctor [--connect <control url> | --export-dir <path>]
Reports the Fireemu binary, UI, Functions runner and Node.js that this installation finds, and suggests a remedy for each problem.
options: --export-dir path Inspect an export destination and its ancestors without starting a daemon or changing files. Export checks again when it writes. Cannot be combined with --connect. --connect http://127.0.0.1:<port> Also report what a running suite says, through its control URL (the control port is printed at startup). Default: only the offline report. -h, --help Print this help and exit.capabilities
Section titled “capabilities”fireemu capabilities - print the capability manifest of the resolved profile as JSON
usage: fireemu capabilities [options]
Prints the capability manifest for the profile the options resolve to. It accepts the same options as `up` and validates them the same way, but only --config (the profile it names) changes the result.
options: every option of `up` (listed under up above); only --config and --firebase-json change the result. -h, --help Print this help and exit.capabilities resolves the configured profile and overrides without starting a daemon. A missing virtual-clock start is reported on standard error while standard output remains capability JSON; startup still requires that clock value.
config show
Section titled “config show”fireemu config show prints every configuration key in schema order with its effective value and source, using the same configuration discovery as fireemu up, but without the command-line overrides of up (--project, --only and the port flags) and without starting the emulators. Use --config <path> or --firebase-json <path> to select files, and --json for records containing key, value, source, and the schema description.
- Sources distinguish explicit values, defaults,
productionExact, derived values, and unset keys. - When the runtime does not expose a value, the command uses its explicit file value, its schema default (marked
default (schema)), or(unset)(nullwith sourceunsetin JSON). - A key the configuration accepts but the daemon does not read (for example
bind,limits.catalog,firestore.textSearch.*,rules.staticLimitChecks,auth.enabledandtrace.*) has the sourceaccepted, no effect: its value is shown as written, or(unset), never as if it were in effect, and a configuration that sets one prints anote:line at start-up. firebaseJsonshows the Firebase configuration file actually selected, including one chosen with--firebase-json.