Skill Trust Decision

tweet-monitor-pro

The skill is a non-functional commercial tweet scraping tool whose primary capability — all fetch operations — delegates to a non-existent external Python script via undeclared shell execution, making it operationally broken but not actively malicious.

Install decision first Source: ClawHub Scanned: Jun 22, 2026
Files 6
Artifacts 2
Violations 3
Findings 4

Why this conclusion was reached

1/4 dimensions flagged
Block
Declared vs actual capability

3 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

2 lower-risk artifacts were extracted and still need context.

Pass
Attack chain and severe findings

There is no explicit malicious chain in the report.

Review
Dependencies and supply chain hygiene

Dependency information is incomplete, so supply-chain confidence stays limited.

What drove the risk score up

Undeclared shell execution +15

index.js uses execSync to invoke a Python script, but SKILL.md never mentions subprocess or shell usage

Hardcoded non-existent external script reference +10

All fetch functions call /root/.openclaw/workspace/skills/x-tweet-fetcher/scripts/fetch_tweet.py which is not bundled and does not exist

Doc deception on execution model +5

SKILL.md claims 'zero-dependency basics' and describes HTTP fetching, but code delegates to external Python subprocess

Most important evidence

Medium Doc Mismatch

Undeclared shell execution via execSync

SKILL.md describes the skill as using 'FxTwitter public endpoint' with zero dependencies, but index.js actually executes a Python script via child_process.execSync. This shell execution is never declared in the documentation.

index.js:98
Declare shell execution in SKILL.md under a Tools/Permissions section. If the intent is to avoid subprocess, refactor to use a Node.js HTTP library (e.g., fetch/axios) directly.
Medium Supply Chain

Hardcoded reference to non-existent external script

All three main fetch functions (fetchTweet, fetchTimeline, monitorUser) call execSync with a hardcoded absolute path /root/.openclaw/workspace/skills/x-tweet-fetcher/scripts/fetch_tweet.py. This script is not bundled with the skill, does not exist in the file tree, and references a completely different skill directory ('x-tweet-fetcher'). All fetch operations will fail at runtime.

index.js:97
Either bundle the Python script within this skill's directory or remove the dependency entirely. If Python scraping is needed, document it explicitly and include the script.
Low Doc Mismatch

False claim of 'zero-dependency'

SKILL.md advertises 'Zero-dependency basics: Fetch single tweets without Camofox', but the implementation depends on an external Python script and a Camofox browser plugin for advanced features. The 'zero-dependency' claim is misleading.

SKILL.md:5
Remove the 'zero-dependency' claim or clarify that a Python dependency is required.
Low Sensitive Access

Undeclared environment variable read

index.js reads process.env.QUOTA_DB to determine the quota database path. While the default is a relative path (quotas.json), any operator-configured QUOTA_DB environment variable is not declared in documentation.

index.js:15
Document the QUOTA_DB environment variable in SKILL.md if it is intended to be configurable.

Declared capability vs actual capability

Shell Block
Declared NONE
→
Inferred WRITE
index.js:98 — execSync(args.join(' '))
Filesystem Block
Declared NONE
→
Inferred READ+WRITE
index.js:32 — fs.readFileSync(QUOTA_DB); index.js:37 — fs.writeFileSync(QUOTA_DB)
Network Pass
Declared READ
→
Inferred READ
Indirect — fetch delegated to external Python script (unverified)
Environment Block
Declared NONE
→
Inferred READ
index.js:15 — process.env.QUOTA_DB

Suspicious artifacts and egress

Medium External URL
https://x.com/user/status/123456

README.md:49

Medium External URL
https://skillpay.me

README.md:92

Dependencies and supply chain

There are no structured dependency warnings.

File composition

6 files · 665 lines
JavaScript 1 files · 340 linesMarkdown 2 files · 281 linesJSON 3 files · 44 lines
Files of concern · 3
index.js JavaScript · 340 lines
Undeclared shell execution via execSync · Hardcoded reference to non-existent external script · Undeclared environment variable read
SKILL.md Markdown · 143 lines
False claim of 'zero-dependency'
README.md Markdown · 138 lines
https://x.com/user/status/123456 · https://skillpay.me
Other files · manifest.json · quotas.json · _meta.json

Security positives

No credential harvesting or sensitive file access detected
No data exfiltration to external servers observed
No obfuscation techniques (base64, eval, etc.) present
Quota system provides basic usage tracking for transparency
No evidence of reverse shell, C2 communication, or persistence mechanisms