Back to skill
Skillv0.1.0
ClawScan security
Baoyu Post To X · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousFeb 11, 2026, 8:59 AM
- Verdict
- suspicious
- Confidence
- high
- Model
- gpt-5-mini
- Summary
- The skill's stated purpose (posting to X via a real Chrome session) matches the code, but the package metadata omits important prerequisites and the instructions/scripts access sensitive local state (Chrome profile, $HOME config, system clipboard, and OS automation), which is disproportionate to what the metadata declares and deserves caution.
- Guidance
- This skill will launch a real Chrome instance, rely on a persistent Chrome profile (to use your logged-in X session), and use system clipboard + OS automation (osascript/xdotool/powershell) to paste images — it requires Chrome and the bun runtime even though the registry metadata lists none. Before installing or running it: - Treat it as powerful: running it with your default Chrome profile lets it act from your logged-in X account and gives access to cookies and other browser data. Prefer creating and specifying a dedicated Chrome profile directory with --profile to isolate credentials. - Expect to grant OS automation/accessibility permissions (macOS Accessibility, xdotool/ydotool, etc.). Only grant these if you trust the code. - The skill reads $HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.md and project .baoyu-skills/... files for config — review those files if present and be cautious about placing secrets there. - The code downloads remote images referenced in Markdown; network I/O is expected but review md-to-html.ts for allowed hosts if you have concerns. - If you need to proceed, inspect x-utils.js (not shown in the summary) for any unexpected network endpoints, file writes outside temp directories, or code that reads other local secrets. Run the skill in a sandboxed environment or VM first, and avoid using your primary Chrome profile. Summary recommendation: do not install blindly. The behavior is consistent with posting via a real browser, but the metadata underreports the privileges and filesystem access; treat this skill as high-privilege and only use it with explicit isolation and review.
Review Dimensions
- Purpose & Capability
- concernThe skill truly implements posting to X using a real Chrome/CDP flow (consistent with its description). However, the registry metadata claims no required binaries/env/config paths while SKILL.md and the scripts explicitly require Google Chrome/Chromium, the bun runtime, and access to a Chrome user profile directory (persistent login). That mismatch between declared requirements and actual needs is an incoherence the user should notice.
- Instruction Scope
- concernThe runtime instructions and scripts do more than just call an API: they (a) read EXTEND.md from the project or $HOME, (b) launch and attach to real Chrome with a persistent profile (potentially reusing the user's default profile), (c) copy images/HTML to the system clipboard and send real OS keystrokes (osascript/xdotool/powershell), and (d) download remote images referenced in Markdown. The SKILL.md metadata did not declare these filesystem and automation accesses. These actions require high OS-level privileges (accessibility/automation) and access to local user data (Chrome profile, home directory).
- Install Mechanism
- noteNo install spec is provided (instruction-only), which lowers installer-supply-chain risk. However the skill includes multiple runnable TypeScript/JS files that the agent will execute via 'bun' / 'npx -y bun ...'. That execution will run local scripts and may invoke system commands (swift/osascript/xdotool/powershell), so there is runtime risk even without an explicit install step. The scripts also perform network downloads for remote images.
- Credentials
- concernRegistry/metadata declare no required env vars or config paths, yet the instructions and code reference/expect environment/config state: X_BROWSER_CHROME_PATH is mentioned, a default Chrome profile directory is used (getDefaultProfileDir), EXTEND.md is read from $HOME, and the skill will read local files (images, markdown) and the user's Chrome profile data (cookies/session). These are sensitive and not reflected in the declared requirements — requesting access to the user's Chrome profile and home config is disproportionate unless the user knowingly provides a dedicated profile directory.
- Persistence & Privilege
- noteThe skill is not 'always' installed and does not request elevated platform privilege in metadata. It does, however, expect to reuse or create Chrome user-data directories and may detect/attach to an existing Chrome instance (DevToolsActivePort). This gives it access to an authenticated browser session (cookies, local storage) if the default profile is used. That level of local-state access increases blast radius and should be explicit to users, though it is logically necessary for persistent login.
