chatgpt-pro

Send prompts to ChatGPT Pro via Playwriter browser automation. Use for cross-validation, second opinions, or leveraging GPT-5.2 Pro's research-grade intelligence.

$ Installieren

git clone https://github.com/erwinkn/pulse-ui /tmp/pulse-ui && cp -r /tmp/pulse-ui/.claude/skills/chatgpt-pro ~/.claude/skills/pulse-ui

// tip: Run this command in your terminal to install the skill


name: chatgpt-pro description: Send prompts to ChatGPT Pro via Playwriter browser automation. Use for cross-validation, second opinions, or leveraging GPT-5.2 Pro's research-grade intelligence.

ChatGPT Pro Automation

Send prompts to ChatGPT (including project GPTs) via Playwriter and get responses back. Connects to your existing Chrome session - no need to quit Chrome or manage cookies.

When to use

  • Cross-validate complex reasoning with a second model
  • Leverage GPT-5.2 Pro's extended thinking for research tasks
  • Query a ChatGPT Project that has custom instructions/files

Requirements

  • Chrome with Playwriter extension installed and activated on at least one tab
  • User must be logged into ChatGPT in Chrome
  • Dependencies: playwright-core, playwriter

Configuration

Set CHATGPT_ORACLE_URL to use a custom default URL (e.g., a ChatGPT Project).

Option 1: .env file in repo root

# .env
CHATGPT_ORACLE_URL="https://chatgpt.com/g/g-p-.../project"

Option 2: Environment variable

export CHATGPT_ORACLE_URL="https://chatgpt.com/g/g-p-.../project"

If not set, defaults to https://chatgpt.com/.

Usage

As a module

import { askChatGPT } from './chatgpt-automation.js';

const result = await askChatGPT({
  prompt: 'Your question here',
  model: 'pro'
});

console.log(result.response);

From command line

node .claude/skills/chatgpt-pro/chatgpt-automation.js "What is 2+2?"

Parameters

ParameterTypeDefaultDescription
urlstringCHATGPT_ORACLE_URL or https://chatgpt.com/ChatGPT URL
promptstringrequiredThe prompt to send
modelstring'pro''auto', 'instant', 'thinking', or 'pro'
filesarray[]Files to attach: [{path: 'file.py', content: '...'}]
timeoutnumber900000Max wait time in ms (default 15 min)
onProgressfunctionnullCallback called every 30s during long waits

Return value

{
  success: true,       // Did it work?
  response: "...",     // ChatGPT's response
  url: "https://...",  // Conversation URL
  elapsed: 45,         // Seconds taken
  timedOut: false,     // Hit timeout?
  error: undefined     // Error message if failed
}

Models

  • auto: ChatGPT decides how long to think
  • instant: Fast responses
  • thinking: Extended thinking for complex questions
  • pro: Research-grade intelligence (can take 10+ minutes)

Examples

Simple question

const result = await askChatGPT({
  prompt: 'What are the key differences between REST and GraphQL?',
  model: 'instant'
});

With a project GPT

const result = await askChatGPT({
  url: 'https://chatgpt.com/g/g-p-69590661701c8191958b62e91c543dfb/project',
  prompt: 'Review this architecture decision',
  model: 'pro',
  timeout: 1800000  // 30 min for complex analysis
});

With file attachments

import fs from 'node:fs';

const result = await askChatGPT({
  prompt: 'Find bugs in this code',
  files: [
    { path: 'src/main.py', content: fs.readFileSync('src/main.py', 'utf-8') }
  ]
});

Long-running requests

GPT-5.2 Pro can take 10+ minutes for complex tasks. For long requests, run as a background task in Claude Code rather than blocking.

Troubleshooting

  • "Extension not running": Click the Playwriter extension icon in Chrome on any tab
  • Model not switching: ChatGPT may have changed their UI; check data-testid values
  • Empty response: Increase timeout or check if ChatGPT is rate-limiting