# LocalCloud service matrix for agents

Use this matrix to decide which localhost endpoint an agent should configure before running SDK, CLI, Terraform, or integration checks. Service-specific HTML pages are canonical for human-facing capability detail.

Default LocalCloud agent workflows require no GCP account, no Google credentials, no service-account keys, and no billing project. If a service is partial or planned, stop and document the gap instead of using real Google Cloud as a fallback.

- **Cloud Storage** (Supported locally, HTTP/REST :24081) — set `STORAGE_EMULATOR_HOST=http://localhost:24081`. Local development coverage is partial. Known limits: [prod_only] IAM, lifecycle policies, and notifications not emulated in LocalCloud.. Docs: https://local.cloud/services/cloud-storage/
- **Pub/Sub** (Partial local coverage, gRPC :24082) — set `PUBSUB_EMULATOR_HOST=localhost:24082`. Local development coverage is partial. Known limits: Schemas, snapshots, seek, dead-letter policy, filters, and other advanced subscription fields are not implemented on the configured endpoint., gcloud and console paths remain partial for advanced Pub/Sub workflows.. Docs: https://local.cloud/services/pubsub/
- **Firestore** (Partial local coverage, gRPC :24083) — set `FIRESTORE_EMULATOR_HOST=localhost:24083`. Local development coverage is partial. Known limits: Seed and browser parity is not fully hardened., Index/query behavior is unverified.. Docs: https://local.cloud/services/firestore/
- **Bigtable** (Supported locally, gRPC :24084) — set `BIGTABLE_EMULATOR_HOST=localhost:24084`. Local development coverage is partial. Known limits: [prod_only] Single-node emulator by design; clusters, multi-region, replication require Google infrastructure., GoogleSQL queries (ExecuteQuery/PrepareQuery) not supported — data-plane uses HBase-style API only., Change streams, app profiles, and logical views are not implemented in the emulator., Session protocol (OpenTable/OpenAuthorizedView/OpenMaterializedView) not implemented — not needed for correctness.. Docs: https://local.cloud/services/bigtable/
- **Spanner** (Partial local coverage, gRPC :24085 · HTTP/REST :24086) — set `SPANNER_EMULATOR_HOST=localhost:24085`. Local development coverage is partial. Known limits: Pinned extended Spanner emulator image; the exact image and immutable digest come from `SPANNER_EMULATOR_IMAGE` in the root Dockerfile., Change-stream support matrix — native gRPC/REST ExecuteStreamingSql supported; official SDK clients through SPANNER_EMULATOR_HOST supported; LocalCloud SQL Editor through managed run APIs or cancellable /query/stream NDJSON supported; gcloud spanner databases execute-sql unsupported for change streams because it uses unary ExecuteSql.. Docs: https://local.cloud/services/spanner/
- **BigQuery** (Partial local coverage, HTTP/REST :24087 · gRPC :24088) — set `BIGQUERY_EMULATOR_HOST=http://localhost:24087`. Local development coverage is partial. Known limits: DuckDB type coercion is permissive where BigQuery is strict — queries accepted locally may error in production., Division by zero returns Inf/NaN instead of error; integer division returns int instead of FLOAT64., GROUP BY ROLLUP/CUBE/GROUPING SETS not supported., SEMI/ANTI JOIN syntax not supported (rely on EXISTS/NOT EXISTS transpile)., BQML (CREATE MODEL, ML.PREDICT, ML.EVALUATE, etc.) returns clear error., AEAD encryption functions and KLL quantile functions not implemented., GEOGRAPHY functions use haversine approximation, not true WGS84 geodesic., BIGNUMERIC truncated to DECIMAL(38,9); FARM_FINGERPRINT requires pyfarmhash for correct values., Time travel (FOR SYSTEM_TIME AS OF), continuous queries, graph queries, search/vector indexes not supported., External object tables (OBJ.* functions) not supported.. Docs: https://local.cloud/services/bigquery/
- **Google Sheets** (Partial local coverage, HTTP/REST :24080) — set `SHEETS_EMULATOR_HOST=http://localhost:24080`. Local development coverage is partial. Known limits: Spreadsheet metadata, writes, formulas, range evaluation, OAuth, and production Sheets access are not emulated., Values are selected by exact stored A1 range and project scope.. Docs: https://local.cloud/services/google-sheets/
- **Secret Manager** (Partial local coverage, gRPC :24080) — set `SECRET_MANAGER_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: [prod_only] Rotation and CMEK (customer-managed encryption keys)., Per-secret IAM is not complete.. Docs: https://local.cloud/services/secret-manager/
- **Cloud Tasks** (Partial local coverage, gRPC :24080) — set `CLOUD_TASKS_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: App Engine tasks and OAuth token generation are not complete.. Docs: https://local.cloud/services/cloud-tasks/
- **Cloud Scheduler** (Partial local coverage, gRPC :24080) — set `CLOUD_SCHEDULER_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: Timezone rules beyond cron-utils support are not fully verified.. Docs: https://local.cloud/services/cloud-scheduler/
- **Cloud Functions (2nd Gen)** (Partial local coverage, gRPC :24080) — set `CLOUD_FUNCTIONS_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: Build and container execution are metadata-only; use Functions Framework locally.. Docs: https://local.cloud/services/cloud-functions/
- **AlloyDB** (Partial local coverage, gRPC :24080) — set `ALLOYDB_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: [prod_only] PSC (Private Service Connect) and cross-region replication., Backup/restore is not complete.. Docs: https://local.cloud/services/alloydb/
- **Dataproc** (Partial local coverage, gRPC :24080) — set `DATAPROC_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: Autoscaling and Kubernetes cluster mode are not complete., Runtime execution requires Docker socket access; without it, cluster metadata remains available but Spark/Hadoop processes are not started.. Docs: https://local.cloud/services/dataproc/
- **Cloud IAM** (Partial local coverage, gRPC :24080) — set `IAM_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: Role validation, conditions, and deny policies are not complete.. Docs: https://local.cloud/services/cloud-iam/
- **Cloud Resource Manager** (Supported locally, HTTP/REST :24080) — set `CLOUD_RESOURCE_MANAGER_EMULATOR_HOST=http://localhost:24080`. Local development coverage is partial. Known limits: [prod_only] Organization/folder hierarchy not modeled in LocalCloud.. Docs: https://local.cloud/services/cloud-resource-manager/
- **Service Usage** (Partial local coverage, HTTP/REST :24080) — set `SERVICE_USAGE_EMULATOR_HOST=http://localhost:24080`. Local development coverage is partial. Known limits: Quotas and service entitlement behavior are stubs.. Docs: https://local.cloud/services/service-usage/
- **Cloud Billing** (Partial local coverage, HTTP/REST :24080) — set `CLOUD_BILLING_EMULATOR_HOST=http://localhost:24080`. Local development coverage is partial. Known limits: Real billing, budget enforcement, and cost export are not implemented.. Docs: https://local.cloud/services/cloud-billing/
- **Cloud Logging** (Partial local coverage, gRPC :24080) — set `CLOUD_LOGGING_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: Metrics, exclusions, audit logs, and production sink behavior are limited.. Docs: https://local.cloud/services/cloud-logging/
- **Cloud Monitoring** (Partial local coverage, gRPC :24080) — set `CLOUD_MONITORING_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: Alerting, uptime checks, and dashboards are partial.. Docs: https://local.cloud/services/cloud-monitoring/
- **GKE** (Partial local coverage, gRPC :24080 · k3d :24092) — set `GKE_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: Kubernetes runtime parity depends on host runtime/k3d integration., [prod_only] Node pools, autoscaling, and upgrades (GCP-managed cluster autoscaler, regional instance groups).. Docs: https://local.cloud/services/gke/
- **Compute Engine** (Partial local coverage, HTTP/REST :24080) — set `COMPUTE_EMULATOR_HOST=http://localhost:24080`. Local development coverage is partial. Known limits: [prod_only] Persistent disks and live migration (hypervisor-level storage/VM management)., Snapshots, instance templates, and VPC networking are not yet emulated.. Docs: https://local.cloud/services/compute-engine/
- **Cloud Run** (Partial local coverage, gRPC :24080) — set `CLOUD_RUN_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: Container execution and routing require host runtime architecture., [prod_only] Custom domains and production routing (Google Front End load balancers, managed TLS).. Docs: https://local.cloud/services/cloud-run/
- **Memorystore (Redis/Valkey)** (Partial local coverage, RESP :24089) — set `REDIS_HOST=localhost:24089`. Local development coverage is partial. Known limits: Pub/Sub, Lua, streams, and MULTI/EXEC are not supported.. Docs: https://local.cloud/services/memorystore/
- **Cloud Workflows** (Partial local coverage, gRPC :24080) — set `WORKFLOWS_EMULATOR_HOST=localhost:24080`. Local development coverage is partial. Known limits: In-flight execution checkpointing is not durable across restart.. Docs: https://local.cloud/services/cloud-workflows/
- **Vertex AI** (Partial local coverage, HTTP/REST :24080) — set `AIPLATFORM_EMULATOR_HOST=http://localhost:24080`. Local development coverage is partial. Known limits: [prod_only] Model training and tuning (requires TPU/GPU clusters)., Prediction endpoints and model management are out of current scope.. Docs: https://local.cloud/services/vertex-ai/
- **Cloud KMS** (Partial local coverage, HTTP/REST :24080) — set `CLOUD_KMS_EMULATOR_HOST=http://localhost:24080`. Local development coverage is partial. Known limits: [prod_only] HSM (physical FIPS 140-2 Level 3 hardware) and EKM (external key manager providers)., Import jobs and Cloud HSM level enforcement are not implemented.. Docs: https://local.cloud/services/cloud-kms/
- **Cloud SQL** (Partial local coverage, HTTP/REST :24080 · PostgreSQL :24090 · MySQL :24091) — set `CLOUD_SQL_EMULATOR_HOST=http://localhost:24080`. Local development coverage is partial. Known limits: [prod_only] Read replicas (cross-region replication) and PSC (Private Service Connect)., MySQL instances share one on-demand MySQL 8.4.11 server; schemas and physical wire logins are deterministically isolated by project and instance., Backup/restore execution is not implemented.. Docs: https://local.cloud/services/cloud-sql/

## Canonical sources
- https://local.cloud/services/
- https://local.cloud/compatibility/
