First sandbox read

Your first read-only calls: metro status, catalog bind, ops who and package list against sandbox.

View .md

With a working sandbox key (metro init --check says working), you can read your tenant. Nothing on this page writes. Read-only mode allows all of it.

1. See what metro can see

metro status
metro status - local command center dashboard.
Operator mode: read-only (reads on, writes off)
Workspace intents: 14; catalog: user-bound-catalog
Catalog allowlist: 20 live reads; 8 sandbox writes

metro status --json returns the same as JSON, including liveEndpointAllowlist: the endpoints metro may read, and the ones it may write on sandbox. metro mode shows the current ceiling on its own.

2. Learn your catalog

metro catalog bind --sandbox --write

This discovers your rate cards, usage product, credit type and billable metric, and saves their IDs to ~/.metro/profiles.json. From then on, plans use your real IDs instead of placeholders. Run it again after you change your catalog.

Then read the summary:

metro tenant snapshot show --sandbox --markdown

The snapshot names your account pattern: dimensional-shared-usage, package-template, commit-grant-heavy, package-and-credits or greenfield-needed. Agents read it before proposing a pricing change.

3. Find one customer

metro ops who takes a name, UUID, email, external ID or URL:

metro ops who "Acme Corp" --sandbox
Acme Corp
  id: 00000000-0000-4000-8000-000000000001
  external_id: acme-001
  ingest_aliases: ["acme-corp"]
  lookup: name

Active contract(s):
  Growth  00000000-0000-4000-8000-000000000002
    since 2026-12-01T00:00:00.000Z  package=00000000-0000-4000-8000-000000000003

Credits (nonzero):
  Complimentary credits  balance=500

What change do you want? Common next steps:
  metro contract move-plan preflight --customer-id=00000000-0000-4000-8000-000000000001 --to=<package-alias> --prod
  metro ledger-adjustment preflight --amount=<signed-int> --reason="..." --customer-id=00000000-0000-4000-8000-000000000001 --prod
  metro contract extend-trial preflight --extend-by-days=<N> --customer-id=00000000-0000-4000-8000-000000000001 --prod

The data above is illustrative. The suggested next steps always print --prod; on sandbox, swap it for --sandbox. For a stable lookup, pass an ID instead of a name:

metro customer resolve --ingest-alias=acme-corp --sandbox --json
metro customer balances --ingest-alias=acme-corp --sandbox --only-nonzero --json

Names are not unique

A name lookup stops at the first exact match, because Metronome has no server-side name filter. Duplicate names later in the list aren't detected. Pass --customer-id= when it matters.

4. List packages

metro package list --sandbox --json
metro package list --search=annual --only-active --sandbox
metro package customers --alias=growth --sandbox --json

package customers lists the contracts created from a package.

What you just proved

  • The key reaches your sandbox tenant.
  • metro can resolve customers, contracts, balances and packages.
  • Nothing was written. Writes still need metro mode write.

Next

On this page