agbrowse 문서

가이드

Provider Web UI 작업을 명시적 prompt와 recoverable session으로 실행합니다.

Web-AI 명령은 보이는 browser UI를 통해 동작합니다. Provider API client도 아니고 API key를 사용하지도 않습니다.

보내기 전 렌더링

agbrowse web-ai render --vendor chatgpt --prompt "Explain the plan" --json

Send + poll

SID=$(agbrowse web-ai send --vendor chatgpt --inline-only --prompt "Analyze this" --json | jq -r .sessionId)
agbrowse web-ai poll --vendor chatgpt --session "$SID"

One-shot query

agbrowse web-ai query --vendor grok --inline-only --prompt "Find risks in this text"

Capability registry

선언적 capability registry는 vendor별 capability 조회와 fail-closed gating을 제공합니다. 각 capability entry는 status, owner PRD, browser gate, fail-closed stage, family, frontend observation preset을 선언합니다. 지원하지 않는 capability를 대상으로 명령을 실행하면 browser mutation 전에 capability.unsupported를 발생시킵니다.

필드용도
statusready / beta / experimental / deferred
browserGatecapability가 실행되기 전에 필요한 browser 조건
failClosedStagecapability를 사용할 수 없을 때 발생하는 stage 이름
frontendObservationobservation preset에 연결 (model selector, attachment, image generation, web search 등)

agbrowse web-ai status --vendor chatgpt --json으로 현재 vendor에서 사용 가능한 capability를 확인합니다.

Annotated screenshot

Annotated (set-of-mark) screenshot은 페이지를 캡처하고 선택한 ref 요소에 bounding-box highlight를 overlay합니다. 결과는 image hash, dimensions, highlight count, timestamp를 포함하는 typed AnnotatedScreenshotResult입니다. Doctor diagnostics pipeline과 visual grounding workflow에서 사용됩니다.

# Annotated screenshot은 doctor와 diagnostics에서 내부적으로 사용됩니다.
agbrowse web-ai doctor --vendor chatgpt --json

Interstitial detector

통합 interstitial detector는 send나 poll이 진행되기 전에 blocking 페이지를 분류합니다. 다섯 가지 종류를 인식합니다:

종류Retry hint
cloudflare-challengewait-and-retry
login-requiredlogin
empty-shellnavigate
loadingwait-and-retry
nonenone

classifier는 pure(모든 page signal이 인자로 전달됨)이므로 완전한 unit test가 가능합니다. Interstitial이 감지되면 typed result에 kind, evidence text, URL, retry hint가 포함됩니다.

Diagnostics stage

실패 diagnostics는 이제 더 풍부한 stage taxonomy를 사용합니다. 각 error envelope에 typed stage 필드가 포함되어 pipeline의 어느 지점에서 실패가 발생했는지 분류합니다 (예: visual-fallback, composer-resolve, model-select, poll-timeout). Stage-typed envelope 덕분에 error message를 string matching하지 않고도 올바른 recovery path로 라우팅할 수 있습니다.

Live status report

Typed standalone LiveStatusReport struct는 vendor에 관계없이 사용할 수 있는 health check를 제공합니다. 활성 탭이 올바른 provider URL에 있는지, 사용자가 로그인했는지, composer가 보이는지를 평가한 후 { vendor, status, runtimeEnabled, notes, sources } 형태의 structured 객체를 반환합니다.

agbrowse web-ai status --vendor chatgpt --json

Freshness gate

Docs-first freshness gate는 공식 문서 retrieval evidence가 기록될 때까지 capability를 신뢰할 수 없도록 강제합니다. 유효한 freshness record에는 retrieval date, 검색한 vendor 문서, 사용한 공식 소스, visible updated dates, 이전 PRD 이후 feature 변경 사항, 모순이나 불안정한 제한, UI-authoritative plan-limit 확인, implementation impact, docs 때문에 업데이트한 테스트가 포함되어야 합니다. 필수 필드가 누락되거나 UI authority가 확인되지 않으면 gate가 거부합니다.

Copy-markdown fallback

인라인 텍스트 추출이 실패하면 --allow-copy-markdown-fallback이 runtime에 provider Copy/Markdown 버튼을 찾아 클릭하도록 요청합니다. 203.9 업데이트에서 lenient button-matching heuristic과 real click 경로가 추가되어 provider UI 변경으로 버튼 라벨이나 위치가 바뀌어도 fallback이 동작합니다.

agbrowse web-ai query \
  --vendor chatgpt \
  --inline-only \
  --allow-copy-markdown-fallback \
  --prompt "Summarize this document."

Polling timeout

timeout 적용 순서는 직접 지정한 timeout → 저장된 deadline의 남은 시간 → tier 기본값 → vendor fallback입니다.

장기 tier기본 timeout
chatgpt-pro5400초(90분)
grok-heavy3600초
deep-research3600초

tier를 알 수 없으면 ChatGPT 1200초, Gemini 1200초, Grok 600초를 씁니다. 사용자가 알려 준 ChatGPT Pro 약 40분은 이번 DOM에서 확인되지 않은 UI 쪽 예산입니다. agbrowse timeout과는 별개입니다.

ChatGPT Work

agbrowse web-ai work send --prompt "Analyze this repository" --power 4

같은 Work 전용 작업을 MCP에서 실행할 때는 web_ai_work_send를 씁니다. Chat 명령과 web_ai_submit_prompt는 Work에서 중단하며 surface=work를 받지 않습니다.

ChatGPT 모델 계약

입력현재 UI
instantGPT-5.5의 Instant
thinking --effort medium|high|xhigh선택한 family의 Medium|High|Extra High
pro선택한 family의 단일 Pro
--family <gpt-5.6-sol|gpt-5.5|o3>family submenu를 선택합니다. 생략하면 submenu를 건드리지 않고 현재 UI 선택을 유지합니다.

예전 effort는 현재 값으로 바뀝니다. light|standard → medium, extended → high(스크립트를 쓰는 경우 stderr 경고 1줄), heavy → xhigh입니다. 예전 Pro effort도 단일 Pro로 처리하고 선택 없음 경고 1줄을 냅니다. Extended 계열 라벨은 2026-07-10 이전 UI 설명에만 남깁니다.

Generated image

ChatGPT 생성 이미지 출력은 beta이며 --output-image로 opt-in합니다:

agbrowse web-ai query \
  --vendor chatgpt \
  --inline-only \
  --output-image ./out.png \
  --prompt "Create an image of a small robot holding a banana."

ChatGPT가 여러 이미지를 반환하면 agbrowse는 out.png, out-2.png, out-3.png처럼 sibling 파일로 저장합니다. 이미지 출력은 fail-closed입니다: 생성된 이미지를 감지하거나 저장할 수 없으면 조용히 성공하는 대신 provider.image-output을 반환합니다.

Batch follow-up

ChatGPT batch follow-up은 하나의 명령에서 여러 prompt를 순차적으로 보냅니다:

agbrowse web-ai query \
  --vendor chatgpt \
  --inline-only \
  --prompt "Analyze this design." \
  --follow-up "Summarize the risks." \
  --follow-up "List the next three actions."

같은 저장된 conversation에서 나중에 follow-up하려면 query --session <id> --prompt <text>를 사용합니다. --follow-up은 ChatGPT 전용이며 --research deep과 함께 사용할 수 없습니다.

Deep Research (experimental)

--research deep는 ChatGPT Deep Research 모드를 experimental beta로 활성화합니다:

agbrowse web-ai query \
  --vendor chatgpt \
  --inline-only \
  --research deep \
  --timeout 1800 \
  --prompt "Research the current official status and cite sources."

Deep Research는 가능하면 report artifact를 저장하고, session에 researchMode: "deep"을 기록하며, auto archive를 건너뛰고, 제출 후 Deep Research plan card를 자동 확인합니다. 계정 차단이나 누락된 provider UI surface는 명시적으로 보고됩니다. 이것을 ready cross-provider capability로 취급하지 마세요.

ChatGPT Project Sources

Project Sources는 append-only이며 명시적 ChatGPT project URL이 필요합니다:

agbrowse web-ai project-sources list \
  --chatgpt-url https://chatgpt.com/g/project_123 --json

agbrowse web-ai project-sources add \
  --chatgpt-url https://chatgpt.com/g/project_123 \
  --file ./docs/context.md \
  --dry-run summary

--dry-run은 browser mutation 없이 project URL과 로컬 파일을 검증합니다. 실제 add는 upload evidence를 확인한 후 uploaded: true를 보고합니다. Delete, replace, clear 작업은 의도적으로 지원하지 않습니다.

ChatGPT, Gemini, Grok는 model alias와 UI 계약이 다릅니다. 스크립트 작성 전 agbrowse web-ai --help를 확인합니다.