gogcli/docs/index.html
Zeldris ccfb573051
docs: brew official formula (#361)
* docs: brew official formula

* docs(install): note official Homebrew formula (#361) (thanks @zeldrisho)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-03-07 23:32:53 +00:00

302 lines
12 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>gog — Google in your terminal</title>
<meta
name="description"
content="gog: a single CLI for Gmail, Calendar, Drive, Contacts, Tasks, Sheets, Docs, Slides, and People."
/>
<meta name="theme-color" content="#0b0b11" />
<meta property="og:title" content="gog — Google in your terminal" />
<meta
property="og:description"
content="One CLI for Gmail, Calendar, Drive, Contacts, Tasks, Sheets, Docs, Slides, and People."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://gogcli.sh/" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=DM+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="./assets/site.css" />
<link rel="stylesheet" href="./assets/site.more.css" />
</head>
<body>
<a class="skip" href="#main">Skip to content</a>
<div class="bg" aria-hidden="true">
<div class="bg__mesh"></div>
<div class="bg__grid"></div>
<div class="bg__grain"></div>
</div>
<header class="top">
<div class="wrap top__row">
<a class="brand" href="/">
<span class="brand__mark" aria-hidden="true"></span>
<span class="brand__name">gog</span>
<span class="brand__tag">gogcli</span>
</a>
<nav class="nav">
<a href="#install">Install</a>
<a href="#quickstart">Quickstart</a>
<a href="#features">Features</a>
<a href="#examples">Examples</a>
<a class="nav__cta" href="https://github.com/steipete/gogcli">GitHub</a>
</nav>
</div>
</header>
<main id="main" class="main">
<section class="hero">
<div class="wrap hero__grid">
<div class="hero__copy">
<p class="kicker">Google Workspace. One binary.</p>
<h1>
<span class="hero__word">Google</span>
<span class="hero__word">in your</span>
<span class="hero__word hero__word--mono">terminal</span>
</h1>
<p class="lede">
<strong>gog</strong> unifies Gmail, Calendar, Drive, Contacts, Tasks, Sheets, Docs, Slides, and People
under one CLI — with JSON output and sane defaults.
</p>
<div class="pills" aria-label="Supported services">
<span class="pill pill--b">Gmail</span>
<span class="pill pill--g">Calendar</span>
<span class="pill pill--r">Drive</span>
<span class="pill pill--y">Contacts</span>
<span class="pill pill--g">Tasks</span>
<span class="pill pill--g">Sheets</span>
<span class="pill pill--b">Docs</span>
<span class="pill pill--r">Slides</span>
<span class="pill pill--y">People</span>
</div>
<div class="hero__actions">
<a class="btn btn--primary" href="#install">Install</a>
<a class="btn btn--ghost" href="https://github.com/steipete/gogcli#quick-start">Readme</a>
</div>
<p class="note">
Tip: set a default in <code>gog auth manage</code> or export <code>GOG_ACCOUNT=you@gmail.com</code> once, stop repeating <code>--account</code>.
</p>
</div>
<div class="hero__panel">
<div class="card term" role="region" aria-label="Terminal demo">
<div class="term__bar" aria-hidden="true">
<span class="dots">
<span class="dot dot--r"></span>
<span class="dot dot--y"></span>
<span class="dot dot--g"></span>
</span>
<span class="term__title">gogcli.sh</span>
</div>
<div class="term__body">
<pre class="term__pre"><code id="demo">
$ brew install gogcli
$ gog auth credentials ~/Downloads/client_secret.json
$ gog auth add you@gmail.com
$ export GOG_ACCOUNT=you@gmail.com
$ gog gmail labels list
$ gog calendar calendars --max 5 --json | jq '.calendars[].summary'
$ gog drive ls --query "mimeType='application/pdf'" --max 3
</code></pre>
</div>
</div>
<div class="card meta">
<div class="meta__item">
<div class="meta__k">Output</div>
<div class="meta__v">tables / <code>--plain</code> / <code>--json</code></div>
</div>
<div class="meta__item">
<div class="meta__k">Accounts</div>
<div class="meta__v">multi-account + <code>gog auth manage</code></div>
</div>
<div class="meta__item">
<div class="meta__k">Secrets</div>
<div class="meta__v">OS keyring (Keychain / Secret Service / CredMan)</div>
</div>
</div>
</div>
</div>
</section>
<section id="install" class="section">
<div class="wrap section__grid">
<div>
<h2>Install</h2>
<p class="muted">Homebrew, or build from source.</p>
</div>
<div class="cols">
<div class="card block">
<h3>Homebrew</h3>
<pre class="code"><code>brew install gogcli</code></pre>
</div>
<div class="card block">
<h3>From source</h3>
<pre class="code"><code>git clone https://github.com/steipete/gogcli.git
cd gogcli
make
./bin/gog --help</code></pre>
</div>
</div>
</div>
</section>
<section id="quickstart" class="section">
<div class="wrap section__grid">
<div>
<h2>Quickstart</h2>
<p class="muted">
Youll need a Google Cloud “Desktop app” OAuth client JSON once. Then you can keep adding accounts.
</p>
</div>
<div class="steps">
<div class="step">
<div class="step__n">1</div>
<div class="step__b">
<h3>Store credentials</h3>
<p>Save your downloaded client JSON into gogs config.</p>
<pre class="code"><code>gog auth credentials ~/Downloads/client_secret_....json</code></pre>
</div>
</div>
<div class="step">
<div class="step__n">2</div>
<div class="step__b">
<h3>Authorize an account</h3>
<p>Browser flow by default. Use <code>--manual</code> for headless.</p>
<pre class="code"><code>gog auth add you@gmail.com</code></pre>
</div>
</div>
<div class="step">
<div class="step__n">3</div>
<div class="step__b">
<h3>Run commands</h3>
<p>Use <code>--json</code> for scripting.</p>
<pre class="code"><code>export GOG_ACCOUNT=you@gmail.com
gog gmail search 'newer_than:7d' --max 10 --json | jq</code></pre>
</div>
</div>
</div>
<div class="callout">
<div class="callout__icon" aria-hidden="true"></div>
<div class="callout__body">
<h3>Re-auth a service (e.g. Sheets)</h3>
<p>
If you add scopes later and Google doesnt return a refresh token, re-run with
<code>--force-consent</code>.
</p>
<pre class="code"><code>gog auth add you@gmail.com --services sheets --force-consent</code></pre>
</div>
</div>
</div>
</section>
<section id="features" class="section">
<div class="wrap section__grid">
<div>
<h2>Features</h2>
<p class="muted">High leverage commands, consistent UX, and clean output.</p>
</div>
<div class="grid">
<div class="card feat">
<h3>Gmail</h3>
<p>Search threads, send mail, manage labels, drafts, filters, settings, and watch (Pub/Sub push).</p>
</div>
<div class="card feat">
<h3>Calendar</h3>
<p>List/create/update events, respond to invites, detect conflicts, and check free/busy.</p>
</div>
<div class="card feat">
<h3>Drive</h3>
<p>List/search/upload/download, export Docs formats, permissions, folders, URLs.</p>
</div>
<div class="card feat">
<h3>Sheets / Docs / Slides</h3>
<p>Read/write Sheets; export Docs/Slides/Sheets to PDF/DOCX/PPTX/XLSX/CSV via Drive.</p>
</div>
<div class="card feat">
<h3>Contacts / People</h3>
<p>Personal contacts, “other contacts”, Workspace directory, and your profile.</p>
</div>
<div class="card feat">
<h3>Tasks</h3>
<p>Tasklists + tasks: add/update/done/undo/delete/clear with paging and JSON output.</p>
</div>
</div>
</div>
</section>
<section id="examples" class="section">
<div class="wrap section__grid">
<div>
<h2>Examples</h2>
<p class="muted">A few commands youll actually use.</p>
</div>
<div class="cols">
<div class="card block">
<h3>Find unread mail</h3>
<pre class="code"><code>gog gmail search 'is:unread newer_than:7d' --max 20</code></pre>
<p class="muted">Pipe JSON to jq for scripts.</p>
<pre class="code"><code>gog gmail search 'newer_than:7d' --max 50 --json | jq '.threads[] | .subject'</code></pre>
</div>
<div class="card block">
<h3>Export a Sheet as PDF</h3>
<pre class="code"><code>gog sheets export &lt;spreadsheetId&gt; --format pdf --out ./sheet.pdf</code></pre>
<p class="muted">Docs and Slides are similar.</p>
<pre class="code"><code>gog docs export &lt;docId&gt; --format docx --out ./doc.docx
gog slides export &lt;presentationId&gt; --format pptx --out ./deck.pptx</code></pre>
</div>
</div>
<div class="footerline">
<a class="btn btn--primary" href="https://github.com/steipete/gogcli">Go to GitHub</a>
<a class="btn btn--ghost" href="https://github.com/steipete/gogcli/blob/main/CHANGELOG.md">Changelog</a>
</div>
</div>
</section>
</main>
<footer class="sitefoot">
<div class="wrap sitefoot__row">
<div class="sitefoot__left">
<div class="sitefoot__brand">
<span class="brand__mark brand__mark--small" aria-hidden="true"></span>
<span>gog</span>
</div>
<div class="sitefoot__small">
<span>Built by <a href="https://steipete.me">Peter Steinberger</a>.</span>
<span class="sep" aria-hidden="true">·</span>
<a href="https://github.com/steipete/gogcli/blob/main/LICENSE">MIT</a>
</div>
</div>
<div class="sitefoot__right">
<a href="https://github.com/steipete/gogcli">Source</a>
<a href="https://github.com/steipete/gogcli#installation">Install</a>
<a href="https://github.com/steipete/gogcli#commands">Commands</a>
</div>
</div>
<div class="wrap sitefoot__fineprint">
<span>Not affiliated with Google. Google is a trademark of Google LLC.</span>
</div>
</footer>
<script src="./assets/site.js"></script>
</body>
</html>