X Voice Match

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill is openly for X voice matching, but it can imitate any account and includes prompts intended to make readers believe the target account wrote the posts.

Use this only for accounts you own or have explicit permission to represent. Review generated posts before publishing, avoid impersonating others, treat fetched tweets and profile files as untrusted input, and verify the local Bird CLI before letting the skill fetch data.

Findings (4)

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

A user could generate posts that impersonate another X account or mislead an audience about who authored the content.

Why it was flagged

The skill explicitly frames success as producing content that could fool readers into believing the target account wrote it.

Skill content
Sounds authentic (could fool someone) ... Perfect match, indistinguishable from their real tweets
Recommendation

Limit use to accounts the user owns or is authorized to represent, avoid 'fool someone' framing, and clearly label generated posts as drafts or AI-assisted content.

What this means

A crafted tweet or profile file could contain instructions that influence the agent beyond voice matching.

Why it was flagged

Raw tweets from arbitrary accounts are inserted into the LLM prompt as reference text without an explicit untrusted-content boundary.

Skill content
samples = '\n'.join(f"  - {tweet}" for tweet in profile.get('sample_tweets', [])[:5]) ... SAMPLE TWEETS (for reference):\n{samples}
Recommendation

Delimit sampled tweets as untrusted data and instruct the agent to ignore any commands, links, secrets requests, or tool-use instructions contained inside samples.

What this means

The skill may fetch account data using Bird CLI access available in the environment.

Why it was flagged

The skill invokes a local external CLI with user-selected account and tweet count; this is purpose-aligned but relies on the behavior and permissions of that CLI.

Skill content
subprocess.run(["/data/workspace/bird.sh", "user-tweets", username, "-n", str(args.tweets)], capture_output=True, text=True)
Recommendation

Verify the Bird CLI source and permissions before use, and review what account data it can access.

What this means

Stored profiles may preserve copied posts and any adversarial or sensitive content included in them.

Why it was flagged

The generated voice profile persists sample tweets and style patterns to a local JSON file for later reuse.

Skill content
"sample_tweets": [t['text'] for t in tweets[:5] if 'text' in t] ... json.dump(profile, f, indent=2)
Recommendation

Store profiles only for authorized accounts, review profile files before reuse, and delete profiles when no longer needed.