← Back to Skills
Media

x-voice-match

gravyxbt By gravyxbt 👁 8 views ▲ 0 votes

Analyze a Twitter/X account's posting style and generate

GitHub
---
name: x-voice-match
description: Analyze a Twitter/X account's posting style and generate authentic posts that match their voice. Use when the user wants to create X posts that sound like them, analyze their posting patterns, or maintain consistent voice across posts. Works with Bird CLI integration.
---

# X Voice Match

Analyze Twitter/X accounts to extract posting patterns and generate authentic content that matches the account owner's unique voice.

## Quick Start

**Step 1: Analyze the account**
```bash
cd /data/workspace/skills/x-voice-match
python3 scripts/analyze_voice.py @username [--tweets 50] [--output profile.json]
```

**Step 2: Generate posts**
```bash
python3 scripts/generate_post.py --profile profile.json --topic "your topic" [--count 3]
```

Or use the all-in-one approach:
```bash
python3 scripts/generate_post.py --account @username --topic "AI agents taking over" --count 5
```

## What It Analyzes

The skill extracts:

- **Length patterns**: Tweet character counts, thread usage, one-liner vs paragraph style
- **Tone markers**: Humor style, sarcasm, self-deprecation, edginess level
- **Topics**: Crypto, AI, tech, memes, personal life, current events
- **Engagement patterns**: QT vs original, reaction tweets, conversation starters
- **Language patterns**: Specific phrases, slang, emoji usage, punctuation style
- **Content types**: Observations, hot takes, memes, threads, questions, personal stories

## Output Format

### Voice Profile (JSON)
```json
{
  "account": "@gravyxbt_",
  "analyzed_tweets": 50,
  "patterns": {
    "avg_length": 85,
    "length_distribution": {"short": 0.6, "medium": 0.3, "long": 0.1},
    "uses_threads": false,
    "humor_style": "self-deprecating, ironic",
    "topics": ["crypto", "AI agents", "memes", "current events"],
    "engagement_type": "reactive QT heavy",
    "signature_phrases": ["lmao", "fr", "based"],
    "emoji_usage": "minimal, strategic",
    "punctuation": "lowercase, casual"
  }
}
```

### Generated Posts
Returns 1-N posts with confidence scores and reasoning.

## Integration with Existing Tools

Works with Bird CLI (`/data/workspace/bird.sh`):
```bash
# Fetch fresh tweets for analysis
./bird.sh user-tweets @gravyxbt_ -n 50 > recent_tweets.txt
python3 scripts/analyze_voice.py --input recent_tweets.txt
```

## Post Type Templates

See [references/post-types.md](references/post-types.md) for common X post frameworks:
- Observations
- Hot takes
- Self-deprecating humor
- Crypto commentary
- Reaction posts
- Questions

## Advanced Usage

### Update Voice Profile
Re-analyze periodically to capture style evolution:
```bash
python3 scripts/analyze_voice.py @username --update profile.json
```

### Generate by Post Type
```bash
python3 scripts/generate_post.py --profile profile.json --type "hot-take" --topic "crypto"
```

### Batch Generation
```bash
python3 scripts/generate_post.py --profile profile.json --batch topics.txt --output posts.json
```

## Workflow

1. **First time**: Run full analysis on 30-50 tweets
2. **Generate posts**: Provide topic, get 3-5 style-matched options
3. **User picks**: Select best option or iterate with feedback
4. **Periodic updates**: Re-analyze monthly or after major voice shifts

## Tips

- **Minimum tweets**: 30 tweets for basic analysis, 50+ for accuracy
- **Recency matters**: Recent tweets reflect current style better than old ones
- **Topic relevance**: Generated posts work best on topics the account normally covers
- **Confidence scores**: <70% = may not sound authentic, revise or regenerate
media

Comments

Sign in to leave a comment

Loading comments...