npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mateusz

v1.0.0

Published

Interaktywne CV Mateusza Daniluka w terminalu — npx mateusz --info

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 --info

Language

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 pl

Options

| 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 --animation

A 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 check

All 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.py

Output: 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 npm

If mateusz is taken, use a scope: change name in package.json to @your-login/mateusz and run npm 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 --info

Ję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 en

Opcje

| 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 --animation

Proceduralna 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 check

Wszystkie 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 npm

Jeśli nazwa mateusz jest zajęta, użyj scope: zmień name w package.json na @twoj-login/mateusz i opublikuj npm publish --access public.

Licencja

MIT