A CLI business card and resume viewer - share your professional profile directly in the terminal.
Sharing professional information typically requires sending links, PDFs, or directing people to websites. For developers and tech professionals, there's a more elegant solution: a terminal-based business card.
This package allows anyone to view your professional profile instantly with a single command - no browser, no downloads, no friction. It's memorable, developer-friendly, and showcases your technical skills in the process.
Run directly with npx (no installation required):
npx ebdonatoThe CLI supports English, Portuguese, and Spanish. It automatically detects your system language, or you can:
Change language from the menu:
Select "Change language" from the interactive menu to switch languages on the fly.
Force a specific language via CLI flag:
npx ebdonato --lang=en # English
npx ebdonato --lang=pt # Portuguese (Portugues)
npx ebdonato --lang=es # Spanish (Espanol)That's it! You'll see an interactive menu with options to:
- View CV - Read the full resume directly in the terminal (Markdown rendered beautifully)
- Download CV - Save a PDF copy to your current directory
- Show QR Code - Display a scannable QR code for mobile access
- Send Email - Open your default email client to get in touch
- Change Language - Switch between English, Portuguese, and Spanish
- Exit - Close the application
- Zero Installation - Works instantly via
npx - Multi-Language - Supports English, Portuguese, and Spanish (auto-detects system locale or switch from menu)
- Interactive Menu - Easy navigation with arrow keys
- Terminal-Rendered Resume - Markdown displayed with colors and formatting
- PDF Download - Get a professionally styled PDF resume
- QR Code - Quick mobile access to online profile
- Cross-Platform - Works on macOS, Linux, and Windows
Want to make your own CLI business card? Fork this project and customize it!
# Fork this repository on GitHub, then:
git clone https://github.com/YOUR_USERNAME/card-tui.git
cd card-tui
npm install-
Update
package.json:- Change
"name"to your npm username (e.g.,"name": "johndoe") - Update
"description","author", and other metadata
- Change
-
Edit
bin/index.js:-
Update the
dataobject with your personal information:const data = { name: chalk.bold.green('Your Name'), handle: chalk.white('@yourhandle'), work: chalk.white('Your Title at Your Company'), twitter: chalk.cyan('https://x.com/yourhandle'), github: chalk.cyan('https://github.com/yourusername'), linkedin: chalk.cyan('https://linkedin.com/in/yourprofile'), web: chalk.cyan('https://yourwebsite.com'), // ... update labels and bio }
-
Update the email address in the
sendEmail()function
-
-
Replace
data/resume-{lang}.md:- Write your resume in Markdown format for each language
- Files:
resume-en.md,resume-pt.md,resume-es.md - This content is displayed in the terminal and converted to PDF
-
Update
locales/*.json:- Edit
locales/en.json,locales/pt.json,locales/es.json - Translate UI strings (menu labels, messages, header text)
- Edit
-
Customize PDF styling (optional):
- Edit
assets/resume.cssto change the PDF appearance
- Edit
# Generate the PDF resume
npm run build
# Test locally
npm start
# Check for linting errors
npm run lint# Login to npm (create account at npmjs.com if needed)
npm login
# Publish your package
npm publishNow anyone can run npx yourusername to see your business card!
- Colors: Use
chalkfor terminal colors (chalk.green(),chalk.cyan(),chalk.bold(), etc.) - Box Style: Modify
boxenoptions inshowHeader()for different border styles - Menu Options: Add or remove choices in the
inquirer.prompt()call inmain() - QR Code: Update the URL in
showQRCode()to point to your profile
- Node.js (v18 or higher recommended)
- npm
| Command | Description |
|---|---|
npm start |
Run the CLI locally |
npm run build |
Generate PDFs for all languages |
npm run lint |
Check for code style issues |
npm run lint:fix |
Auto-fix linting errors |
npm run format |
Format code with Prettier |
npm run format:check |
Check code formatting |
card-tui/
├── bin/
│ └── index.js # Main CLI application
├── lib/
│ └── i18n.js # Internationalization module
├── locales/
│ ├── en.json # English UI strings
│ ├── pt.json # Portuguese UI strings
│ └── es.json # Spanish UI strings
├── data/
│ ├── resume-en.md # English resume
│ ├── resume-pt.md # Portuguese resume
│ └── resume-es.md # Spanish resume
├── assets/
│ ├── resume.css # PDF styling
│ ├── resume-en.pdf # Generated English PDF
│ ├── resume-pt.pdf # Generated Portuguese PDF
│ └── resume-es.pdf # Generated Spanish PDF
├── build-cv.js # PDF generation script (all languages)
├── package.json # Package configuration
└── AGENTS.md # Guidelines for AI coding agents
- chalk - Terminal string styling
- inquirer - Interactive command-line prompts
- boxen - Create boxes in terminal
- marked + marked-terminal - Render Markdown in terminal
- qrcode-terminal - Generate QR codes
- open - Open URLs/files in default application
- md-to-pdf - Convert Markdown to PDF
This project is a complete rewrite and evolution of ebdonato/npx_card, rebuilt with modern ES Modules, updated dependencies, and an improved interactive experience.
Originally inspired by anmol098/npx_card - a brilliant idea for developer business cards in the terminal.
MIT License - See LICENSE for details.
