Skip to main content

Command Palette

Search for a command to run...

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

Updated
4 min read
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.js contains the welcome message and profile links

  • skills.js lists the languages, tools, and frameworks

  • experience.js shows your work history and key highlights

  • projects.js walks 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 help to view available commands

  • Jump between sections by typing their names

  • Use commands like github or linkedin to 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 link to make links clickable in supported environments

  • Watch 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.js

  • Make your script executable: chmod +x index.js

  • Publish 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.