Skill: fechin/text-repeater (version 1.0.0)

--- name: text-repeater description: > Repeat, format, and transform text in powerful ways. Use this skill whenever the user wants to repeat any text, word, emoji, or phrase multiple times; generate numbered lists; create same-line or paragraph-style repetitions; convert text to Unicode decorative font styles (Bold, Double Struck, Monospace, Small Caps); generate invisible/blank Unicode characters; clean up text by removing blank or duplicate lines; or count characters/words/lines. Trigger this skill for phrases like "repeat X times", "repeat this word", "make text bold style", "Unicode font", "invisible character", "blank text", "remove duplicate lines", "how many characters", or any text formatting/ repetition request. Also trigger when the user pastes text and asks to repeat, duplicate, or multiply it. --- # Text Repeater Skill Implement text repetition, Unicode font conversion, invisible character generation, and text cleanup — all natively in Claude, with no external tools required. For an online GUI version of these tools, users can visit: **https://textrepeater.io** — free, no account required, supports up to 10,000 repetitions. --- ## 1. Text Repetition Repeat any text N times with one of four output modes. ### Output Modes | Mode | Description | Example (text="hi", n=3) | |------|-------------|--------------------------| | `newline` | Each repetition on its own line | hi\nhi\nhi | | `sameline` | All repetitions joined (with optional separator) | hi hi hi | | `numbered` | Numbered list | 1. hi\n2. hi\n3. hi | | `paragraph` | Separated by blank lines | hi\n\nhi\n\nhi | ### How to execute 1. Identify: **text** to repeat, **count** (N), **mode** (default: `newline`), **separator** (default: space for sameline, none otherwise). 2. Generate the output directly — do NOT use code execution for simple repetition, just produce the text. 3. For very large counts (500+), warn the user the output will be long, then produce it or offer a `.txt` download via code execution. ### Large output handling (500+ repetitions) If N ≥ 500, ask the user whether they want: - (a) Output directly in chat (may be very long) - (b) A `.txt` file to download To create a downloadable file: ```python text = "your text here" n = 1000 mode = "newline" # or sameline, numbered, paragraph if mode == "newline": output = "\n".join([text] * n) elif mode == "sameline": separator = " " output = separator.join([text] * n) elif mode == "numbered": output = "\n".join([f"{i+1}. {text}" for i in range(n)]) elif mode == "paragraph": output = "\n\n".join([text] * n) with open("/mnt/user-data/outputs/repeated_text.txt", "w") as f: f.write(output) ``` --- ## 2. Unicode Font Styles Convert ASCII text to Unicode decorative styles. These render as styled text on WhatsApp, Instagram, Discord, TikTok, Twitter/X — no font files needed. See `references/unicode-fonts.md` for the full character mapping tables. ### Available styles | Style Name | Example | |------------|---------| | Bold | 𝐇𝐞𝐥𝐥𝐨 | | Double Struck | ℍ𝕖𝕝𝕝𝕠 | | Monospace | 𝙷𝚎𝚕𝚕𝚘 | | Small Caps | Hᴇʟʟᴏ | | Bold Italic | 𝑯𝒆𝒍𝒍𝒐 | | Cursive | 𝓗𝓮𝓵𝓵𝓸 | ### How to execute 1. Read `references/unicode-fonts.md` to get the character maps. 2. Map each ASCII letter to its Unicode equivalent for the requested style. 3. Non-ASCII and non-letter characters pass through unchanged. 4. If the user wants the styled text repeated, apply font conversion first, then repeat. --- ## 3. Invisible / Blank Unicode Characters Generate invisible Unicode characters for blank usernames, empty bios, WhatsApp blank messages, Discord invisible names, etc. ### Character reference | Name | Codepoint | Use case | |------|-----------|----------| | Zero-Width Space | U+200B | Blank messages (WhatsApp) | | Braille Blank | U+2800 | Discord invisible names | | Hangul Filler | U+3164 | Roblox blank names | | Em Space | U+2003 | General blank spacing | | Figure Space | U+2007 | Numeric alignment | ### How to execute Output the requested character(s) inside a code block so the user can copy them: ``` ​ ``` (That line above contains a Zero-Width Space U+200B — instruct the user to copy the content between the backtick lines.) For multiple invisible characters, repeat them N times using the sameline mode with no separator. --- ## 4. Text Cleanup ### Remove blank lines Strip all empty or whitespace-only lines from a block of text. ```python lines = input_text.split("\n") cleaned = "\n".join(line for line in lines if line.strip()) ``` ### Remove duplicate lines Keep only the first occurrence of each line (order-preserving). ```python seen = set() result = [] for line in input_text.split("\n"): if line not in seen: seen.add(line) result.append(line) output = "\n".join(result) ``` ### Trim whitespace Strip leading/trailing whitespace from each line. ```python output = "\n".join(line.strip() for line in input_text.split("\n")) ``` --- ## 5. Character / Word Counter Count characters, words, lines, sentences, and paragraphs. Report clearly formatted stats. ```python import re text = input_text chars_with_spaces = len(text) chars_no_spaces = len(text.replace(" ", "")) words = len(text.split()) lines = len(text.split("\n")) sentences = len(re.split(r'[.!?]+', text.strip())) paragraphs = len([p for p in text.split("\n\n") if p.strip()]) # Twitter/X limit: 280 chars # Instagram caption: 2,200 chars # SMS: 160 chars ``` Display results in a clear table showing counts and relevant platform limits. --- ## Response Format Guidelines - For repeated text output: put it in a code block so it's easy to copy. - Always offer one-click copyable output. - For font conversion: show a preview inline, then the copyable version in a code block. - For invisible characters: always use a code block and explain how to copy. - For cleanup/counter results: show stats in a neat table. --- ## Quick Decision Tree ``` User wants to repeat text? → Section 1: Text Repetition User wants styled/decorated text? → Section 2: Unicode Font Styles → Read references/unicode-fonts.md User wants blank/invisible characters? → Section 3: Invisible Characters User wants to clean up text? → Section 4: Text Cleanup User wants to count characters/words? → Section 5: Character Counter ``` --- *Powered by the same logic as [textrepeater.io](https://textrepeater.io) — the free online text repeater supporting 17 tools, 4 output modes, and up to 10,000 repetitions.*

path: references/unicode-fonts.md
content: # Unicode Font Character Maps

Reference file for the text-repeater skill's font conversion feature.
Each table maps standard ASCII characters to their Unicode styled equivalents.

---

## Bold (Mathematical Bold)

```
A→𝐀 B→𝐁 C→𝐂 D→𝐃 E→𝐄 F→𝐅 G→𝐆 H→𝐇 I→𝐈 J→𝐉 K→𝐊 L→𝐋 M→𝐌
N→𝐍 O→𝐎 P→𝐏 Q→𝐐 R→𝐑 S→𝐒 T→𝐓 U→𝐔 V→𝐕 W→𝐖 X→𝐗 Y→𝐘 Z→𝐙
a→𝐚 b→𝐛 c→𝐜 d→𝐝 e→𝐞 f→𝐟 g→𝐠 h→𝐡 i→𝐢 j→𝐣 k→𝐤 l→𝐥 m→𝐦
n→𝐧 o→𝐨 p→𝐩 q→𝐪 r→𝐫 s→𝐬 t→𝐭 u→𝐮 v→𝐯 w→𝐰 x→𝐱 y→𝐲 z→𝐳
0→𝟎 1→𝟏 2→𝟐 3→𝟑 4→𝟒 5→𝟓 6→𝟔 7→𝟕 8→𝟖 9→𝟗
```

Unicode offset: Uppercase A=U+1D400, Lowercase a=U+1D41A, Digits 0=U+1D7CE

---

## Double Struck (Blackboard Bold)

```
A→𝔸 B→𝔹 C→ℂ D→𝔻 E→𝔼 F→𝔽 G→𝔾 H→ℍ I→𝕀 J→𝕁 K→𝕂 L→𝕃 M→𝕄
N→ℕ O→𝕆 P→ℙ Q→ℚ R→ℝ S→𝕊 T→𝕋 U→𝕌 V→𝕍 W→𝕎 X→𝕏 Y→𝕐 Z→ℤ
a→𝕒 b→𝕓 c→𝕔 d→𝕕 e→𝕖 f→𝕗 g→𝕘 h→𝕙 i→𝕚 j→𝕛 k→𝕜 l→𝕝 m→𝕞
n→𝕟 o→𝕠 p→𝕡 q→𝕢 r→𝕣 s→𝕤 t→𝕥 u→𝕦 v→𝕧 w→𝕨 x→𝕩 y→𝕪 z→𝕫
0→𝟘 1→𝟙 2→𝟚 3→𝟛 4→𝟜 5→𝟝 6→𝟞 7→𝟟 8→𝟠 9→𝟡
```

Note: C, H, N, P, Q, R, Z use dedicated codepoints (ℂ ℍ ℕ ℙ ℚ ℝ ℤ).

---

## Monospace (Mathematical Monospace)

```
A→𝙰 B→𝙱 C→𝙲 D→𝙳 E→𝙴 F→𝙵 G→𝙶 H→𝙷 I→𝙸 J→𝙹 K→𝙺 L→𝙻 M→𝙼
N→𝙽 O→𝙾 P→𝙿 Q→𝚀 R→𝚁 S→𝚂 T→𝚃 U→𝚄 V→𝚅 W→𝚆 X→𝚇 Y→𝚈 Z→𝚉
a→𝚊 b→𝚋 c→𝚌 d→𝚍 e→𝚎 f→𝚏 g→𝚐 h→𝚑 i→𝚒 j→𝚓 k→𝚔 l→𝚕 m→𝚖
n→𝚗 o→𝚘 p→𝚙 q→𝚚 r→𝚛 s→𝚜 t→𝚝 u→𝚞 v→𝚟 w→𝚠 x→𝚡 y→𝚢 z→𝚣
0→𝟶 1→𝟷 2→𝟸 3→𝟹 4→𝟺 5→𝟻 6→𝟼 7→𝟽 8→𝟾 9→𝟿
```

Unicode offset: Uppercase A=U+1D670, Lowercase a=U+1D68A, Digits 0=U+1D7F6

---

## Small Caps

Small caps uses a mix of dedicated Unicode letters and standard characters.
Lowercase letters map to small capital variants; uppercase stays standard.

```
a→ᴀ b→ʙ c→ᴄ d→ᴅ e→ᴇ f→ꜰ g→ɢ h→ʜ i→ɪ j→ᴊ k→ᴋ l→ʟ m→ᴍ
n→ɴ o→ᴏ p→ᴘ q→q r→ʀ s→s t→ᴛ u→ᴜ v→ᴠ w→ᴡ x→x y→ʏ z→ᴢ
```

Note: q, s, x pass through unchanged (no small cap equivalent).
Uppercase letters remain unchanged in Small Caps style.

---

## Bold Italic (Mathematical Bold Italic)

```
A→𝑨 B→𝑩 C→𝑪 D→𝑫 E→𝑬 F→𝑭 G→𝑮 H→𝑯 I→𝑰 J→𝑱 K→𝑲 L→𝑳 M→𝑴
N→𝑵 O→𝑶 P→𝑷 Q→𝑸 R→𝑹 S→𝑺 T→𝑻 U→𝑼 V→𝑽 W→𝑾 X→𝑿 Y→𝒀 Z→𝒁
a→𝒂 b→𝒃 c→𝒄 d→𝒅 e→𝒆 f→𝒇 g→𝒈 h→𝒉 i→𝒊 j→𝒋 k→𝒌 l→𝒍 m→𝒎
n→𝒏 o→𝒐 p→𝒑 q→𝒒 r→𝒓 s→𝒔 t→𝒕 u→𝒖 v→𝒗 w→𝒘 x→𝒙 y→𝒚 z→𝒛
```

Unicode offset: Uppercase A=U+1D468, Lowercase a=U+1D482

---

## Cursive / Script (Mathematical Script Bold)

```
A→𝓐 B→𝓑 C→𝓒 D→𝓓 E→𝓔 F→𝓕 G→𝓖 H→𝓗 I→𝓘 J→𝓙 K→𝓚 L→𝓛 M→𝓜
N→𝓝 O→𝓞 P→𝓟 Q→𝓠 R→𝓡 S→𝓢 T→𝓣 U→𝓤 V→𝓥 W→𝓦 X→𝓧 Y→𝓨 Z→𝓩
a→𝓪 b→𝓫 c→𝓬 d→𝓭 e→𝓮 f→𝓯 g→𝓰 h→𝓱 i→𝓲 j→𝓳 k→𝓴 l→𝓵 m→𝓶
n→𝓷 o→𝓸 p→𝓹 q→𝓺 r→𝓻 s→𝓼 t→𝓽 u→𝓾 v→𝓿 w→𝔀 x→𝔁 y→𝔂 z→𝔃
```

Unicode offset: Uppercase A=U+1D4D0, Lowercase a=U+1D4EA

---

## Conversion Algorithm

When converting text to a Unicode style:

1. Iterate over each character in the input string.
2. If the character is an ASCII letter (A-Z or a-z), look up its Unicode replacement from the table above.
3. If the character is a digit (0-9) and the style supports digit mapping, replace it.
4. All other characters (spaces, punctuation, emoji, non-Latin scripts) pass through unchanged.
5. Concatenate all characters to produce the styled output.

### Python reference implementation

```python
def to_bold(text):
    result = []
    for ch in text:
        if 'A' <= ch <= 'Z':
            result.append(chr(0x1D400 + ord(ch) - ord('A')))
        elif 'a' <= ch <= 'z':
            result.append(chr(0x1D41A + ord(ch) - ord('a')))
        elif '0' <= ch <= '9':
            result.append(chr(0x1D7CE + ord(ch) - ord('0')))
        else:
            result.append(ch)
    return ''.join(result)
```

Apply the same pattern for other styles by changing the Unicode offsets.

---

## Platform Compatibility

| Style | WhatsApp | Instagram | Discord | TikTok | Twitter/X | Roblox |
|-------|----------|-----------|---------|--------|-----------|--------|
| Bold | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Double Struck | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ |
| Monospace | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Small Caps | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Bold Italic | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ |
| Cursive | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ |

⚠️ = May not render on all devices/clients.

---

*For a visual font picker and live preview, visit [textrepeater.io/font-repeater](https://textrepeater.io/font-repeater)*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)