Files
jackwener__opencli/docs/adapters/browser/grok.md
flizzywine ba3a674d7b feat(grok): add image command for grok.com image generation (#906)
* feat(grok): add image command for grok.com image generation

Add `opencli grok image <prompt>` which submits a prompt via the existing
grok.com browser session and returns the generated image URLs from the
latest assistant bubble.

Because assets.grok.com URLs are gated by Cloudflare and cannot be
downloaded with a plain HTTP client, the --out flag triggers an in-page
fetch(credentials: 'include') so the browser session's cookies and
referer are attached, then writes the decoded blob to disk.

Flags:
- --new       start a fresh chat before sending
- --timeout   max seconds to wait for the image (default 240)
- --count     minimum number of images to wait for before returning
- --out       directory to save downloaded images

Ships with unit tests for the helpers (isOnGrok, normalizeBooleanFlag,
dedupeBySrc, imagesSignature, extFromContentType, buildFilename).

* fix(grok): harden image composer and bubble detection

* fix(grok): harden image flow and docs

---------

Co-authored-by: jackwener <jakevingoo@gmail.com>
2026-04-14 20:42:43 +08:00

2.6 KiB

Grok

Mode: Default Grok adapter + optional explicit consumer web path · Domain: grok.com

Commands

Command Description
opencli grok ask Keep the default Grok ask behavior
opencli grok ask --web Use the explicit grok.com consumer web UI flow
opencli grok image Generate images via the Grok web UI and return the latest image URLs

Usage Examples

# Default / compatibility path
opencli grok ask --prompt "Explain quantum computing in simple terms"

# Explicit consumer web path
opencli grok ask --prompt "Explain quantum computing in simple terms" --web

# Best-effort fresh chat on the consumer web path
opencli grok ask --prompt "Hello" --web --new

# Set custom timeout (default: 120s)
opencli grok ask --prompt "Write a long essay" --web --timeout 180

# Generate an image and return the URLs
opencli grok image "a cyberpunk mechanical owl, neon purple and blue" --new true

# Save generated images to disk
opencli grok image "a watercolor lighthouse on a cliff" --out /tmp/grok-img --timeout 300

Options

Option Description
--prompt The message to send (required)
--timeout Wait timeout in seconds (default: 120)
--new Start a new chat before sending (default: false)
--web Opt into the explicit grok.com consumer web flow (default: false)
--count Minimum images to wait for before returning (default: 1, image only)
--out Directory to save generated images to disk (image only)

Behavior

  • opencli grok ask keeps the upstream/default behavior intact.
  • opencli grok ask --web switches to the newer hardened consumer-web implementation.
  • The --web path adds stricter composer detection, clearer blocked/session-gated hints, and waits for a stabilized assistant bubble before returning.
  • opencli grok image reuses the existing browser-backed Grok session, waits for the latest assistant image bubble to stabilize, and can optionally download the resulting images through the authenticated page context.

Prerequisites

  • The Grok adapter still depends on browser-backed access to grok.com
  • For --web, Chrome should already be running with an authenticated Grok consumer session
  • Browser Bridge extension installed

Caveats

  • --web drives the Grok consumer web UI in the browser, not an API.
  • It depends on an already-authenticated session and can fail if Grok shows login, challenge, rate-limit, or other session-gating UI.
  • It may break when the Grok composer DOM, submit button behavior, or message bubble structure changes.