ChatGPT Web Skill
Automate ChatGPT Web conversations through a local browser session with persistent login state, one-shot prompts, reusable multi-turn sessions, and conversat...
Description
name: chatgpt-skill description: Automate ChatGPT Web conversations through a local browser session with persistent login state, one-shot prompts, reusable multi-turn sessions, and conversation metadata storage. Use when OpenClaw/Codex needs ChatGPT-style normal dialogue through the web UI instead of the OpenAI API, including login setup, continued conversations, session reuse, or browser-based troubleshooting.
ChatGPT Web Skill
Use this skill to drive the ChatGPT Web UI through a local browser profile.
Core Purpose
- Reuse ChatGPT login state stored inside the skill directory
- Start a fresh conversation or reopen an existing one
- Ask one-off questions through a normal browser page
- Keep a long-lived browser session for multi-turn dialogue
Always Use python3 scripts/run.py
Always run commands through the wrapper:
python3 scripts/run.py auth_manager.py status
python3 scripts/run.py auth_manager.py validate
python3 scripts/run.py auth_manager.py setup
python3 scripts/run.py ask_chatgpt.py --question "你好"
python3 scripts/run.py session_manager.py create
The wrapper ensures the local .venv exists, installs dependencies, and runs the target script with the correct interpreter.
Authentication Flow
- Check local state:
python3 scripts/run.py auth_manager.py status
- Validate the real browser state:
python3 scripts/run.py auth_manager.py validate
- If needed, complete login manually in a visible browser:
python3 scripts/run.py auth_manager.py setup
- To clear local auth/profile data:
python3 scripts/run.py auth_manager.py logout
Basic Chat Flow
One-shot question:
python3 scripts/run.py ask_chatgpt.py --question "你好"
Debug in visible browser:
python3 scripts/run.py ask_chatgpt.py --question "总结这段文本" --show-browser
Continue a known conversation id:
python3 scripts/run.py ask_chatgpt.py --conversation-id <conversation_id> --question "继续"
Ask with an explicit model workflow and save a proof screenshot:
python3 scripts/run.py ask_chatgpt.py \
--new-chat \
--model "GPT 5.4 Thinking" \
--extended-thinking \
--proof-screenshot \
--question "请你推荐最近一个月,RLVR领域的论文"
Persistent Session Flow
Create a reusable session:
python3 scripts/run.py session_manager.py create
python3 scripts/run.py session_manager.py create --conversation-id <conversation_id>
Ask follow-up questions in the same tab:
python3 scripts/run.py session_manager.py ask --session-id <session_id> --question "继续问"
You can also switch model, force a fresh chat, enable Extended thinking, and save a proof screenshot in the same call:
python3 scripts/run.py session_manager.py ask --session-id <session_id> --new-chat --model "GPT 5.4 Thinking" --extended-thinking --proof-screenshot --question "请你推荐最近一个月,RLVR领域的论文"
Inspect or maintain sessions:
python3 scripts/run.py session_manager.py list
python3 scripts/run.py session_manager.py info --session-id <session_id>
python3 scripts/run.py session_manager.py reset --session-id <session_id>
python3 scripts/run.py session_manager.py close --session-id <session_id>
python3 scripts/run.py session_manager.py gc
Data Storage
All data stays inside the skill directory:
data/auth_info.json— auth metadata and last validation statusdata/browser_state/— cookies, storage state, persistent browser profiledata/conversations.json— discovered/opened conversation metadatadata/sessions.json— persistent session metadatadata/session_runtime/— daemon socket, pid, and runtime artifactsdata/screenshots/— debug screenshots captured on failures
Error Model
The scripts return explicit machine-readable errors for cases such as:
- not logged in
- redirected to login
- account chooser encountered
- CAPTCHA / 2FA / human verification required
- page load failed
- prompt input missing
- send path unavailable
- reply timeout
- empty reply
- page structure changed
- session not found
- invalid conversation id
- session daemon unavailable
- browser profile in use
- network or proxy failure
Best Practices
- Validate auth before deeper automation
- Use
--show-browserwhen the UI changes - Prefer persistent sessions for multi-turn workflows
- Keep proxy env vars explicit on Linux when network behavior is unstable
- Inspect
data/screenshots/and JSON error payloads before patching selectors
Limitations
- ChatGPT Web selectors can change without notice
- A blank new chat may still not expose a stable server conversation id until the first message is sent; the skill also probes frontend state, storage, and resource history, and may fall back to a client thread id such as
WEB:...when ChatGPT keeps the URL at/ - Some login or risk-review flows require manual intervention
- Conversation deletion is intentionally left unimplemented until the web flow is stable enough
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!