mcpbeat

Icon Lookup

malob/icon-lookup

>- Workaround for Claude Code filtering BMP PUA Unicode (U+E000-U+F8FF). Supplementary PUA Nerd Font icons like 󰊤 󱃾 󰁹 (U+F0000+, e.g. nf-md-github, nf-md-kubernetes, nf-md-battery) can be written directly. BMP PUA icons (Powerline, Font Awesome, Devicons) require placeholder syntax like {{ U+E0A0 }} or {{ nf-fa-star }} (without spaces), which hooks auto-convert. Invoke when reading or writing Starship configs, tmux themes, shell prompts, or statuslines.

701 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
458
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/malob/nix-config --skill icon-lookup

The instruction itself

8 sections, as written by the author

BMP PUA Unicode Workaround

Claude Code filters Unicode characters in the BMP Private Use Area (U+E000-U+F8FF), which includes most Nerd Font icons. This skill provides tools for working with these icons.

Quick Reference

| Range | Status | Examples |

| ------------------------------ | ------------------------------- | ------------------------------------------- |

| U+E000-U+F8FF (BMP PUA) | Filtered - use placeholders | Powerline, Devicons, Font Awesome, Octicons |

| U+F0000+ (Supplementary PUA-A) | Works directly | Material Design Icons (nf-md-*) |

Automatic Features

When reading files: A PostToolUse hook automatically identifies all PUA characters, showing icon names, codepoints, and whether they're filtered.

When writing files: A PostToolUse hook automatically converts placeholder syntax to actual Unicode characters.

Placeholder Syntax

When writing icons in the filtered BMP PUA range, use placeholder syntax:

  • By codepoint: {{ U+E0A0 }} (without the spaces)
  • By name: {{ nf-fa-star }} (without the spaces)

Icon Lookup

Search for icons by name:

python3 ${CLAUDE_PLUGIN_ROOT}/scripts/lookup-icon.py "<search query>"

Example searches:

  • git branch → finds git-related icons
  • folder → finds folder/directory icons
  • wizard → finds wizard icons

Character Identification

Identify a specific character:

# Direct argument (this is nf-md-battery, a Supplementary PUA icon)
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/identify-icons.py -c "󰁹"

# From stdin
echo "󰁹" | python3 ${CLAUDE_PLUGIN_ROOT}/scripts/identify-icons.py -

Workflow

  • Reading files - Hook automatically shows icon info; use this to understand what icons are present
  • Writing icons - Search with lookup script, then use placeholder syntax for filtered icons
  • Comparing icons - Use identify script to check if two characters are the same icon
  • Material Design Icons (U+F0000+) can be written directly without placeholders

Manual Conversion

If placeholders weren't converted (e.g., hook didn't run):

${CLAUDE_PLUGIN_ROOT}/scripts/convert-placeholders.py /path/to/file

How to use it

Copy the folder

Take malob/icon-lookup from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.