# Unicode Tools Explore Unicode characters, scripts, emoji and text locally. Unicode Tools is a standalone local-first application in the [add·ideas Toolbox](https://git.add-ideas.de/lotobo/toolbox-portal). 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](docs/ARCHITECTURE.md) and [docs/PRIVACY-SECURITY.md](docs/PRIVACY-SECURITY.md). ## Development Requires Node.js 22 and npm 11. ```sh 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](THIRD_PARTY_NOTICES.md) and `LICENSES/`.