fix-nerd-fonts
Verify and fix Nerd Font icons after editing files.
Skill by shannonshell
Chalk Labs
Need help deploying fix-nerd-fonts?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/shannonshell-fix-nerd-fonts
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fix-nerd-fonts
What's inside
- Skill name
fix-nerd-fonts- Description
- Verify and fix Nerd Font icons after editing files. Use whenever writing or editing a file that contains Nerd Font characters (Private Use Area codepoints).
- License
- MIT
- Instructions
- 126 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Fix Nerd Fonts
Nerd Font icons use Unicode Private Use Area codepoints (U+E000-U+F8FF and
U+F0000-U+10FFFF). The Write and Edit tools may silently strip or corrupt these
characters. This skill ensures they survive every edit.
## When This Skill Applies
**After every Write or Edit to a file that contains Nerd Font icons.** Currently
the known files are:
| File | Icons |
| ------------------------------- | -------------------------------------------------------------------------------------------- |
| `tui/src/main.rs` | nf-md-web (U+F059F), nf-fa-keyboard_o (U+F11C), nf-fa-user (U+F007) |
| `issues/0504-web-tui/README.md` | nf-md-web (U+F059F), nf-fa-keyboard_o (U+F11C), nf-fa-user (U+F007), nf-md-refresh (U+F0450) |
Update this table when new files or icons are added.
## The Problem
The Write and Edit tools transmit file content as text. Characters in the
Private Use Area — especially Supplementary Private Use Area codepoints above
U+FFFF — may be silently dropped, replaced with replacement characters, or
truncated. The file saves without error, but the icons are gone.
This is invisible in diffs and code review because the missing character leaves
no trace — just an empty string where the icon was.
## Step 1: Verify Icons
After any edit, run the verification script:
```bash
python3 -c "
src = open('<file_path>').read()
icons = {
'nf-md-web (U+F059F)': '\U000F059F',
'nf-fa-keyboard_o (U+F11C)': '\uF11C',
'nf-fa-user (U+F007)': '\uF007',
'nf-md-refresh (U+F0450)': '\U000F0450',
}
for name, char in icons.items():
if char in src:
print(f' OK {name}')
else:
print(f' MISSING {name}')
"
```
Adjust the icon list to match what the file should contain.
## Step 2: Fix Missing Icons
If any icon is missing, use the placeholder-and-replace pattern:
1. **In the Edit tool**, use a unique ASCII placeholder string where the icon
should go (e.g., `PLACEHOLDER_WEB`, `PLACEHOLDER_KEYBOARD`).
2. **Then run Python** to replace the placeholder with the real Unicode
character:
```bash
python3 -c "
src = open('<file_path>').read()
src = src.replace('PLACEHOLDER_WEB', '\U000F059F')
src = src.replace('PLACEHOLDER_KEYBOARD', '\uF11C')
src = src.replace('PLACEHOLDER_USER', '\uF007')
src = src.replace('PLACEHOLDER_REFRESH', '\U000F0450')
open('<file_path>', 'w').write(src)
"
```
## Step 3: Verify Again
Re-run the verification script from Step 1 to confirm all icons are present.
## Python Escape Syntax
Codepoints at or below U+FFFF use `\uXXXX`:
```python
'\uF11C' # U+F11C (nf-fa-keyboard_o)
'\uF007' # U+F007 (nf-fa-user)
```
Codepoints above U+FFFF use `\U00XXXXXX` (8 hex digits, zero-padded):
```python
'\U000F059F' # U+F059F (nf-md-web)
'\U000F0450' # U+F0450 (nf-md-refresh)
```
Using `\uF059F` for a codepoint above U+FFFF is **wrong** — Python interprets it
as `\uF059` + literal `F`, producing a garbage character.
## Rule: Always Use Unicode Escape Syntax in Source Code
**NEVER embed raw Nerd Font bytes in source code.** Always use the language's
Unicode escape syntax. Raw UTF-8 bytes are silently corrupted by text editors,
LLM tools, clipboard operations, and diff/patch workflows. Unicode escapes are
pure ASCII and survive any tool chain.
| Language | Syntax | Example (U+F007) | Example (U+F059F) |
| ---------- | ----------------------- | ---------------- | ----------------- |
| Rust | `\u{XXXX}` | `"\u{F007}"` | `"\u{F059F}"` |
| Zig | `\u{XXXX}` | `"\u{F007}"` | `"\u{F059F}"` |
| Python | `\uXXXX` / `\U00XXXXXX` | `'\uF007'` | `'\U000F059F'` |
| C/C++ | `\uXXXX` / `\UXXXXXXXX` | `u8"\uF007"` | `u8"\U000F059F"` |
| Swift | `\u{XXXX}` | `"\u{F007}"` | `"\u{F059F}"` |
| JavaScript | `\u{XXXX}` | `"\u{F007}"` | `"\u{F059F}"` |
**When editing a file that contains raw Nerd Font bytes**, convert them to
Unicode escapes as part of the edit. Use `xxd` or `python3` to identify the
codepoint, then replace the raw bytes with the appropriate escape.
## Adding New Icons
When introducing a new Nerd Font icon to the project:
1. Add the icon name, codepoint, and file to the table in this skill.From shannonshell/shannon, MIT.
More from shannonshell/shannon
- 0.547score
codex-review
shannonshell
Ask Codex to review Shannon work.
SkillCFreshness: C★ 11Claude Code +9 - 0.543score
claude-review
shannonshell
Ask Claude to review Shannon work.
SkillCFreshness: C★ 11Claude Code +9 - 0.541score
research-open-source
shannonshell
Use the local copies of each repo when doing research.
SkillCFreshness: C★ 11Claude Code +9 - 0.541score
create-skill
shannonshell
Create a new agent skill.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
adversarial-review
shannonshell
Run an in-session adversarial review of Shannon work using a fresh-context reviewer.
SkillCFreshness: C★ 11Claude Code +9 - 0.537score
debug-logs
shannonshell
Store all debug logs in ~/dev/shannon/logs/.
SkillCFreshness: C★ 11Claude Code +9 - 0.536score
format-rust
shannonshell
Format Rust files with cargo fmt.
SkillCFreshness: C★ 11Claude Code +9 - 0.536score
format-markdown
shannonshell
Format markdown files with prettier.
SkillCFreshness: C★ 11Claude Code +9 - 0.536score
format-zig
shannonshell
Format Zig files with zig fmt.
SkillCFreshness: C★ 11Claude Code +9 - 0.533score
commit
shannonshell
Write entertaining commit messages as poetry
SkillCFreshness: C★ 11Claude Code +9 - 0.528score
merge-upstream
shannonshell
Merge new upstream releases of nushell and reedline into Shannon
SkillCFreshness: C★ 11Claude Code +9
Signals
- Stars
- 11
- Forks
- 1
- Open issues
- 3
- Last commit (this folder)
- Jun 20, 2026 (4 months ago)
- Last release
- Jun 20, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/shannonshell/shannon
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from shannonshell
- 0.547score
codex-review
shannonshell
Ask Codex to review Shannon work.
SkillCFreshness: C★ 11Claude Code +9 - 0.543score
claude-review
shannonshell
Ask Claude to review Shannon work.
SkillCFreshness: C★ 11Claude Code +9 - 0.541score
create-skill
shannonshell
Create a new agent skill.
SkillCFreshness: C★ 11Claude Code +9 - 0.541score
research-open-source
shannonshell
Use the local copies of each repo when doing research.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
adversarial-review
shannonshell
Run an in-session adversarial review of Shannon work using a fresh-context reviewer.
SkillCFreshness: C★ 11Claude Code +9 - 0.537score
debug-logs
shannonshell
Store all debug logs in ~/dev/shannon/logs/.
SkillCFreshness: C★ 11Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get fix-nerd-fonts running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
fix-nerd-fonts skill. Agent Mart. https://agentmart.dev/skills/shannonshell-fix-nerd-fonts (last updated 2026-10-24)