mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
ba3a674d7b
* 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>
2.6 KiB
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 askkeeps the upstream/default behavior intact.opencli grok ask --webswitches to the newer hardened consumer-web implementation.- The
--webpath adds stricter composer detection, clearer blocked/session-gated hints, and waits for a stabilized assistant bubble before returning. opencli grok imagereuses 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
--webdrives 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.