xpai-doubao-web

📁 hunduncn/xpai-doubao-web 📅 9 days ago
16
总安装量
3
周安装量
#21456
全站排名
安装命令
npx skills add https://github.com/hunduncn/xpai-doubao-web --skill xpai-doubao-web

Agent 安装分布

claude-code 2
openclaw 1
kimi-cli 1

Skill 文档

XPAI Doubao Web

Overview

Use this skill to generate images or text from Doubao Web by reusing browser login cookies. It provides a CLI wrapper with prompt files, optional reference images, presets, sessions, and JSON output.

Script Directory

All scripts are located in the scripts/ subdirectory of this skill.

Script reference:

  • scripts/main.ts: CLI entry point (image/text)
  • scripts/doubao-webapi/*: TypeScript client and helpers

Consent Check (required before first use)

This skill relies on reverse-engineered web behavior and will access/store your Doubao Web cookies. Obtain explicit user consent before running automation.

Consent file locations:

  • macOS: ~/Library/Application Support/xpai-skills/doubao-web/consent.json
  • Linux: ~/.local/share/xpai-skills/doubao-web/consent.json
  • Windows: %APPDATA%\\xpai-skills\\doubao-web\\consent.json

Consent file format: {"version":1,"accepted":true,"acceptedAt":"<ISO>","disclaimerVersion":"1.0"}

Preferences (EXTEND.md)

Check for optional EXTEND.md overrides in this order:

# Project-level first
test -f .xpai-skills/xpai-doubao-web/EXTEND.md && echo "project"

# Then user-level
test -f "$HOME/.xpai-skills/xpai-doubao-web/EXTEND.md" && echo "user"

Supported settings (if you add parsing for them): default model, proxy settings, custom data directory.

Usage

# Text-to-image
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts "Your prompt"

# Text-only
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts --mode text --prompt "Summarize this article"

# Specify model
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts --prompt "Your prompt" --model doubao-default

# Generate an image file
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts --prompt "A cute cat" --image out.png

# Prompt from files
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts --promptfiles system.md content.md --image out.png

# Vision input (reference images)
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts --prompt "Create variation" --reference a.png --image out.png

# Preset (aspect ratio via prompt prefix/suffix)
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts --preset xiaohongshu_cover --prompt "Minimalist poster" --image out.png

# List presets
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts --list-presets

# Multi-turn sessions
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts "Remember: 42" --sessionId session-abc
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts "What number?" --sessionId session-abc

# JSON output
npx -y bun /Users/aqxp/Aicodingmac/test2/xpai-doubao-web/scripts/main.ts "Hello" --json

Options

  • --prompt, -p: Prompt text
  • --promptfiles: Read prompt from files (concatenated)
  • --model, -m: Model string (pass-through)
  • --mode: image (default) or text
  • --preset: Preset name (applies prompt prefix/suffix; default xiaohongshu_cover)
  • --image [path]: Generate image (default: generated.png)
  • --reference, --ref: Reference images for vision input
  • --sessionId: Session ID for multi-turn conversation
  • --list-sessions: List saved sessions
  • --list-presets: List preset names and config paths
  • --json: Output as JSON
  • --login: Refresh cookies, then exit
  • --cookie-path: Custom cookie file path
  • --profile-dir: Chrome profile directory

Authentication

Login uses browser cookies. The CLI supports:

  • --login to trigger a browser-based refresh (implemented with Playwright).
  • --cookie-path or DOUBAO_WEB_COOKIE_PATH to point at an exported cookie file.

Flow notes:

  • --login opens a visible browser window and saves cookies.
  • Image/text generation runs headless by default (no window). Set DOUBAO_WEB_HEADLESS=0 to show the browser.
  • If a cookies file already exists, generation proceeds without opening a browser.
  • To force a fresh login, delete the cookies file or run --login again.

For --login and image generation, install Playwright and its browsers:

npm i -D playwright
npx playwright install

Supported browsers (Playwright): Chromium/Chrome/Edge. Override browser path via DOUBAO_WEB_CHROME_PATH. If you pass --profile-dir, it is used as a Playwright user data directory.

Presets

Preset config path priority:

  1. DOUBAO_WEB_PRESETS_PATH
  2. .xpai-skills/xpai-doubao-web/presets.json (project)
  3. $HOME/.xpai-skills/xpai-doubao-web/presets.json (user)

Format:

{
  "default": "xiaohongshu_cover",
  "presets": {
    "xiaohongshu_cover": { "prefix": "...", "suffix": "..." }
  }
}

Example file: references/presets.example.json

Environment Variables

  • DOUBAO_WEB_DATA_DIR: Data directory
  • DOUBAO_WEB_COOKIE_PATH: Cookie file path
  • DOUBAO_WEB_HEADLESS: Set to 0 to run browser in headed mode (default: headless)
  • DOUBAO_WEB_MAX_IMAGES: Max images to save (default: 1)
  • DOUBAO_WEB_LOGIN_URL: Login URL to open in the browser (default: https://www.doubao.com/)
  • DOUBAO_WEB_COOKIE_DOMAIN: Filter cookies by domain (default: doubao.com)
  • DOUBAO_WEB_PRESETS_PATH: Preset config file path
  • DOUBAO_WEB_INPUT_SELECTOR: Custom input selector for the prompt box
  • DOUBAO_WEB_OUTPUT_SELECTOR: Custom selector for the latest assistant message
  • DOUBAO_WEB_CHROME_PROFILE_DIR: Chrome profile directory
  • DOUBAO_WEB_CHROME_PATH: Chrome executable path
  • HTTP_PROXY, HTTPS_PROXY: Proxy for web access

Sessions

Session files are stored in the data directory under sessions/<id>.json.

Contains: id, conversationUrl, messages, timestamps. When --sessionId is set, a persistent Playwright profile is stored under profiles/<id>/ to keep login state.