Skip to content
Back to skills

distill

ASecurity

Generate a celebrity/persona distillation skill by scraping their X (Twitter) account and analyzing their thinking patterns, communication style, and mental models.

  • 16 stars
  • 0 votes
  • 0 copies
  • 21 views
  • Added May 28, 2026
toolsgoshellbashexpressapi

Works with

  • claude code
  • cursor
  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned May 28, 2026

npx -y skills add dokobot/distill-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of distill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for distill
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/dokobot-distill/badge)](https://www.skillsdirectory.com/skills/dokobot-distill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: distill
description: >-
  Generate a celebrity/persona distillation skill by scraping their X (Twitter)
  account and analyzing their thinking patterns, communication style, and mental models.
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, WebSearch
user-invocable: true
emoji: "🧬"
---

# Distill β€” Celebrity Persona Distillation

Scrape any X (Twitter) account using the Dokobot CLI, analyze the person's tweets,
and generate a structured persona SKILL.md that captures their thinking patterns,
communication style, mental models, and decision heuristics.

Works with any AI agent that can run shell commands: Claude Code, Cursor, Windsurf, Codex, OpenClaw, etc.

**Prerequisites**: [Dokobot CLI](https://dokobot.ai) (`npm i -g dokobot`), Chrome with Dokobot extension, native bridge (`npx dokobot install-bridge`).

**Usage**: `/distill <x_handle_or_url> [--screens N] [--output PATH] [--lang zh|en]`

Arguments: $ARGUMENTS

## Parameters

- `x_handle_or_url` (required): X handle (e.g. `@elonmusk` or `elonmusk`) or full URL (e.g. `https://x.com/elonmusk`)
- `--screens N`: Number of screens to scroll on the profile page (default: 10, more = more tweets collected)
- `--output PATH`: Output directory for the generated SKILL.md (default: current working directory)
- `--lang zh|en`: Output language β€” `zh` for Chinese, `en` for English (default: auto-detect from the person's primary language)

## Workflow

Follow these steps **exactly in order**. Do NOT skip steps or combine them.

### Step 1: Parse Input

Extract the X handle from the arguments:
- If a URL like `https://x.com/username` or `https://twitter.com/username` β†’ extract `username`
- If `@username` β†’ extract `username`
- If bare `username` β†’ use as-is

Set defaults:
- `screens` = 10 (or from `--screens`)
- `output` = current working directory (or from `--output`)
- `lang` = auto (or from `--lang`)

### Step 2: Scrape X Profile

```bash
npx dokobot doko read "https://x.com/<USERNAME>" --local --screens <SCREENS> --timeout 600 > /tmp/distill-raw-<USERNAME>.txt
```

### Step 3: Continue Scrolling (if needed)

If the output contains `Session:` with an ID, continue reading:

```bash
npx dokobot doko read "https://x.com/<USERNAME>" --local --session-id <SESSION_ID> --screens 10 --timeout 600 >> /tmp/distill-raw-<USERNAME>.txt
```

Repeat up to 3 times or until you have enough material (~50+ tweets).

### Step 4: Save Tweets to Separate File

Extract all tweets by this person from the raw data and save to `<OUTPUT>/<username>-skill/tweets.md`:

```markdown
# @<username> Tweets

> Source: https://x.com/<username>
> Scraped: <ISO_DATE>
> Screens: <N>

## Original Tweets

### <N>. <date>
<tweet text>

Likes: <N> | Reposts: <N> | Views: <N>

---

## Retweets & Engagement

List the accounts/tweets this person retweeted or quote-tweeted, grouped by theme.
```

Only include tweets authored by `@<USERNAME>` in "Original Tweets". Retweeted content goes in "Retweets & Engagement".

### Step 5: Web Search for Context (optional)

Append results to `tweets.md` under a `## Background Context` section.

```bash
npx dokobot doko read "https://en.wikipedia.org/wiki/<PERSON_NAME>" --local --screens 5 --timeout 300
```

### Step 6: Analyze and Distill

From `tweets.md`, extract:

- **Profile Summary**: name, handle, bio, domain, follower count, posting frequency
- **Core Mental Models** (3-7): recurring thinking frameworks with example tweets
- **Decision Heuristics** (3-8): rules of thumb with application context
- **Expression DNA**: sentence style, vocabulary, tone, rhetorical devices, quirks
- **Core Topics**: themes with approximate frequency
- **Signature Quotes**: 5-10 most representative

### Step 7: Generate SKILL.md

Generate `<OUTPUT>/<username>-skill/SKILL.md`:

```markdown
---
name: <username>-persona
description: >-
  AI persona capturing the thinking patterns, decision frameworks, and communication
  style of <Full Name> (@<username>). Distilled from their X/Twitter presence.
emoji: "🎭"
metadata:
  author: dokobot-distill
  version: "1.0.0"
  source: "https://x.com/<username>"
  distilled_at: "<ISO_DATE>"
  tweets_analyzed: <COUNT>
---

# <Full Name> β€” AI Persona

<One paragraph bio>

## Activation Triggers

- "<Name>δΌšζ€ŽδΉˆηœ‹" / "What would <Name> think"
- "用<Name>ηš„θ§†θ§’" / "From <Name>'s perspective"
- "εˆ‡ζ’εˆ°<Name>樑式" / "Switch to <Name> mode"

## Source Material

Raw tweets and engagement data are in [tweets.md](tweets.md).

## Core Mental Models

### 1. <Model Name>
<Description β€” reference tweets by number, e.g. "see tweet #3">

(NO inline tweet quotes β€” reference tweets.md)

## Decision Heuristics

| # | Heuristic | Rule | When to Apply |
|---|-----------|------|---------------|
| 1 | <Name> | <Rule> | <Context> |

## Expression DNA

### Voice Characteristics
- **Sentence style**: <description>
- **Vocabulary**: <description>
- **Tone**: <description>
- **Rhetorical devices**: <description>
- **Quirks**: <description>

### Communication Rules
1. <Rule 1>
2. <Rule 2>

## Core Topics
<Bulleted list with estimated frequency>

## Operational Protocol

1. **Read** tweets.md to refresh on this persona's voice
2. **Classify** the user's question
3. **Select** relevant mental models
4. **Draft** response applying Expression DNA rules
5. **Verify** authenticity against tweets.md
6. Search for current data if factual claims are needed
```

### Step 8: Report to User

1. Show the output file path
2. Brief summary (tweets analyzed, key models found)
3. Suggest how to use: add SKILL.md to your agent's instructions

## Error Handling

- If connection fails: ensure Chrome is open with Dokobot extension, and native bridge is installed (`npx dokobot install-bridge`)
- If no tweets returned: check if the handle is correct or if the account is private

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.