A Developer CLI Portfolio That Lives Inside Your Terminal | npx vishalrmahajan

Introduction
Imagine a world where your developer portfolio isn’t just another web page, but an experience that comes to life right inside the terminal , a familiar environment for every coder. That’s exactly the idea behind npx vishalrmahajan: my personal CLI-based portfolio, accessible to anyone, anywhere, with a simple command.
In this post, I’m sharing the journey, technical architecture, creative ideas, and a step-by-step approach. Whether you love tinkering with Node.js or just want your portfolio to stand out, this guide will help you craft an unforgettable, interactive command-line narrative.
Why Build a Terminal Portfolio?
Authentic for developers
It tells your story in a space where developers naturally spend time.
Instant access
Anyone can type npx vishalrmahajan and dive in. No browser needed.
Interactive
Supports real commands, navigation, and links that actually work.
Unusual in the best way
Most portfolios live on the web. This one lives in the command line
The Technical Architecture
1. Terminal UI with terminal-kit
The interface uses terminal kit, a powerful library for building terminal applications. It helps create a smooth user experience with features like:
Section navigation (Home, Skills, Experience, Projects)
Layouts that adjust when the terminal is resized
Bold headings, ASCII art, and visual structure
2. Modular Section Design
Each part of the portfolio is kept in its own file to make things easy to maintain and extend.
home.jscontains the welcome message and profile linksskills.jslists the languages, tools, and frameworksexperience.jsshows your work history and key highlightsprojects.jswalks through your favorite work with links and short descriptions
You can also include hidden content, such as fun easter eggs, an “about me” story, or a simple terminal game.
3. Command input and navigation
The terminal isn’t just for reading. It’s interactive. Users can:
Type
helpto view available commandsJump between sections by typing their names
Use commands like
githuborlinkedinto open links
A custom command handler listens for input, maps commands, and even launches external URLs using the [open](https://www.npmjs.com/package/open) package.
4. Visual touches and animations
On startup and exit, simple animations like spinners and progress bars make the experience smoother and more personal. Libraries like [chalk](https://www.npmjs.com/package/chalk) and [cfonts](https://www.npmjs.com/package/cfonts) let you add colors and large text fonts that feel polished and fun without going over the top.
5. Clean formatting and edge case handling
To make sure your output looks great on every terminal:
Add
terminal linkto make links clickable in supported environmentsWatch for screen size changes and redraw the layout to keep everything clean and readable
Initalizing Your Own: Step-by-Step Guide
You don’t need much to get started. Here’s a basic walkthrough to set up your own terminal-based portfolio.
1. Project Bootstrap
mkdir my-terminal-portfolio
cd my-terminal-portfolio
npm init -y
2. Entry Point
Create index.js
#!/usr/bin/env
console.log("This is terminal portfolio");
Update your package.json :
"bin": {
"myportfolio": "./index.js"
}
3. Run and Publish
Test locally:
node index.jsMake your script executable:
chmod +x index.jsPublish on npm:
npm publish
Anyone can now do:
npx myportfolio
4. Libraries You Can Use to Build and Polish It
You can use the following libraries to build your own terminal-based portfolio with structure, interactivity, and style:
terminal-kit : For building responsive terminal UIs
chalk : For adding color and emphasis to your output
cfonts : To display stylish ASCII headers and banners
open : To open links and external apps directly from your terminal
terminal-link : For clickable links in supported terminals
Conclusion
A terminal-based portfolio is more than just a cool trick. It’s a creative way to express your personality, show off your skills, and spark curiosity. npx vishalrmahajan reflects who I am and how I think in a way a static page never could.
If this sounds fun, build your own. Experiment. Tell your story in the terminal. You might just surprise yourself and the next person who runs your command.
Want to connect, try out npx vishalrmahajan, or share your own? Reach out on Twitter, or just type chat on npx vishalrmahajan.
Happy hacking.