Mint your own
npx <you>terminal business card in under a minute.
npx make-npx-cardIn a hurry? Zero prompts, straight from your GitHub profile:
npx make-npx-card --from-github <you> --yesPaper business cards end up in pockets, and pockets end up in washing
machines. Terminal commands end up in muscle memory. This tool scaffolds a
complete, immediately publishable npm package that prints your name, links,
and an interactive menu whenever anyone, anywhere, runs npx your-name.
You answer a few questions. It handles the rendering, the package.json ceremony, the publish pipeline, and an amount of terminal eye candy that is difficult to justify but easy to enjoy.
- GitHub import — type your username and it prefills your name, bio, blog, twitter, and email from your public profile. Respects your time, not your air of mystery.
- Ten themes — Cyberpunk, Synthwave '84, Matrix, Dracula, Catppuccin
Mocha, Gruvbox, Tokyo Night, Nord, Rosé Pine, Hacker Green, plus custom
hex for the uncompromising. Browse with
npx make-npx-card themes, or cycle them live on the preview before shipping. - Live npm registry check — so you don't fall in love with a package name someone claimed in 2016 and abandoned the same afternoon.
- A real preview — the actual card, rendered by the actual renderer, with an edit loop. Nothing touches disk until you approve.
- Quick mode —
--yesscaffolds instantly with sane defaults;--from-github alice,bob,carol --yesmints one card per teammate. --dry-run— prints exactly what would be written, writes nothing.doctor [dir]— health-checks any card: config, bin wiring, deps, template version, and whether your local copy drifted from npm.update [dir]— upgrades an existing card to the latest template without touching your config, then tells you what your card just learned.- git init with a first commit, offered politely; automatic in quick mode.
Every generated card is a real npm package: one config file
(card.config.mjs) holds your data, one runtime (cli.mjs) you never edit.
The runtime knows the following tricks:
| flag | behavior |
|---|---|
| (none) | gradient ASCII name, boot animation, themed box with clickable links (OSC 8), interactive menu |
--serve [port] |
your card is now also a website: an HTTP server with a styled HTML page plus /json, /vcard, /card.svg, /qr |
--stats |
live GitHub stats — stars, a language bar in GitHub's own colors, npx-runs last week, a 14-day activity sparkline |
--qr |
scannable QR code to your site, rendered in the terminal |
--qr contact |
a QR encoding your entire vCard; one scan and you're in their phone contacts |
--vcard |
npx you --vcard > you.vcf — an importable contact file |
--json |
machine-readable output for the pipe-and-jq demographic |
--plain |
no color, no box, no drama; screen-reader and pipeline friendly |
--open <link> |
jump straight to github, web, resume, email, or the guestbook |
--theme <name> |
viewers can re-skin your card in their favorite theme; you may question their taste but not their rights |
--fetch |
a neofetch-style profile view, since you were going to screenshot it anyway |
--party |
the card hue-rotates through the full color wheel, then composes itself |
--matrix |
follow the white rabbit |
--moo |
there is a cow |
Also on the menu: copy-my-email via OSC 52 (works over SSH, where clipboards fear to tread), a guestbook that opens a prefilled GitHub issue, and live stats. Cards greet visitors by time of day and pass no judgment on the 3 a.m. crowd. In a non-TTY they print the card and exit instead of hanging on an invisible prompt — an act of basic decency more CLIs should attempt.
- GitHub Actions publish workflow — tag-triggered, with npm provenance
- VHS demo tape —
vhs demo.taperecords a demo gif of your card - Animated SVG social card — a terminal window that types
$ npx youwith a blinking cursor, live inside GitHub READMEs - Profile README snippet — paste-ready embed for
github.com/you/you
your-name/
├── cli.mjs # the card runtime — you never touch this
├── card.config.mjs # ALL your data — edit anytime
├── package.json # bin + shebang + files: publish-ready
├── card.svg # animated README/profile embed
├── demo.tape # vhs demo.tape → demo.gif
├── profile-snippet.md # paste into your GitHub profile README
├── .github/workflows/publish.yml # npm version patch && git push --follow-tags
├── README.md · LICENSE · .gitignore
Then:
cd your-name
npm install
node cli.mjs # preview
npm login # once
npm publish # congratulations, you are now infrastructureFrom that point on, anyone with Node and a pulse can run npx your-name.
Edit card.config.mjs (colors, links, bigName, animate, menu), then
npm run pub. Card published from an older template? npx make-npx-card update inside its folder pulls in every new flag while leaving your config
alone. When in doubt, npx make-npx-card doctor.
Node 18 or newer. A terminal. Mild vanity.
Open a PR and add yours.
npx shwetank
MIT. The cards it generates are also MIT, in your name — we're not monsters.