Explore M. Zeeshan Haider's developer portfolio directly from your terminal. No installation required.
npx @zeeshan-dev/software-engineer- Interactive Menu — Navigate with arrow keys, explore everything
- Live Data — Projects, experience, and GitHub stats fetched from portfolio API
- Offline Support — Smart caching for offline/slow networks
--latestFlag — Force-sync latest data- Cross-Platform — Graceful fallback for terminals without Unicode support
There are two ways to use this CLI: running it directly via npx (no installation required) or installing it globally on your system.
You can run the portfolio instantly without installing anything permanently:
npx @zeeshan-dev/software-engineerIf you want to keep the CLI on your machine and run it anywhere using a simple command, install it globally via npm:
# Install globally
npm install -g @zeeshan-dev/software-engineer
# Run the CLI
zeeshan-devWhether using npx @zeeshan-dev/software-engineer or the global zeeshan-dev command, you can pass direct commands and flags to skip the menu:
# Force fetch the latest data instead of using cache
zeeshan-dev --latest
# Go directly to specific sections
zeeshan-dev projects
zeeshan-dev github
zeeshan-dev hire
zeeshan-dev contact| Command | Description |
|---|---|
about |
Who am I — role, company, philosophy |
projects |
Interactive project explorer with live demo links |
experience |
Work experience & education timeline |
skills |
Tech stack across 4 categories |
github |
Live GitHub stats, repos, languages |
resume |
Opens resume PDF in your browser |
contact |
Email, phone, social links |
hire |
"Let's build something awesome" |
timeline |
Career journey visualization |
theme |
Switch between 5 color themes |
settings |
Config, analytics, cache management |
update |
Force-sync all data from portfolio |
# Clone
git clone https://github.com/mzeeshanh-dev/portfolio-node-cli
cd portfolio-node-cli
# Install dependencies
npm install
# Run in dev mode
npm run dev
# Build
npm run build
# Test
npm run test
# Test locally (links globally)
npm link
zeeshan-devThis CLI uses vitest for fast and reliable unit testing. We have implemented tests for API services, caching mechanisms, UI styling utilities, and command logic to ensure nothing breaks during future updates.
Run all tests:
npm run testsrc/
├── index.ts # Entry point (Commander + menu loop)
├── commands/ # Each command = 1 file
├── services/ # API fetching, cache, config, analytics
├── ui/ # Banner, colors, menu, spinner, animations
├── types/ # TypeScript interfaces
└── data/ # Fallback JSON data
This package was built focusing on SOLID, KISS, and DRY principles. We intentionally avoided bloated frameworks like NestJS or React to keep the CLI lightweight and fast.
- TypeScript + ESM — Strict, modern Node.js
- Commander — CLI routing and argument parsing
- @clack/prompts — Beautiful interactive menus (Replaced older libraries to avoid redundancy)
- Chalk — Terminal colors (No background colors to preserve terminal transparency)
- Boxen — Bordered boxes
- Ora — Spinners
- Conf — Persistent settings
- Axios — API requests
- is-unicode-supported — Detects terminal capabilities to fallback to simple ASCII instead of Unicode when necessary, providing a polished experience across all OS.
- Vitest — High performance unit testing
M. Zeeshan Haider — Full Stack Software Engineer
- Portfolio: m-zeeshan-haider.vercel.app
- GitHub: @mzeeshanh-dev
- Email: mzeeshanh.dev@gmail.com
MIT