mateusz
v1.0.0
Published
Interaktywne CV Mateusza Daniluka w terminalu — npx mateusz --info
Maintainers
Readme
mateusz
Mateusz Daniluk's interactive CV, right in your terminal. Zero dependencies, pure ANSI, elegant colors. Language (EN/PL) is auto-detected from your system.
Polska wersja niżej ⬇️ — Polski.
npx mateusz --infoLanguage
The language is chosen from your system locale (LANG / LC_ALL /
LC_MESSAGES): pl_* → Polish, anything else → English. You can force it:
npx mateusz --en # or --lang en
npx mateusz --pl # or --lang plOptions
| Command | What it does |
| ------------------------ | ---------------------------------- |
| npx mateusz | show the CV (default) |
| npx mateusz -i | same, explicit (--info) |
| npx mateusz --lang xx | force language: en / pl |
| npx mateusz --light | palette for a light background |
| npx mateusz --dark | palette for a dark background |
| npx mateusz --rainbow | animated rainbow colors |
| npx mateusz --animation | calm 3D Braille terrain behind the CV |
| npx mateusz --json | CV data as JSON |
| npx mateusz --plain | no colors (or NO_COLOR=1) |
| npx mateusz -v | version (--version) |
| npx mateusz -h | help (--help) |
Local development
Try node index.js --en --rainbow --dark for animated rainbow colors.
Use ↑/↓ or PgUp/PgDn to scroll, and Enter, Esc, q or Ctrl+C to exit. Animation runs
in an interactive terminal; redirected output gets one rainbow frame.
--rainbow overrides NO_COLOR and TERM=dumb; --plain disables the effect.
3D terrain
node index.js --en --animationA procedural wireframe surface rendered with Unicode Braille: perspective, overlapping waves, surface lighting, distance fog and sparse floating particles. The CV stays still and readable in the center, with more geometry at the sides and bottom. A dark canvas is part of this mode; a wide terminal shows more of the landscape. Narrow windows reflow the CV text.
Use ↑/↓, PgUp/PgDn or Home/End to scroll; Enter, Esc, q or Ctrl+C to exit.
The renderer targets 30 fps and waits for each write to finish before sending
another frame. No dependencies, browser or GPU required.
--animation preserves the normal CV colors. Add --rainbow to animate the
text and terrain colors: node index.js --en --animation --rainbow. Terrain
lighting and the dimmed area behind the text are preserved. Both modes override
NO_COLOR; --plain disables animation. --json still exports CV data.
Redirected output prints the normal CV.
node index.js --info # run locally
npm test # quick sanity checkAll CV data lives in the CV object at the top of index.js — the only place
you edit. Fields written as { pl, en } are translated; plain strings are shared
across both languages.
PDF export
The PDF captures a still frame of --animation: the actual English terminal
output, frame, spacing, colors and Menlo font over the procedural 3D background.
The runnable command appears at the top. It uses one long page so no terminal
rows are split or shrunk to fit A4. Text stays selectable; the Braille background
is vector geometry that does not interfere with text extraction.
On macOS (requires Python, ReportLab and the system Menlo font):
uv run --with reportlab python scripts/export-pdf.pyOutput: output/pdf/Mateusz-Daniluk-CV-EN.pdf. CV content comes directly from
index.js; rerun after editing. The terminal command in the PDF uses the public
npm package, which must be published separately to reflect local changes.
Publishing to npm
So that npx mateusz works for everyone, publish the package:
npm login
npm publish # the name "mateusz" must be free on npmIf
mateuszis taken, use a scope: changenameinpackage.jsonto@your-login/mateuszand runnpm publish --access public.
License
MIT
Polski
Interaktywne CV Mateusza Daniluka prosto w terminalu. Zero zależności, czyste ANSI, eleganckie kolory. Język (PL/EN) wykrywany automatycznie z systemu.
npx mateusz --infoJęzyk
Język wybierany jest na podstawie locale systemu (LANG / LC_ALL /
LC_MESSAGES): pl_* → polski, wszystko inne → angielski. Można wymusić:
npx mateusz --pl # albo --lang pl
npx mateusz --en # albo --lang enOpcje
| Komenda | Działanie |
| ------------------------ | ---------------------------------- |
| npx mateusz | pokaż CV (domyślnie) |
| npx mateusz -i | to samo, jawnie (--info) |
| npx mateusz --lang xx | wymuś język: pl / en |
| npx mateusz --light | paleta pod jasne tło |
| npx mateusz --dark | paleta pod ciemne tło |
| npx mateusz --rainbow | animowane kolory tęczy |
| npx mateusz --animation | spokojne tło 3D renderowane Braille'em |
| npx mateusz --json | dane CV w formacie JSON |
| npx mateusz --plain | bez kolorów (lub NO_COLOR=1) |
| npx mateusz -v | wersja (--version) |
| npx mateusz -h | pomoc (--help) |
Rozwój lokalny
Uruchom node index.js --pl --rainbow --dark, aby zobaczyć animowaną tęczę.
Przewijaj ↑/↓ lub PgUp/PgDn; wyjdź przez Enter, Esc, q lub Ctrl+C. Animacja działa
w interaktywnym terminalu; przekierowanie wypisuje jedną tęczową klatkę.
--rainbow ma pierwszeństwo przed NO_COLOR i TERM=dumb; --plain wyłącza efekt.
Tło 3D
node index.js --pl --animationProceduralna siatka renderowana znakami Unicode Braille: perspektywa, nakładające się fale, oświetlenie powierzchni, mgła w oddali i pojedyncze unoszące się cząstki. CV pozostaje nieruchome i czytelne pośrodku, a geometria jest lepiej widoczna po bokach i na dole. Ten tryb ma własne ciemne tło. Szerokie okno pokazuje więcej krajobrazu; w wąskim oknie tekst CV zawija się do dostępnej szerokości.
Przewijanie: ↑/↓, PgUp/PgDn lub Home/End. Wyjście: Enter, Esc, q lub Ctrl+C.
Renderer celuje w 30 klatek/s i czeka na zakończenie zapisu poprzedniej klatki.
Bez zależności, przeglądarki i GPU.
--animation zachowuje zwykłe kolory CV. Dodaj --rainbow, aby animować także
kolory tekstu i powierzchni 3D: node index.js --pl --animation --rainbow.
Oświetlenie i przyciemnienie pod tekstem zostają zachowane. Oba tryby mają
pierwszeństwo przed NO_COLOR; --plain wyłącza animację. --json nadal
eksportuje dane CV. Przekierowanie wypisuje zwykłe CV.
node index.js --info # uruchom lokalnie
npm test # szybki sanity checkWszystkie dane CV są w obiekcie CV na górze index.js — to jedyne miejsce do
edycji. Pola zapisane jako { pl, en } są tłumaczone; zwykłe stringi są wspólne
dla obu języków.
Publikacja na npm
Aby npx mateusz zadziałało dla wszystkich, opublikuj paczkę:
npm login
npm publish # nazwa "mateusz" musi być wolna na npmJeśli nazwa
mateuszjest zajęta, użyj scope: zmieńnamewpackage.jsonna@twoj-login/mateuszi opublikujnpm publish --access public.
Licencja
MIT
