npm namespaces Digital Business Card
One introduction, shaped by who's asking.

- Role
- Product · Interaction · Engineering
- Timeline
- May 21–22, 2026
- Shipped
- v1.3.1 · 4 audience views
- Stack
- Node.js · ANSI terminal UI · npm
I turned an npm package name into a terminal business card that lets recruiters, engineers, hiring managers, and product teams take a shorter route to relevant work.
- Make a package name usefulA single command became an entry point to relevant work.See the premise
- Let visitors choose their routeFour audience views change the introduction, proof, and links.Explore the routes
- Keep the CLI self-containedOne dependency-free package works in interactive and noninteractive runs.See what shipped
- Keep one clear entry pointOne active command simplifies discovery, even with alternate names to maintain.Read the trade-off
01 · Context
A package name should lead somewhere useful.
I began by reserving personal npm names and asked what someone would find if they ran one. A placeholder would make the name a dead end, while a small terminal profile could turn that moment of curiosity into an introduction and a route to the work behind it.
The command already signals a willingness to explore, but a general portfolio still leaves visitors to sort through projects for themselves. I treated the terminal as a place to ask what brought them there, then put the relevant evidence and next link within reach.

02 · Feature set
Make the first choice about the visitor's role.
I organized the content around four likely visitors: a recruiter, engineer, hiring manager, and product collaborator. Each view changes the opening, supporting experience, and link order, while the same terminal frame keeps the interaction easy to learn.
Slash-command suggestions expose those routes as soon as someone types `/`. Arrow keys move through suggestions and links, and the same prompt supports help, returning home, and copying contact details. The role choice becomes part of the introduction instead of a separate setup step.
Engineering noteTreat terminal capability as part of the interface
A command can run in a full terminal or in a pipe with no keyboard input. I built a small state machine with Node's standard library so the interactive route can handle keys, width, and links while the noninteractive route still prints a useful introduction.
- Raw key handling is enabled only for an interactive TTY; piped execution prints the introduction and exits.
- Text wraps against a bounded 48–100 column frame so role content remains readable across terminal sizes.
- Links and clipboard actions use platform-specific executables with argument arrays and expose fallback status instead of stopping the session.
03 · What shipped
Ship one command with a complete path through the profile.
I released the canonical package as one Node executable with no runtime dependencies. Version 1.3.1 brings the opening, four role views, command suggestions, links, contact copying, and help into the same session. If a terminal cannot accept interaction, the command prints an introduction and exits cleanly.
The repository also holds alternate package names, but I kept one command as the active profile. That gave the business card a clear destination while leaving the other names as packaging choices rather than competing versions of the story.
Change the story with the audience

04 · Reflection
Let the format make the introduction more useful.
The command is memorable because it turns a package name into something people can try. The four views make that format useful: someone can start with their own question and reach an introduction, proof, and contact path without navigating a full site.
Keeping one active package also made a trade-off visible. The alternate names can each run independently, but their copied entry files make profile changes more costly. One clear command keeps the destination simple for visitors even as those copies complicate maintenance behind it.