Social Media Automation

Security checks across static analysis, malware telemetry, and agentic risk

Overview

This appears to be a legitimate social-media automation tool, but it can publish and interact from your social accounts and run scheduled posts, so it needs careful review before use.

Install only if you are comfortable granting the skill access to your social-media accounts. Use dedicated or least-privilege credentials, keep the .env and database files private, and require explicit review before any post, reply, retweet, like, or scheduled publication is created.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

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.

What this means

If an agent or user invokes this command with the wrong text or account, it can publish public content under the user's social-media identity.

Why it was flagged

The CLI post command directly publishes to X/Twitter when invoked, without a visible confirmation step in the provided function.

Skill content
console.print(f"[cyan]Posting to X (Twitter):[/cyan] {text[:50]}...")
result = client.post_tweet(text)
Recommendation

Only allow posting after an explicit user request and review. Prefer adding a confirmation, dry-run, or approval gate before post, reply, retweet, and like actions.

What this means

Scheduled or recurring content may be posted automatically after the initial scheduling action.

Why it was flagged

The scheduler starts a background worker that checks for due scheduled posts every minute while the process is running.

Skill content
self.scheduler = BackgroundScheduler(timezone=pytz.timezone("Asia/Tokyo"))
self.scheduler.start()
self.scheduler.add_job(
    self.process_scheduled_posts,
    "interval",
    minutes=1,
Recommendation

Review scheduled and recurring jobs carefully, run the scheduler only in a supervised context, and provide a clear way to list, cancel, and stop jobs.

What this means

Compromise or misuse of these tokens could let someone post or interact through the connected accounts.

Why it was flagged

The skill requires or supports account credentials that can grant access to social-media accounts; this is expected for the purpose, but it is sensitive and the registry metadata does not declare credentials.

Skill content
TWITTER_BEARER_TOKEN=your_bearer_token_here
TWITTER_API_KEY=your_api_key_here
TWITTER_API_SECRET=your_api_secret_here
TWITTER_ACCESS_TOKEN=your_access_token_here
TWITTER_ACCESS_SECRET=your_access_secret_here

# Bluesky Credentials (optional)
BLUESKY_HANDLE=your_handle.bsky.social
BLUESKY_APP_PASSWORD=your_app_password_here

# LinkedIn Credentials (optional)
LINKEDIN_ACCESS_TOKEN=your_access_token_here
Recommendation

Use least-privilege tokens, prefer a dedicated social-media account, keep the .env file private, and revoke tokens if the skill is no longer used.

What this means

Installing a different package build could run code that differs from the artifacts reviewed here.

Why it was flagged

The documentation offers an external package install path that may fetch code from a package index rather than the reviewed local files.

Skill content
pipx install social-media-automation
Recommendation

Install from the reviewed local checkout when possible, or verify and pin the package version/source before using pipx.

What this means

Drafts, templates, and scheduled content may remain on disk and could later be reused or posted if not reviewed.

Why it was flagged

The skill persists social-media content and configuration data in a local SQLite database.

Skill content
- SQLiteデータベースによるデータ永続化

# Database
DB_PATH=./data/social_media.db
Recommendation

Avoid storing sensitive unpublished content unnecessarily, protect the database path, and periodically review or delete old drafts and schedules.