xpai-doubao-web

hunduncn/xpai-doubao-web · updated Apr 8, 2026

$npx skills add https://github.com/hunduncn/xpai-doubao-web --skill xpai-doubao-web
0 commentsdiscussion
summary

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.

skill.md

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.

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.766 reviews
  • Valentina Verma· Dec 24, 2024

    xpai-doubao-web has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Hana Rao· Dec 20, 2024

    xpai-doubao-web reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Shikha Mishra· Dec 16, 2024

    xpai-doubao-web reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Hiroshi Mehta· Dec 16, 2024

    I recommend xpai-doubao-web for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Dhruvi Jain· Dec 12, 2024

    Keeps context tight: xpai-doubao-web is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Olivia Okafor· Dec 4, 2024

    Keeps context tight: xpai-doubao-web is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Hana Reddy· Dec 4, 2024

    xpai-doubao-web fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Hana Ghosh· Nov 23, 2024

    xpai-doubao-web has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Mateo Liu· Nov 15, 2024

    xpai-doubao-web fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Rahul Santra· Nov 7, 2024

    I recommend xpai-doubao-web for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

showing 1-10 of 66

1 / 7