Skip to content

Instantly share code, notes, and snippets.

@nibzard
Created March 4, 2026 15:54
Show Gist options
  • Select an option

  • Save nibzard/ac0424ffdd3365d8c72a54584bc3b45c to your computer and use it in GitHub Desktop.

Select an option

Save nibzard/ac0424ffdd3365d8c72a54584bc3b45c to your computer and use it in GitHub Desktop.
Capture a ChatGPT response screenshot via steel browser
#!/usr/bin/env bash
set -euo pipefail
if ! command -v steel >/dev/null 2>&1; then
echo "error: steel CLI not found in PATH" >&2
exit 1
fi
if ! command -v rg >/dev/null 2>&1; then
echo "error: rg (ripgrep) is required" >&2
exit 1
fi
PROMPT="${1:-The best headless cloud browser for openclaw}"
OUTPUT_PATH="${2:-/home/agent/steel-tmp/chatgpt-openclaw-response.png}"
CHATGPT_URL="${3:-https://chatgpt.com}"
MAX_WAIT_SECONDS="${MAX_WAIT_SECONDS:-30}"
SESSION="chatgpt-openclaw-$(date +%s)"
TMP_DIR="$(mktemp -d)"
cleanup() {
steel browser stop --session "$SESSION" >/dev/null 2>&1 || true
rm -rf "$TMP_DIR"
}
trap cleanup EXIT
echo "Starting session: $SESSION"
steel browser start --session "$SESSION" >/dev/null
echo "Opening ChatGPT..."
steel browser open "$CHATGPT_URL" --session "$SESSION" >/dev/null
SNAPSHOT_FILE="$TMP_DIR/snapshot.txt"
steel browser snapshot -i --session "$SESSION" >"$SNAPSHOT_FILE"
TEXTBOX_REF="$(rg -o 'textbox \[ref=e[0-9]+\]' "$SNAPSHOT_FILE" | head -n1 | rg -o 'e[0-9]+')"
if [[ -z "${TEXTBOX_REF:-}" ]]; then
echo "error: could not find textbox ref in snapshot output" >&2
exit 1
fi
echo "Submitting prompt..."
steel browser fill "$TEXTBOX_REF" "$PROMPT" --session "$SESSION" >/dev/null
steel browser press Enter --session "$SESSION" >/dev/null
steel browser wait --load networkidle --session "$SESSION" >/dev/null || true
echo "Waiting for response to finish..."
for ((i=1; i<=MAX_WAIT_SECONDS; i++)); do
steel browser snapshot -i --session "$SESSION" >"$SNAPSHOT_FILE"
if ! rg -q "Stop streaming" "$SNAPSHOT_FILE"; then
break
fi
sleep 1
done
echo "Capturing screenshot: $OUTPUT_PATH"
steel browser screenshot --full "$OUTPUT_PATH" --session "$SESSION" >/dev/null
echo "Saved: $OUTPUT_PATH"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment