Skip to main content
The gtm CLI is the front door to the SDK: ten command groups covering account research, CRM sync, web search, enrichment, meeting exports, and webhook operations.

Invocation

The package installs a gtm entrypoint; both forms are equivalent:
Two root-level commands exist outside the groups: gtm hello (smoke test) and gtm version (prints gtm v<VERSION>).

Command groups

Shared conventions

Every command follows the CLI contract:
  • Success data is JSON on stdout; errors and logs go to stderr.
  • Mutations preview by default--apply (or --modal-sync on Attio people commands) is required to write.
  • Provider-backed commands execute on your deployed Modal app; local-only commands (version, gmail url decode, granola export, sanity blog download, webhook list) need no deployment.
  • Every command accepts --json with a full payload that overrides individual flags.
  • Keys resolve per Secrets and API keys, with per-invocation --<service>-api-key overrides.
The per-group reference pages are generated from the CLI’s own --help text by scripts/docs-cli_reference-generate.py, and CI fails if they drift from the code — what you read here is what the binary ships.
Last modified on July 16, 2026