SuperAPI AI Directory

agentweb-setup

Agents & models

View repository

Updated 10-15 23:44

About this skill

/agentweb-setup — Provider session detect + login setup

Last updated: 2026-08-27 Job: attach to the already-running Chrome, classify every PROVIDER_CHAIN tab, open official login URLs for anything not ready. Never send chat. Never type passwords or 2FA. Changelog: CHANGELOG.md

Forced rule — invoke means execute (first-action contract)

When this skill is invoked (/agentweb-setup), the next tool call MUST be the node CLI. Explaining usage, narrating architecture, or answering from model knowledge without a receipt is a violation.

1. First-action contract

After reading this SKILL.md, the next tool call must be:

node skills/AgentChat-agentweb-setup/index.js

From a skill-only install:

node ~/.agents/skills/AgentChat-agentweb-setup/index.js

No file browsing, architecture analysis, or "I will now…" planning in between (one short line that the command is about to run is OK). Fixture-only / unit-test mode (no Chrome):

node skills/AgentChat-agentweb-setup/index.js --dry-detect --fixtures=skills/AgentChat-agentweb-setup/test/fixtures/browser-pass-2026-08-27.json

2. Receipt — execution is proven by this line, not by prose

Every real run (including failures) prints one machine-generated line on stderr:

[receipt] AGENTCHAT_RUN {"run_id":"ac-xxxxxxxxxxxx","skill":"agentweb-setup","exit":0,...}
  • The final answer MUST quote this receipt line (at least run_id, skill, exit, statuses).
  • No receipt = did not execute = violation; go back and run the CLI.
  • run_id is random and appended to skills/AgentChat-agentweb-setup/data/receipts.jsonl. The user can grep <run_id> — a fabricated id will not match.
  • Failed runs (exit≠0) still get a receipt: quote it and say why (CDP down / fixture missing / …).

3. Forbidden

  • Reading SKILL.md then describing providers / CDP / region-ban without running node index.js
  • Skipping the CLI because "I already know Gemini is ready"
  • Claiming setup ran without a [receipt] AGENTCHAT_RUN line
  • Starting a second Chrome, binding :8737, or launching scripts/chrome-debug from this skill
  • Typing passwords, 2FA codes, or sending any chat message through a provider

4. Box / attach contract

  • Attach only to the already-running Chrome via CDP. AgentChat defaults to 127.0.0.1:9222 with AGENTCHAT_NO_AUTOSTART=1.
  • Fork seats are separate: DISPLAY :N uses /home/box/chrome-profile/Fork-N and CDP 9222+N. AgentChat never defaults to Fork-5 or 9227.
  • If CDP is down: print official PROVIDER_CHAIN URLs, emit a failure receipt, stop. Do not autostart Chrome.

What it classifies

Statuses are first-class (authDomains-only is not enough):

Status Meaning
ready Signed in, composer usable, no blocking sidebar/org signals (2026-08-27 pass: Gemini + ChatGPT PONG)
logged_out Login wall / sidebar Not logged in or Log in / Access Verification captcha / guest composer + Log in or Log in / auth URL. Composer alone is not enough.
org_disabled Signed in but send is a no-op. Toast may be absent — send-probe / org check required. Visible editor is not ready (2026-08-27 live: Claude Free).
quota Rate-limit / quota banner
region_block_until_login Region interstitial that asks the user to log in first. Required for any provider that shows it.

Doubao region-ban (2026-08-27 proof)

https://www.doubao.com/chat/ redirects to https://www.doubao.com/security/doubao-region-ban?source=1 with copy “Due to regional restrictions, please log in before using Doubao. You can also choose to use Dola.” and buttons Use Dola / Log in. That URL is not in authDomains. After the user logs in, re-run /agentweb-setup — the gate may lift.

CLI

node skills/AgentChat-agentweb-setup/index.js
node skills/AgentChat-agentweb-setup/index.js --no-open
node skills/AgentChat-agentweb-setup/index.js --json
node skills/AgentChat-agentweb-setup/index.js --dry-detect --fixtures=skills/AgentChat-agentweb-setup/test/fixtures/browser-pass-2026-08-27.json

Live mode: attach CDP → scan PROVIDER_CHAIN tabs → print a classification table → for login-needed states, navigate the existing tab to the official PROVIDER_CHAIN URL; if status is not ready AND there is no tab, open a new tab on that official URL in the already-running Chrome (never a second Chrome / :8737 / chrome-debug). Detach only — never browser.close() on the configured shared CDP. Then emit receipt.

--dry-detect never opens Chrome. Use it in tests and when fixtures are passed.

After the table

Ask the user to log in the suggested not-ready providers in the existing Chrome window. Do not type credentials. Then re-run the CLI to re-detect.