Update Pub/Sub Emulator

Instructions for updating and packaging the Google Cloud Pub/Sub emulator, a local program that imitates Pub/Sub for development and testing. They also describe uploading the packaged emulator to a Firebase preview storage bucket.

In plain words
What is it for?
Use it when maintaining the local Pub/Sub emulator used by a project. It covers updating it with `gcloud`, finding its installation directory, creating the required ZIP file, and uploading it.
Why use it?
It gives a repeatable way to obtain a newer emulator version and prepare it in the directory structure expected by the existing code.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/firebase/firebase-tools/update-pubsub-emulator
Any agent
npx skills add firebase/firebase-tools --skill update-pubsub-emulator
Clone the repo
git clone --depth 1 https://github.com/firebase/firebase-tools

Made for: Claude Code, Codex.

Per session 12 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 677 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00012 $0.00677
Opus 5 $0.00006 $0.00338
Sonnet 5 $0.00002 $0.00135
Haiku 4.5 $0.00001 $0.00068

Measured 2d ago against content hash 2b72c89c7397, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

Update Pub/Sub Emulator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agent/skills/update-pubsub-emulator/SKILL.md · 62 lines

What it actually says

Update Pub/Sub Emulator

  1. Update Local Emulator Run the following command to make sure you have the latest version of the pubsub emulator installed via gcloud:

    gcloud components update pubsub-emulator
    
  2. Locate Emulator Directory The emulator represents a directory likely located at <gcloud-install-path>/platform/pubsub-emulator. You can find the exact path by running the emulator and checking the output, or by inspecting where gcloud is installed (e.g. which gcloud usually points to a bin directory, and the platform directory is a sibling of bin). Verify the version by running the emulator or checking the VERSION file if it exists.

  3. Package the Emulator Zip the directory found in the previous step. Name it pubsub-emulator-<version>.zip. Ensure the zip structure is such that the top-level directory inside the zip is pubsub-emulator. Note: The existing code expects the binary at pubsub-emulator-<version>/pubsub-emulator/bin/cloud-pubsub-emulator inside the cache, which usually means the zip contains a root folder pubsub-emulator.

  4. Upload to Storage Upload the zip file to the Firebase preview bucket:

    gcloud storage cp pubsub-emulator-<version>.zip gs://firebase-preview-drop/emulator/
    

    Make the file publicly readable if necessary (usually the bucket permissions handle this, or use gcloud storage objects update ... --add-acl-grant=entity=allUsers,role=READER).

    Note: For the version 0.8.27 update, this step was already done.

  5. Calculate Metadata Calculate the file size in bytes, MD5 checksum, and SHA256 checksum of the zip file.

    # Size
    ls -l pubsub-emulator-<version>.zip
    
    # MD5 (macOS: `md5`, Linux: `md5sum`)
    md5 pubsub-emulator-<version>.zip
    
    # SHA256 (macOS: `shasum -a 256`, Linux: `sha256sum`)
    shasum -a 256 pubsub-emulator-<version>.zip
    
  6. Update Configuration Edit src/emulator/downloadableEmulatorInfo.json:

    • Update pubsub.version to the new version.
    • Update pubsub.expectedSize.
    • Update pubsub.expectedChecksum (MD5).
    • Update pubsub.expectedChecksumSHA256.
    • Update pubsub.remoteUrl and pubsub.downloadPathRelativeToCacheDir.
  7. Verify Run the emulators to ensure the new version is downloaded and starts correctly.

    firebase emulators:start --only pubsub
    
  8. Add a Changelog Entry Add a changelog entry to CHANGELOG.md like '- Updated Pub/Sub emulator to version '

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 62 lines · 12 tokens per session scan A 2b72c89c7397

Subscribe to this mod's changes

Update Pub/Sub Emulator is a skill published in the GitHub repository firebase/firebase-tools (4,462 stars, last pushed today), licensed MIT. It adds 12 tokens to every session and 677 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

dce-edge

DCE-safe require() patterns and edge runtime constraints. Use when writing conditional require() calls, guarding Node-only imports (node:stream etc.), or editing define-env-plugin.ts / app-render / stream-utils for edge builds. Covers if/else branching for webpack DCE, TypeScript definite assignment, the NEXTRUNTIME…

vercel/next.js · 84 tokens

vercel-deploy

Deploy applications and websites to Vercel. Use this skill when the user requests deployment actions such as "Deploy my app", "Deploy this to production", "Create a preview deployment", "Deploy and give me the link", or "Push this live". No authentication required - returns preview URL and claimable deployment link.

bytedance/deer-flow · 69 tokens

cloud-sync

Set up or check claude-mem cloud sync with cmem.ai Pro. Use when the user says "set up cloud sync", "sync my memories", "cmem pro", "cloud backup", "sync status", or wants their memory database backed up or synced to their cmem.ai account.

thedotmack/claude-mem · 64 tokens

cli-backup-sync

Backup and restore OmniRoute data from the CLI. Trigger incremental snapshots, sync to cloud storage, manage backup schedules, and restore from archive files.

diegosouzapw/OmniRoute · 34 tokens

application-design-center-design-deploy

Processes GCP infrastructure design and deployment workflows within Application Design Center (ADC). Use when: - Designing GCP infrastructure with Terraform. - Validating local HCL. - Performing best-practice plan scans. - Importing templates to Application Design Center (ADC). - Deploying templates. - Troubleshooting…

google/skills · 94 tokens

cloud-run-basics

Manages Cloud Run services, jobs, and worker pools. Use when you need to deploy applications responding to HTTP requests (services), run event-triggered or scheduled tasks (jobs), or handle always-on pull-based background processing (worker pools).

google/skills · 53 tokens