3.0 KiB
Unicode Tools
Explore Unicode characters, scripts, emoji and text locally.
Unicode Tools is a standalone local-first application in the add·ideas Toolbox. Inputs are processed in the browser and are not uploaded.
Version 0.2.0 scope
- Search 159,866 assigned Unicode scalar records by official name, alias, literal character, or code point, with script, block and category filters.
- Traverse any block or hexadecimal range in a 16-column virtualized code chart with roving keyboard navigation and property cards. Only visible rows are materialized, including when the entire U+0000–U+10FFFF space is open.
- Browse and copy 3,952 fully-qualified emoji and components, inspect named sequences, open practical symbol collections, and construct bounded presentation-selector, skin-tone and ZWJ variants without claiming RGI validity or font support.
- Inspect text as Unicode scalar values, UTF-16 positions, UTF-8 bytes, JavaScript and HTML escapes, and browser-segmented grapheme clusters with emoji/ZWJ/variation/modifier/flag/keycap/tag evidence.
- Decode lists of hexadecimal scalar values and compare NFC, NFD, NFKC and NFKD normalization without losing sight of the original value.
- Compute UTS #39 confusable skeletons, compare skeleton collisions, display pinned Identifier_Status/Identifier_Type evidence, and flag mixed scripts, controls, default ignorables, combining repetition and non-NFC text as review signals rather than security verdicts.
- Inspect character properties and optionally load selected Unihan readings, definitions and radical/stroke fields for Han ideographs.
- Download an auditable source-identity report for every pinned data input.
The catalog is generated from checksum-pinned Unicode Consortium 17.0 data. It does not scrape or redistribute descriptions, artwork, or annotations from Symbl or another symbol website. Unassigned scalars, private-use scalars, permanently reserved noncharacters and UTF-16 surrogate code units are labelled as distinct chart states; none is presented as an assigned character. Lone surrogate copy is disabled because a surrogate is not a Unicode scalar value.
The application treats every input as untrusted, applies explicit resource limits, and never interprets text as active content. The checked-in catalog can be regenerated only after each upstream file matches its recorded SHA-256. See docs/ARCHITECTURE.md and docs/PRIVACY-SECURITY.md.
Development
Requires Node.js 22 and npm 11.
npm ci
npm run data:generate # optional, requires the pinned upstream files or network
npm run check
npm run test:browser
Release
npm run release:artifact creates a deterministic release/unicode-tools-0.2.0.zip and checksum sidecar.
Licence
Application code is GPL-3.0-or-later. Unicode data and documentation are used
under Unicode-3.0; runtime dependencies retain their own licences. See
THIRD_PARTY_NOTICES.md and LICENSES/.