pw-danger-gemini-web
npx skills add https://github.com/plugins-world/pw-skills --skill pw-danger-gemini-web
Agent 安装分布
Skill 文档
Gemini Web 客æ·ç«¯
æ¯æåè½:
- ææ¬çæ
- å¾åçæï¼ä¸è½½ + ä¿åï¼
- åèå¾åç¨äºè§è§è¾å ¥ï¼éå æ¬å°å¾åï¼
- éè¿æä¹
å
--sessionIdè¿è¡å¤è½®å¯¹è¯
èæ¬ç®å½
éè¦: ææèæ¬ä½äºæ¤æè½ç scripts/ åç®å½ä¸ã
Agent æ§è¡è¯´æ:
- ç¡®å®æ¤ SKILL.md æä»¶çç®å½è·¯å¾ä¸º
SKILL_DIR - èæ¬è·¯å¾ =
${SKILL_DIR}/scripts/<script-name>.ts - å°æ¬ææ¡£ä¸çææ
${SKILL_DIR}æ¿æ¢ä¸ºå®é è·¯å¾
èæ¬åè:
| èæ¬ | ç¨é |
|---|---|
scripts/main.ts |
ææ¬/å¾åçæç CLI å ¥å£ç¹ |
scripts/gemini-webapi/* |
gemini_webapi ç TypeScript ç§»æ¤çï¼GeminiClientãç±»åãå·¥å
·ï¼ |
â ï¸ å 责声æï¼å¿ éï¼
ä½¿ç¨æ¤æè½åï¼å¿ é¡»æ§è¡åææ£æ¥ã
åææ£æ¥æµç¨
æ¥éª¤ 1: æ£æ¥åææä»¶
# macOS
cat ~/Library/Application\ Support/pw-skills/gemini-web/consent.json 2>/dev/null
# Linux
cat ~/.local/share/pw-skills/gemini-web/consent.json 2>/dev/null
# Windows (PowerShell)
Get-Content "$env:APPDATA\pw-skills\gemini-web\consent.json" 2>$null
æ¥éª¤ 2: 妿忿件åå¨ä¸ accepted: true å¹¶å¹é
disclaimerVersion: "1.0":
æå°è¦åå¹¶ç»§ç»:
â ï¸ è¦å: 使ç¨éåå·¥ç¨ç Gemini Web APIï¼é宿¹ï¼ãæ¥åæ¶é´: <acceptedAt æ¥æ>
æ¥éª¤ 3: 妿忿件ä¸å卿 disclaimerVersion ä¸å¹é
:
æ¾ç¤ºå 责声æå¹¶è¯¢é®ç¨æ·:
â ï¸ å
责声æ
æ¤å·¥å
·ä½¿ç¨éåå·¥ç¨ç Gemini Web APIï¼èé宿¹ Google APIã
é£é©:
- 妿 Google æ´æ¹å
¶ APIï¼å¯è½ä¼å¨æ²¡æéç¥çæ
åµä¸å¤±æ
- 没æå®æ¹æ¯ææä¿è¯
- 使ç¨é£é©èªè´
æ¨æ¯å¦æ¥åè¿äºæ¡æ¬¾å¹¶å¸æç»§ç»ï¼
ä½¿ç¨ AskUserQuestion å·¥å
·ï¼é项为:
- æ¯ï¼ææ¥å – ç»§ç»å¹¶ä¿ååæ
- å¦ï¼ææç» – ç«å³éåº
æ¥éª¤ 4: æ¥ååï¼åå»ºåææä»¶:
# macOS
mkdir -p ~/Library/Application\ Support/pw-skills/gemini-web
cat > ~/Library/Application\ Support/pw-skills/gemini-web/consent.json << 'EOF'
{
"version": 1,
"accepted": true,
"acceptedAt": "<ISO æ¶é´æ³>",
"disclaimerVersion": "1.0"
}
EOF
# Linux
mkdir -p ~/.local/share/pw-skills/gemini-web
cat > ~/.local/share/pw-skills/gemini-web/consent.json << 'EOF'
{
"version": 1,
"accepted": true,
"acceptedAt": "<ISO æ¶é´æ³>",
"disclaimerVersion": "1.0"
}
EOF
æ¥éª¤ 5: æç»åï¼è¾åºæ¶æ¯å¹¶åæ¢:
ç¨æ·æç»äºå
责声æãéåºã
å¿«éå¼å§
npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ å¥½ï¼Gemini"
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "è§£ééå计ç®"
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "ä¸åªå¯ç±çç«" --image cat.png
npx -y bun ${SKILL_DIR}/scripts/main.ts --promptfiles system.md content.md --image out.png
# å¤è½®å¯¹è¯ï¼agent çæå¯ä¸ç sessionIdï¼
npx -y bun ${SKILL_DIR}/scripts/main.ts "è®°ä½è¿ä¸ª: 42" --sessionId my-unique-id-123
npx -y bun ${SKILL_DIR}/scripts/main.ts "ä»ä¹æ°å?" --sessionId my-unique-id-123
å½ä»¤
ææ¬çæ
# ç®åæç¤ºï¼ä½ç½®åæ°ï¼
npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ çæç¤ºå
容"
# æ¾å¼æç¤ºæ å¿
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "ä½ çæç¤ºå
容"
npx -y bun ${SKILL_DIR}/scripts/main.ts -p "ä½ çæç¤ºå
容"
# éæ©æ¨¡å
npx -y bun ${SKILL_DIR}/scripts/main.ts -p "ä½ å¥½" -m gemini-2.5-pro
# 仿 åè¾å
¥ç®¡é
echo "æ»ç»è¿ä¸ª" | npx -y bun ${SKILL_DIR}/scripts/main.ts
å¾åçæ
# 使ç¨é»è®¤è·¯å¾çæå¾åï¼./generated.pngï¼
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "å±±ä¸çæ¥è½" --image
# 使ç¨èªå®ä¹è·¯å¾çæå¾å
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "ä¸ä¸ªå¯ç±çæºå¨äºº" --image robot.png
# ç®åå½¢å¼
npx -y bun ${SKILL_DIR}/scripts/main.ts "䏿¡é¾" --image=dragon.png
è§è§è¾å ¥ï¼åèå¾åï¼
# ææ¬ + å¾å -> ææ¬
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "æè¿°è¿å¼ å¾ç" --reference a.png
# ææ¬ + å¾å -> å¾å
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "çæä¸ä¸ªåä½" --reference a.png --image out.png
è¾åºæ ¼å¼
# çº¯ææ¬ï¼é»è®¤ï¼
npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ å¥½"
# JSON è¾åº
npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ å¥½" --json
åæ°è¯´æ
æ ¸å¿åæ°
–prompt (å«å: -p)
- 说æ: è¦åéç» Gemini çæç¤ºææ¬
- ç±»å: å符串
- å¿ é: æ¯ (é¤éä½¿ç¨ –promptfiles ææ åè¾å ¥)
- 示ä¾:
--prompt "çæä¸åªå¯ç±çç«åª" - 注æ: 妿ä¸ä½¿ç¨æ å¿ï¼å¯ä»¥ç´æ¥ä½ä¸ºä½ç½®åæ°ä¼ é
–promptfiles <files…>
- 说æ: ä»ä¸ä¸ªæå¤ä¸ªæä»¶è¯»åæç¤ºå å®¹ï¼æé¡ºåºè¿æ¥
- ç±»å: æä»¶è·¯å¾æ°ç»
- å¿ é: å¦
- 示ä¾:
--promptfiles system.md content.md - 使ç¨åºæ¯: æç¤ºå 容è¾é¿æéè¦ç»åå¤ä¸ªæä»¶æ¶
- 注æ: æä»¶å å®¹ä¼æé¡ºåºæ¼æ¥ï¼ä¸é´ç¨æ¢è¡åé
–model (å«å: -m)
- 说æ: éæ©ä½¿ç¨ç Gemini 模å
- ç±»å: æä¸¾å¼
- å¯éå¼:
gemini-3-pro(é»è®¤): ææ°æå¼ºæ¨¡åï¼æ¨è使ç¨gemini-2.5-pro: ä¸ä¸ä»£ pro çæ¬ï¼ç¨³å®æ§å¥½gemini-2.5-flash: å¿«éè½»éï¼éåç®åä»»å¡
- å¿ é: å¦
- 示ä¾:
--model gemini-2.5-flash - éæ©å»ºè®®:
- å¾åçæ: ä½¿ç¨ gemini-3-pro è·å¾æä½³è´¨é
- ç®åææ¬: ä½¿ç¨ gemini-2.5-flash æé«é度
- 夿æ¨ç: ä½¿ç¨ gemini-3-pro
å¾åç¸å ³åæ°
–image [path]
- 说æ: çæå¾åå¹¶ä¿åå°æå®è·¯å¾
- ç±»å: å¯éå符串
- å¿ é: å¦
- é»è®¤å¼:
generated.png(妿åªå –image ä¸å¸¦è·¯å¾) - 示ä¾:
--image(ä¿å为 generated.png)--image cat.png(ä¿å为 cat.png)--image=/path/to/output.png(使ç¨çå·è¯æ³)
- 注æ:
- è·¯å¾å¯ä»¥æ¯ç¸å¯¹è·¯å¾æç»å¯¹è·¯å¾
- ç®å½å¿ é¡»åå¨ï¼å¦å伿¥é
- æ¯æ PNG æ ¼å¼
–reference <files…> (å«å: –ref)
- 说æ: æä¾åèå¾åç¨äºè§è§è¾å ¥
- ç±»å: æä»¶è·¯å¾æ°ç»
- å¿ é: å¦
- 示ä¾:
--reference photo.jpg(åå¼ å¾ç)--reference img1.png img2.png(å¤å¼ å¾ç)
- 使ç¨åºæ¯:
- å¾çæ: æè¿°å¾çå 容
- å¾çå¾: åºäºåèå¾çæåä½
- 徿ç»å: ç»åå¾çåæåæç¤º
- 注æ: æ¯æå¸¸è§å¾çæ ¼å¼ (PNG, JPG, JPEG, WebP)
ä¼è¯ç®¡çåæ°
–sessionId
- 说æ: å¤è½®å¯¹è¯çä¼è¯æ è¯ç¬¦
- ç±»å: å符串
- å¿ é: å¦
- 示ä¾:
--sessionId task-abc123 - 使ç¨åºæ¯:
- éè¦ä¿æä¸ä¸æçè¿ç»å¯¹è¯
- æ¹éå¤çåä¸ä¸»é¢çå¤ä¸ªä»»å¡
- éè¦ Gemini è®°ä½ä¹åç交äº
- æä½³å®è·µ:
- Agent åºçæå¯ä¸ç session ID (å¦ UUID æåºäºä»»å¡ç hash)
- å䏿¹æ¬¡ä»»å¡ä½¿ç¨ç¸å session ID
- ä¸å主é¢ä½¿ç¨ä¸å session ID
- 注æ: ä¼è¯æ°æ®åå¨å¨æ¬å°ï¼ä¸ä¼è¿æ
–list-sessions
- 说æ: ååºææå·²ä¿åçä¼è¯
- ç±»å: å¸å°æ å¿
- å¿ é: å¦
- è¾åº: æå¤ 100 个ä¼è¯ï¼ææ´æ°æ¶é´ååºæå
- 使ç¨åºæ¯: æ¥çåå²ä¼è¯ï¼å³å®æ¯å¦å¤ç¨
è¾åºæ ¼å¼åæ°
–json
- 说æ: 以 JSON æ ¼å¼è¾åºç»æ
- ç±»å: å¸å°æ å¿
- å¿ é: å¦
- è¾åºæ ¼å¼:
{ "text": "çæçææ¬å 容", "imagePath": "/path/to/image.png", "sessionId": "task-abc123" } - 使ç¨åºæ¯: éè¦ç¨åºåè§£æè¾åºæ¶
- 注æ: é»è®¤è¾åºä¸ºçº¯ææ¬
认è¯ç¸å ³åæ°
–login
- 说æ: ä» æ§è¡ç»å½æµç¨å·æ° cookiesï¼ç¶åéåº
- ç±»å: å¸å°æ å¿
- å¿ é: å¦
- 使ç¨åºæ¯:
- Cookie è¿æéè¦éæ°ç»å½
- 忢 Google è´¦å·
- é¢å å®æè®¤è¯é¿å åç»ä¸æ
- 注æ: 伿弿µè§å¨çªå£ï¼éè¦æå¨å®æç»å½
–cookie-path
- 说æ: èªå®ä¹ cookie æä»¶åå¨è·¯å¾
- ç±»å: æä»¶è·¯å¾
- å¿ é: å¦
- é»è®¤å¼: ç³»ç»æ°æ®ç®å½ä¸ç cookies.json
- 使ç¨åºæ¯: å¤è´¦å·ç®¡çæèªå®ä¹åå¨ä½ç½®
–profile-dir
- 说æ: æå® Chrome é ç½®æä»¶ç®å½
- ç±»å: ç®å½è·¯å¾
- å¿ é: å¦
- 使ç¨åºæ¯: 使ç¨ç¹å® Chrome é ç½®æä»¶
帮å©åæ°
–help (å«å: -h)
- 说æ: æ¾ç¤ºå¸®å©ä¿¡æ¯
- ç±»å: å¸å°æ å¿
模å
gemini-3-pro– é»è®¤ï¼ææ°æ¨¡ågemini-2.5-pro– ä¸ä¸ä»£ pro çæ¬gemini-2.5-flash– å¿«éãè½»é级
认è¯
馿¬¡è¿è¡ä¼æå¼æµè§å¨è¿è¡ Google 认è¯ãCookies ä¼è¢«ç¼å以ä¾åç»è¿è¡ä½¿ç¨ã
æ¯æçæµè§å¨ï¼æé¡ºåºèªå¨æ£æµï¼:
- Google Chrome
- Google Chrome Canary / Beta
- Chromium
- Microsoft Edge
å¦éè¦ï¼å¯ä½¿ç¨ GEMINI_WEB_CHROME_PATH ç¯å¢åéè¦çã
# 强å¶å·æ° cookie
npx -y bun ${SKILL_DIR}/scripts/main.ts --login
ç»å½è¯´æ:
- æµè§å¨æå¼åä¼ä¸ç´çå¾ ï¼ç´å°ä½ 宿ç»å½
- 没æè¶ æ¶éå¶ï¼ä½ å¯ä»¥æ ¢æ ¢å¤çå¤å ç´ è®¤è¯çæ¥éª¤
- ç»å½æååï¼æµè§å¨ä¼å¨ 3 ç§åèªå¨å ³é
ç¯å¢åé
| åé | 说æ |
|---|---|
GEMINI_WEB_DATA_DIR |
æ°æ®ç®å½ |
GEMINI_WEB_COOKIE_PATH |
Cookie æä»¶è·¯å¾ |
GEMINI_WEB_CHROME_PROFILE_DIR |
Chrome é ç½®æä»¶ç®å½ |
GEMINI_WEB_CHROME_PATH |
Chrome 坿§è¡æä»¶è·¯å¾ |
代çé ç½®
妿éè¦ä»£çè®¿é® Google æå¡ï¼ä¾å¦å¨ä¸å½ï¼ï¼è¯·å¨è¿è¡å设置 HTTP_PROXY å HTTPS_PROXY ç¯å¢åé:
# ä½¿ç¨æ¬å°ä»£çç示ä¾
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ å¥½"
# 使ç¨ä»£ççæå¾å
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "ä¸åªç«" --image cat.png
# 使ç¨ä»£çå·æ° cookie
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 npx -y bun ${SKILL_DIR}/scripts/main.ts --login
注æ: ç¯å¢åéå¿
é¡»ä¸å½ä»¤å
è设置ãShell é
ç½®æä»¶è®¾ç½®ï¼å¦ .bashrcï¼å¯è½ä¸ä¼è¢«åè¿ç¨ç»§æ¿ã
示ä¾
çæææ¬ååº
npx -y bun ${SKILL_DIR}/scripts/main.ts "æ³å½çé¦é½æ¯ä»ä¹?"
çæå¾å
npx -y bun ${SKILL_DIR}/scripts/main.ts "ä¸å¼ 鿝çç¬å¹¼ç¬çé¼çç
§ç" --image puppy.png
è·å JSON è¾åºç¨äºè§£æ
npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ å¥½" --json | jq '.text'
ä»æç¤ºæä»¶çæå¾å
# å° system.md + content.md è¿æ¥ä½ä¸ºæç¤º
npx -y bun ${SKILL_DIR}/scripts/main.ts --promptfiles system.md content.md --image output.png
å¤è½®å¯¹è¯
# 使ç¨å¯ä¸ ID å¼å§ä¼è¯ï¼agent çææ¤ IDï¼
npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ æ¯ä¸ä¸ªæå¸®å©çæ°å¦å¯¼å¸ã" --sessionId task-abc123
# ç»§ç»å¯¹è¯ï¼è®°ä½ä¸ä¸æï¼
npx -y bun ${SKILL_DIR}/scripts/main.ts "2+2 çäºå¤å°?" --sessionId task-abc123
npx -y bun ${SKILL_DIR}/scripts/main.ts "ç°å¨ä¹ä»¥ 10" --sessionId task-abc123
# ååºæè¿çä¼è¯ï¼æå¤ 100 ä¸ªï¼ææ´æ°æ¶é´æåºï¼
npx -y bun ${SKILL_DIR}/scripts/main.ts --list-sessions
æ¹éå¤çæä½³å®è·µ:
- å½å¤çä¸ä¸ªç®å½ä¸çå¤ä¸ªæä»¶æ¶ï¼å»ºè®®ä½¿ç¨åä¸ä¸ª session ID
- è¿æ ·å¯ä»¥ä¿æå¯¹è¯è¿ç»æ§ï¼Gemini è½è®°ä½ä¹åçä¸ä¸æ
- 示ä¾ï¼ä¸ºç®å½çæåºå®ç session ID
# 为ç®å½çæåºå®ç session IDï¼ä½¿ç¨ç®å½è·¯å¾ç hashï¼
DIR_PATH="/path/to/project"
SESSION_ID=$(echo -n "$DIR_PATH" | md5sum | cut -d' ' -f1)
# æ¹éå¤ç该ç®å½ä¸çæä»¶ï¼ä½¿ç¨åä¸ä¸ª session ID
npx -y bun ${SKILL_DIR}/scripts/main.ts "çæç¬¬ä¸å¼ å¾" --sessionId "$SESSION_ID" --image img1.png
npx -y bun ${SKILL_DIR}/scripts/main.ts "çæç¬¬äºå¼ å¾" --sessionId "$SESSION_ID" --image img2.png
npx -y bun ${SKILL_DIR}/scripts/main.ts "çæç¬¬ä¸å¼ å¾" --sessionId "$SESSION_ID" --image img3.png
ä¼è¯æä»¶åå¨å¨ ~/Library/Application Support/pw-skills/gemini-web/sessions/<id>.json ä¸ï¼å
å«:
id: ä¼è¯ IDmetadata: ç¨äºç»§ç»ç Gemini èå¤©å æ°æ®messages:{role, content, timestamp, error?}æ°ç»createdAt,updatedAt: æ¶é´æ³
æ©å±æ¯æ
éè¿ EXTEND.md è¿è¡èªå®ä¹é ç½®ã
æ£æ¥è·¯å¾ (ä¼å 级顺åº):
.pw-skills/pw-danger-gemini-web/EXTEND.md(项ç®çº§)~/.pw-skills/pw-danger-gemini-web/EXTEND.md(ç¨æ·çº§)
妿æ¾å°ï¼å¨å·¥ä½æµä¹åå è½½ãæ©å±å 容ä¼è¦çé»è®¤å¼ã
常è§é误åè§£å³æ¹æ¡
认è¯ç¸å ³é误
é误: “Cookie expired” æ “Authentication failed”
- åå : Cookie å·²è¿æææ æ
- è§£å³æ¹æ¡:
# éæ°ç»å½å·æ° cookie npx -y bun ${SKILL_DIR}/scripts/main.ts --login
é误: “Browser not found”
- åå : ç³»ç»ä¸æªæ¾å°æ¯æçæµè§å¨
- è§£å³æ¹æ¡:
- å®è£ ChromeãChromium æ Edge
- æä½¿ç¨ç¯å¢åéæå®æµè§å¨è·¯å¾:
GEMINI_WEB_CHROME_PATH=/path/to/chrome npx -y bun ${SKILL_DIR}/scripts/main.ts --login
é误: “Login timeout” æç»å½çªå£ä¸ç´çå¾
- åå : ç»å½æµç¨æªå®æ
- è§£å³æ¹æ¡:
- ç¡®ä¿å¨æµè§å¨ä¸å®æå®æ´çç»å½æµç¨
- å¤çå¤å ç´ è®¤è¯ (妿å¯ç¨)
- ç»å½æååæµè§å¨ä¼å¨ 3 ç§åèªå¨å ³é
- 没æè¶ æ¶éå¶ï¼å¯ä»¥æ ¢æ ¢å®æç»å½
ç½ç»ç¸å ³é误
é误: “Connection refused” æ “Network error”
- åå : æ æ³è®¿é® Google æå¡ (常è§äºä¸å½å¤§é)
- è§£å³æ¹æ¡: é
置代ç
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 \ npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ å¥½" - 注æ: ç¯å¢åéå¿ é¡»ä¸å½ä»¤å è设置
é误: “Rate limit exceeded”
- åå : 请æ±é¢çè¿é«è§¦åéæµ
- è§£å³æ¹æ¡:
- éä½è¯·æ±é¢ç
- å¨è¯·æ±ä¹é´æ·»å å»¶è¿
- é¿å çæ¶é´å 大é请æ±
å¾åç¸å ³é误
é误: “Failed to save image” æ “Directory not found”
- åå : ç®æ ç®å½ä¸åå¨
- è§£å³æ¹æ¡:
# ç¡®ä¿ç®å½åå¨ mkdir -p /path/to/output npx -y bun ${SKILL_DIR}/scripts/main.ts "ä¸åªç«" --image /path/to/output/cat.png
é误: “Image generation failed”
- åå : Gemini æ æ³æ ¹æ®æç¤ºçæå¾å
- è§£å³æ¹æ¡:
- æ£æ¥æç¤ºæ¯å¦æ¸ æ°æç¡®
- é¿å è¿åå 容æ¿ççæç¤º
- å°è¯éæ°è¡¨è¿°æç¤º
- 使ç¨ä¸åçæ¨¡å (å¦ gemini-3-pro)
é误: “Reference image not found”
- åå : åèå¾åè·¯å¾ä¸åå¨
- è§£å³æ¹æ¡:
- æ£æ¥æä»¶è·¯å¾æ¯å¦æ£ç¡®
- 使ç¨ç»å¯¹è·¯å¾é¿å ç¸å¯¹è·¯å¾é®é¢
- ç¡®ä¿æä»¶æ ¼å¼åæ¯æ (PNG, JPG, JPEG, WebP)
ä¼è¯ç¸å ³é误
é误: “Session not found”
- åå : æå®ç session ID ä¸åå¨
- è§£å³æ¹æ¡:
- 使ç¨
--list-sessionsæ¥çå¯ç¨ä¼è¯ - ç¡®ä¿ session ID æ¼åæ£ç¡®
- 馿¬¡ä½¿ç¨ä¼èªå¨å建æ°ä¼è¯
- 使ç¨
é误: “Session corrupted”
- åå : ä¼è¯æä»¶æå
- è§£å³æ¹æ¡:
# å 餿åçä¼è¯æä»¶ rm ~/Library/Application\ Support/pw-skills/gemini-web/sessions/<session-id>.json # æå¨ Linux ä¸ rm ~/.local/share/pw-skills/gemini-web/sessions/<session-id>.json
å ¶ä»é误
é误: “Bun not found”
- åå : ç³»ç»ä¸æªå®è£ Bun
- è§£å³æ¹æ¡:
npx -y bunä¼èªå¨ä¸è½½ Bunï¼æ éæå¨å®è£
é误: “Permission denied”
- åå : 没æåå ¥æé
- è§£å³æ¹æ¡:
- æ£æ¥è¾åºç®å½æé
- æ£æ¥æ°æ®ç®å½æé
- ä½¿ç¨ææéçè·¯å¾
æä½³å®è·µ
Agent 使ç¨å»ºè®®
1. Session ID 管ç
- 为æ¯ä¸ªç¬ç«ä»»å¡çæå¯ä¸ç session ID
- ä½¿ç¨ææä¹çå½å:
task-<uuid>æproject-<hash> - å䏿¹æ¬¡ä»»å¡å¤ç¨ session ID ä¿æä¸ä¸æ
- 示ä¾:
# 为ç®å½çæåºå® session ID SESSION_ID=$(echo -n "/path/to/project" | md5sum | cut -d' ' -f1)
2. é误å¤ç
- å§ç»æ£æ¥å½ä»¤éåºç
- 使ç¨
--jsonè¾åºä¾¿äºè§£æç»æ - æè·å¹¶è®°å½é误信æ¯
- 示ä¾:
if ! output=$(npx -y bun ${SKILL_DIR}/scripts/main.ts "test" --json 2>&1); then echo "Error: $output" exit 1 fi
3. 代çé ç½®
- å¨ä¸å½å¤§éç¯å¢èªå¨æ·»å 代çç¯å¢åé
- æ£æµç½ç»éè¯¯æ¶æç¤ºç¨æ·é 置代ç
- 示ä¾:
# æ£æµæ¯å¦éè¦ä»£ç if [[ $(curl -s -o /dev/null -w "%{http_code}" https://gemini.google.com) != "200" ]]; then echo "æç¤º: å¯è½éè¦é 置代çè®¿é® Google æå¡" fi
4. æ¹éå¤ç
- 使ç¨ç¸å session ID å¤çç¸å ³ä»»å¡
- å¨è¯·æ±ä¹é´æ·»å éå½å»¶è¿é¿å éæµ
- 使ç¨
--jsonè¾åºä¾¿äºæ¹éè§£æ - 示ä¾:
for file in *.txt; do npx -y bun ${SKILL_DIR}/scripts/main.ts \ --promptfiles "$file" \ --sessionId "$SESSION_ID" \ --image "${file%.txt}.png" \ --json sleep 2 # é¿å éæµ done
å¾åçæå»ºè®®
1. æç¤ºè¯ä¼å
- ä½¿ç¨æ¸ æ°ãå ·ä½çæè¿°
- å å«é£æ ¼ãè²å½©ãæå¾çç»è
- é¿å æ¨¡ç³ææ½è±¡ç表述
- 好ç示ä¾: “ä¸å¼ é¼çç鿝çç¬å¹¼ç¬ç §çï¼é³å æåªçèå°èæ¯ï¼æµ æ¯æ·±”
- å·®ç示ä¾: “ä¸åªç”
2. 模åéæ©
- é«è´¨éå¾å: 使ç¨
gemini-3-pro - å¿«éé¢è§: 使ç¨
gemini-2.5-flash - å¤æåºæ¯: 使ç¨
gemini-3-pro
3. åèå¾å使ç¨
- å¾çå¾: æä¾æ¸ æ°çåèå¾ååååæè¿°
- å¾çæ: æä¾å ·ä½çæè¿°è¦æ±
- 示ä¾:
# åºäºåèå¾çæåä½ npx -y bun ${SKILL_DIR}/scripts/main.ts \ --prompt "çæä¸ä¸ªå¡é飿 ¼çåä½ï¼ä¿æä¸»ä½ä¸å" \ --reference original.jpg \ --image cartoon.png
å¤è½®å¯¹è¯å»ºè®®
1. ä¸ä¸æç®¡ç
- 馿¬¡å¯¹è¯è®¾ç½®ç³»ç»æç¤ºæè§è²
- åç»å¯¹è¯å¤ç¨ session ID
- 示ä¾:
# 第ä¸è½®: 设置è§è² npx -y bun ${SKILL_DIR}/scripts/main.ts \ "ä½ æ¯ä¸ä¸ªä¸ä¸çå¾åæè¿°ä¸å®¶" \ --sessionId img-desc-001 # åç»è½®æ¬¡: æè¿°å¾å npx -y bun ${SKILL_DIR}/scripts/main.ts \ --prompt "æè¿°è¿å¼ å¾ç" \ --reference photo.jpg \ --sessionId img-desc-001
2. ä¼è¯æ¸ ç
- å®ææ¸ çä¸åéè¦çä¼è¯
- 使ç¨
--list-sessionsæ¥çä¼è¯å表 - æå¨å é¤ä¼è¯æä»¶:
# macOS rm ~/Library/Application\ Support/pw-skills/gemini-web/sessions/<id>.json # Linux rm ~/.local/share/pw-skills/gemini-web/sessions/<id>.json
æ§è½ä¼å
1. åå°ä¸å¿ è¦ç请æ±
- åå¹¶ç¸å ³æç¤ºå°ä¸æ¬¡è¯·æ±
- 使ç¨
--promptfilesç»åå¤ä¸ªæä»¶ - é¿å éå¤çæç¸åå 容
2. å¹¶è¡å¤ç
- ç¬ç«ä»»å¡å¯ä»¥å¹¶è¡æ§è¡
- 使ç¨ä¸å session ID é¿å å²çª
- 注æéæµéå¶
3. ç¼åçç¥
- Cookie ä¼èªå¨ç¼åï¼æ éæ¯æ¬¡ç»å½
- ä¼è¯æ°æ®æä¹ åï¼å¯å¤ç¨ä¸ä¸æ
- çæçå¾åä¿åå°æ¬å°ï¼é¿å éå¤çæ
å®å ¨å»ºè®®
1. åè¯ç®¡ç
- Cookie æä»¶å 嫿æä¿¡æ¯ï¼æ³¨æä¿æ¤
- ä¸è¦å° cookie æä»¶æäº¤å°çæ¬æ§å¶
- 宿巿° cookie ä¿æå®å ¨æ§
2. å 容审æ¥
- éµå® Google å 容æ¿ç
- é¿å çæè¿è§å 容
- 注æçæåéç§é®é¢
3. æ°æ®éç§
- ä¼è¯æ°æ®åå¨å¨æ¬å°
- æç¤ºå 容ä¼åéå° Google æå¡å¨
- ä¸è¦å¨æç¤ºä¸å 嫿æä¿¡æ¯
æ éææ¥æ¸ å
éå°é®é¢æ¶ï¼æä»¥ä¸é¡ºåºæ£æ¥:
-
æ£æ¥ç½ç»è¿æ¥
curl -I https://gemini.google.com- å¦æå¤±è´¥ï¼é 置代ç
-
æ£æ¥è®¤è¯ç¶æ
npx -y bun ${SKILL_DIR}/scripts/main.ts --login- éæ°ç»å½å·æ° cookie
-
æ£æ¥æµè§å¨
which chrome || which chromium || which microsoft-edge- ç¡®ä¿å®è£ äºæ¯æçæµè§å¨
-
æ£æ¥æä»¶æé
ls -la ~/Library/Application\ Support/pw-skills/gemini-web/- ç¡®ä¿æè¯»åæé
-
æ£æ¥è¾åºç®å½
mkdir -p /path/to/output && ls -la /path/to/output- ç¡®ä¿ç®å½åå¨ä¸å¯å
-
æ¥ç详ç»é误
npx -y bun ${SKILL_DIR}/scripts/main.ts "test" 2>&1 | tee error.log- ä¿å宿´é误æ¥å¿
-
æµè¯åºæ¬åè½
# æµè¯ææ¬çæ npx -y bun ${SKILL_DIR}/scripts/main.ts "ä½ å¥½" # æµè¯å¾åçæ npx -y bun ${SKILL_DIR}/scripts/main.ts "ä¸åªç«" --image test.png
ææ¯éå¶
å·²ç¥éå¶:
- è¿æ¯é宿¹ APIï¼å¯è½éæ¶å¤±æ
- 没æå®æ¹æ¯ææ SLA ä¿è¯
- å¯è½å卿ªç¥çéæµéå¶
- API åæ´å¯è½å¯¼è´åè½ä¸æ
- å¾åçæè´¨éåå³äº Gemini 模åè½å
䏿¯æçåè½:
- è§é¢çæ
- é³é¢çæ
- 宿¶æµå¼è¾åº
- æ¹é API è°ç¨
- Webhook åè°
æ§è½ç¹å¾:
- ææ¬çæ: é常 2-5 ç§
- å¾åçæ: é常 10-30 ç§
- ç»å½æµç¨: åå³äºç¨æ·æä½é度
- ä¼è¯å è½½: å ä¹å³æ¶
æ´æ°æ¥å¿
æ¥çé¡¹ç® Git åå²äºè§£ææ°åæ´:
cd ${SKILL_DIR}
git log --oneline --decorate