Bear Blog Publisher

ReviewAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches its blog-publishing purpose, but it needs review because it handles passwords, has a hardcoded Bear Blog account path for image uploads, and makes inconsistent claims about credential storage.

Before installing, confirm the target Bear Blog account/slug behavior, avoid storing your Bear Blog password in plaintext config if possible, review generated posts before publishing, and only enable Playwright-based diagrams or AI generation if you accept the external dependencies and provider data sharing.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

ConcernMedium Confidence
ASI03: Identity and Privilege Abuse
What this means

Image uploads could fail, target the wrong Bear Blog namespace, or otherwise use the user's account session in a way that is not clearly tied to their intended blog.

Why it was flagged

The skill logs in with the user's Bear Blog credentials, then targets a hardcoded /cattalk/ dashboard path for image uploads instead of clearly scoping the action to the authenticated user's own blog.

Skill content
login_data = {'login': self.email, 'password': self.password, ...}; upload_url = "https://bearblog.dev/cattalk/dashboard/upload-image/"
Recommendation

Derive the upload/posting URLs from the authenticated user's account or require the user to configure and confirm the target Bear Blog slug before any upload or publish action.

What this means

A user may store a Bear Blog password on disk while believing the skill only keeps credentials in memory.

Why it was flagged

The README both instructs users to store a password in an OpenClaw config file and claims there is no persistent credential storage, which can mislead users about password persistence.

Skill content
Edit `~/.openclaw/openclaw.json` ... "password": "yourpassword" ... "No persistent credential storage" - credentials only exist in memory during execution
Recommendation

Correct the documentation to state clearly that the config-file method persists a plaintext password, and prefer environment variables or a secrets manager.

What this means

If invoked imprecisely, the agent may publish content before the user has reviewed the final text.

Why it was flagged

The skill can directly publish AI-generated content to a public blogging platform. This is purpose-aligned, but it is a high-impact external mutation.

Skill content
You: "Write and publish a blog about Python asyncio" AI: [Generates content with OpenAI, publishes]
Recommendation

Ask the agent to draft first, review the content, then give an explicit publish command.

What this means

Installing or enabling diagram generation may download and run a large browser dependency.

Why it was flagged

The package metadata declares Python dependencies and a Chromium browser download for Playwright. This fits diagram generation, but it is extra install-time behavior users should notice.

Skill content
"python": ["requests", "playwright"], "command": "playwright install chromium"
Recommendation

Install only from a trusted source, review dependency versions, and skip diagram generation if Playwright/Chromium is not acceptable.

What this means

Rendering untrusted HTML or running in a shared environment would carry more risk than normal markdown publishing.

Why it was flagged

The skill runs Chromium via Playwright with reduced sandboxing for diagram rendering. This is disclosed and purpose-aligned, but it is still local browser execution.

Skill content
`--no-sandbox` Flag ... Risk: Slightly reduced browser isolation ... Only used for local HTML-to-image conversion
Recommendation

Use diagram generation only with trusted diagram content and avoid running it in sensitive shared environments.

What this means

Topics or draft details sent for AI generation leave the local environment and go to the selected provider.

Why it was flagged

Optional AI generation sends the user's topic/prompt to OpenAI or Kimi/Moonshot using the configured API key. This is disclosed and central to the optional AI feature.

Skill content
requests.post("https://api.openai.com/v1/chat/completions", ...); requests.post("https://api.moonshot.cn/v1/chat/completions", ...)
Recommendation

Do not use AI generation for private or sensitive drafts unless you are comfortable with the provider's data handling.