{"repo":"elgar328/nfd2nfc","free":true,"listed":false,"github":"https://github.com/elgar328/nfd2nfc","clone":"git clone https://github.com/elgar328/nfd2nfc.git","description":"macOS NFD/NFC filename converter with TUI, CLI, and background watcher","language":"Rust","stars":170,"topics":["file-watcher","macos","nfc","nfd","unicode-normalization","filename-conversion","tui","cli"],"license":"MIT","category":"cli-tools","readme_excerpt":"nfd2nfc [!NOTE] nfd2nfc is now on homebrew-core! If you previously installed via the tap, see Migration. A macOS tool that watches directories and converts NFD filenames to NFC in real time, ensuring cross-platform compatibility. What is NFD/NFC? Unicode has two main ways to represent composed characters such as Korean Hangul, accented Latin (é, ü, ñ), Japanese kana (が, ぱ), and more: - NFC (Composed): One codepoint per character — 가 = U+AC00 - NFD (Decomposed): Base + combining marks — 가 = U+1100 U+1161 macOS stores filenames in NFD, while Windows and Linux use NFC. This mismatch causes problems when sharing files across platforms: - Hangul syllables appear as decomposed jamo (e.g., 한글 → ㅎㅏㄴㄱㅡㄹ) - Accented characters may render or sort incorrectly - Git sees identical files as untracked or modified - Cloud sync and archive tools fail to match paths nfd2nfc provides an interactive TUI, a scriptable CLI, and a background watcher service that handles conversion automatically. Features - Real-time monitoring — Converts NFD filenames to NFC as soon as they appear - Flexible watch paths — Mix watch / ignore actions with recursive / children modes to control exactly which directories are monitored - Manual conversion — Convert filenames between NFD and NFC, individually or recursively - Log viewer — Review past watcher logs or follow new entries live - Intuitive TUI — Every keybinding is shown on screen, with full mouse support - CLI mode — Script and AI-agent friendly, with --json ","default_branch":null,"files":null,"tree":[],"storefront":"/r/elgar328","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/elgar328/nfd2nfc/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}