grr-cli 2.4.1

Google tools from the terminal, at maximum performance: 401 methods across 14 Google APIs in one generated command tree, zero-config, over HTTP/3
Documentation
---
import CodeBlock from './CodeBlock.astro';
import { discoveryMethodTotal, discoveryServiceCount } from '../data/discovery-coverage';

const example = `$ grr api list --service sheets
$ grr api describe sheets.spreadsheets.values.get
$ grr api call sheets.spreadsheets.values.get \\
    --param spreadsheetId=1a2b3c --param range=A1:D10
$ grr api refresh --service sheets`;
---

<div class="inventory-panel api-panel mt-7 border-t border-base-300 pt-6">
  <div class="mb-4 flex flex-wrap items-start justify-between gap-4">
    <div>
      <span class="eyebrow">the same index, read flat</span>
      <h3 class="mt-1 mb-0 text-[clamp(19px,2.2vw,24px)] leading-[1.2]">Every method by id, no tree walking.</h3>
    </div>
    <span class="badge badge-secondary">{discoveryMethodTotal} methods ยท {discoveryServiceCount} APIs</span>
  </div>
  <p class="m-0 mb-3.5 max-w-[74ch] text-[13px] text-(--muted)">
    The command tree is generated from an embedded Discovery index, and <code>grr api</code> reads the same index flat:
    <code>grr api list</code>, <code>grr api describe</code>, and <code>grr api call</code> reach every method those {discoveryServiceCount} Google APIs
    publish &mdash; {discoveryMethodTotal} of them &mdash; by dotted id, with <code>--dry-run</code> before any send and per-method scopes reported up front.
  </p>
  <CodeBlock code={example} label="grr api" />
</div>