First sandbox read
Your first read-only calls: metro status, catalog bind, ops who and package list against sandbox.
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 statusmetro 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 writesmetro 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 --writeThis 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 --markdownThe 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" --sandboxAcme 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 --prodThe 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 --jsonNames 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 --jsonpackage 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.