Nix-config icon-lookup
install
source · Clone the upstream repo
git clone https://github.com/malob/nix-config
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/malob/nix-config "$T" && mkdir -p ~/.claude/skills && cp -r "$T/configs/claude/plugins/pua-unicode/skills/icon-lookup" ~/.claude/skills/malob-nix-config-icon-lookup && rm -rf "$T"
manifest:
configs/claude/plugins/pua-unicode/skills/icon-lookup/SKILL.mdsource content
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:
(without the spaces){{ U+E0A0 }} - By name:
(without the spaces){{ nf-fa-star }}
Icon Lookup
Search for icons by name:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/lookup-icon.py "<search query>"
Example searches:
→ finds git-related iconsgit branch
→ finds folder/directory iconsfolder
→ finds wizard iconswizard
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