Client-side EDID viewer and editor.
The project is a continuation of goedid.
The project has two layers:
- edidts (
packages/edidts/) — the core: a framework-agnostic TypeScript library (an npm workspace package) that owns all EDID, CTA-861, and DisplayID decoding and encoding. The data model is byte-oriented: each format class parses aUint8Arrayvia a staticdecode()and serializes back via a staticencode().EEDIDis the top-level container,EDIDis the 128-byte base block, and the per-spec extension types (CTA-861, DisplayID, VTB, Block Map) live alongside. - Vue app (
src/) — the editor UI built on top of the library. View components mirror the data model, mutations bind directly to the reactiveEEDIDtree, and a single computed re-encodes the bytes after every edit.
- Being able to visualise EDID, CEA and DisplayID
- Being able to edit key aspects of EDID, CEA and DisplayID
npm run dev # start the Vite development server
npm run build # type-check with vue-tsc and build for production
npm run preview # preview the production build locallyThe edidts package has its own scripts, run from packages/edidts/:
npm run build # type-check with tsc and build with Vite
npx vitest run # run the library's test suitenpm test # run the Vue app + edidts test suites (in-module fixtures only)
npm run test:corpus # run the edidts corpus tests against the linuxhw/EDID collectionThe corpus run exercises the parser against the ~175k real EDIDs in linuxhw/EDID. That collection is not tracked in this repo — clone it locally (one-time, ~5 GB) where the loader reads from:
git clone --depth=1 https://github.com/linuxhw/EDID.git packages/edidts/tests/fixtures-linuxhwThe packages/edidts/tests/fixtures-linuxhw/ directory (and a root tests/
checkout) is gitignored. If the directory is absent the loader silently skips it
and falls back to the in-module fixtures, so CI and fresh clones see no change.
To run a deterministic sample instead of the full corpus, set EDID_FIXTURE_LIMIT
(see packages/edidts/README.md for details).
Vue 3 (Composition API), Vite 7, TypeScript 5.9, Tailwind CSS v4, shadcn-vue, @vueuse/core, reka-ui, Vitest.