Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Baoyu Danger Gemini Web

v0.1.0

Generates images and text via reverse-engineered Gemini Web API. Supports text generation, image generation from prompts, reference images for vision input,...

0· 731·43 current·44 all-time
by逝去小时光@wjctim
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (reverse‑engineered Gemini Web API for text/image generation) align with the included TypeScript client and CLI. However the skill requires access to browser cookies and Chrome profile directories to authenticate (via __Secure-1PSID / __Secure-1PSIDTS), which is not advertised in the registry metadata (no required config paths or credentials listed).
!
Instruction Scope
SKILL.md and the code instruct the agent to read/write files under the user's home (consent.json, EXTEND.md, cached cookie files), spawn Chrome (via child_process) and use the Chrome remote debugging/CDP to extract cookies, and then call gemini.google.com and related Google endpoints. Those actions access highly sensitive local browser state (cookies) and will download/run runtime tooling (npx -y bun). This scope goes beyond a simple 'generate image' description and could expose sensitive credentials if misused.
Install Mechanism
There is no formal install spec (instruction-only), which lowers installer risk. However usage examples run 'npx -y bun scripts/main.ts' which will fetch/execute a runtime (bun) at runtime. The included code itself will be executed by the agent. No arbitrary remote archives or unknown URLs are used in an install step, but 'npx -y bun' implies downloading an executable to run the TypeScript.
!
Credentials
The skill reads browser cookies, can launch Chrome with a new user-data-dir, and writes cookie files and consent files under user directories. Those are high‑sensitivity operations (cookie tokens) that are not reflected in the declared metadata (no required env vars or config paths). Optional env vars exist (GEMINI_WEB_CHROME_PATH, GEMINI_WEB_CHROME_PROFILE_DIR, GEMINI_WEB_COOKIE_PATH) but requesting access to local browser cookies is a substantial privilege and should be explicitly declared and consented to.
Persistence & Privilege
The skill does not request 'always: true' and does not modify other skills. It writes local files (consent, cookie cache, sessions) under its own data directory; this is expected for a client that caches auth. No evidence it alters system-wide agent configuration or other skills.
What to consider before installing
This skill contains a full TypeScript client that reverse‑engineers the Gemini Web endpoints and authenticates by reading Google browser cookies (__Secure-1PSID / __Secure-1PSIDTS) via Chrome/CDP and writing cookie files. That behavior is coherent with its goal but is sensitive: browser cookies can be used to impersonate your account. The registry metadata did not declare these config/permission needs, which is a red flag. Before installing: - Inspect scripts/main.ts and the cookie-loading code yourself (or have someone you trust do so). - Do NOT run it against your primary Chrome profile. Set GEMINI_WEB_CHROME_PROFILE_DIR to a disposable profile or test VM/container. - Be aware it will spawn Chrome and open an authentication window; it will write consent and cookie files under your home dir. - Consider legal/TOS implications: reverse‑engineered access to Google endpoints may violate the provider terms and could stop working. - If you cannot review the source, avoid granting it access to real browser cookies or personal accounts; prefer official APIs with explicit credentials instead.

Like a lobster shell, security has layers — review code before you run it.

latestvk971vxap4yvzakgpafgj1h9z19828qfz
731downloads
0stars
1versions
Updated 12h ago
v0.1.0
MIT-0

Gemini Web Client

Text/image generation via Gemini Web API. Supports reference images and multi-turn conversations.

Script Directory

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

Agent Execution Instructions:

  1. Determine this SKILL.md file's directory path as SKILL_DIR
  2. Script path = ${SKILL_DIR}/scripts/<script-name>.ts
  3. Replace all ${SKILL_DIR} in this document with the actual path

Script Reference:

ScriptPurpose
scripts/main.tsCLI entry point for text/image generation
scripts/gemini-webapi/*TypeScript port of gemini_webapi (GeminiClient, types, utils)

Consent Check (REQUIRED)

Before first use, verify user consent for reverse-engineered API usage.

Consent file locations:

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

Flow:

  1. Check if consent file exists with accepted: true and disclaimerVersion: "1.0"
  2. If valid consent exists → print warning with acceptedAt date, proceed
  3. If no consent → show disclaimer, ask user via AskUserQuestion:
    • "Yes, I accept" → create consent file with ISO timestamp, proceed
    • "No, I decline" → output decline message, stop
  4. Consent file format: {"version":1,"accepted":true,"acceptedAt":"<ISO>","disclaimerVersion":"1.0"}

Preferences (EXTEND.md)

Use Bash to check EXTEND.md existence (priority order):

# Check project-level first
test -f .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md && echo "project"

# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md" && echo "user"

┌──────────────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md │ Project directory │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md │ User home │ └──────────────────────────────────────────────────────────┴───────────────────┘

┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ Result │ Action │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Found │ Read, parse, apply settings │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Not found │ Use defaults │ └───────────┴───────────────────────────────────────────────────────────────────────────┘

EXTEND.md Supports: Default model | Proxy settings | Custom data directory

Usage

# Text generation
npx -y bun ${SKILL_DIR}/scripts/main.ts "Your prompt"
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Your prompt" --model gemini-3-flash

# Image generation
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "A cute cat" --image cat.png
npx -y bun ${SKILL_DIR}/scripts/main.ts --promptfiles system.md content.md --image out.png

# Vision input (reference images)
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Describe this" --reference image.png
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Create variation" --reference a.png --image out.png

# Multi-turn conversation
npx -y bun ${SKILL_DIR}/scripts/main.ts "Remember: 42" --sessionId session-abc
npx -y bun ${SKILL_DIR}/scripts/main.ts "What number?" --sessionId session-abc

# JSON output
npx -y bun ${SKILL_DIR}/scripts/main.ts "Hello" --json

Options

OptionDescription
--prompt, -pPrompt text
--promptfilesRead prompt from files (concatenated)
--model, -mModel: gemini-3-pro (default), gemini-3-flash, gemini-3-flash-thinking, gemini-3.1-pro-preview
--image [path]Generate image (default: generated.png)
--reference, --refReference images for vision input
--sessionIdSession ID for multi-turn conversation
--list-sessionsList saved sessions
--jsonOutput as JSON
--loginRefresh cookies, then exit
--cookie-pathCustom cookie file path
--profile-dirChrome profile directory

Models

ModelDescription
gemini-3-proDefault, latest 3.0 Pro
gemini-3-flashFast, lightweight 3.0 Flash
gemini-3-flash-thinking3.0 Flash with thinking
gemini-3.1-pro-preview3.1 Pro preview (empty header, auto-routed)

Authentication

First run opens browser for Google auth. Cookies cached automatically.

Supported browsers (auto-detected): Chrome, Chrome Canary/Beta, Chromium, Edge.

Force refresh: --login flag. Override browser: GEMINI_WEB_CHROME_PATH env var.

Environment Variables

VariableDescription
GEMINI_WEB_DATA_DIRData directory
GEMINI_WEB_COOKIE_PATHCookie file path
GEMINI_WEB_CHROME_PROFILE_DIRChrome profile directory
GEMINI_WEB_CHROME_PATHChrome executable path
HTTP_PROXY, HTTPS_PROXYProxy for Google access (set inline with command)

Sessions

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

Contains: id, metadata (Gemini chat state), messages array, timestamps.

Extension Support

Custom configurations via EXTEND.md. See Preferences section for paths and supported options.

Comments

Loading comments...