CLI & Terminal Commands¶
pnpm (package manager)¶
| Command | Description |
|---|---|
pnpm install |
Install dependencies declared in package.json |
pnpm dev |
Start the Next.js development server |
pnpm build |
Create a production build |
pnpm start |
Run the production server |
pnpm lint |
Run ESLint |
pnpm is used across the entire project (scripts, Dockerfile, Makefile). The pnpm-lock.yaml is present at the root. While package-lock.json exists, it is not used by the tooling.
Make (Docker & local workflows)¶
The Makefile wraps Docker and local pnpm commands for convenience.
make help # Print available targets
make build # Build Docker image next-app:latest
make run # Run container on port 3000
make stop # Stop container
make rm # Remove container
make restart # Stop + remove + run
make logs # Tail container logs (follow mode)
make clean # Stop, remove container, remove image
make dev # Run dev server locally with pnpm
make install # Install dependencies with pnpm
make build-app # Build Next.js app locally with pnpm
Defaults:
- Container name: next-app-container
- Port: 3000
- Image: next-app:latest
Docker CLI¶
Equivalent raw Docker commands for operations covered by the Makefile:
# Build
docker build -t next-app:latest .
# Run
docker run -d --name next-app-container -p 3000:3000 next-app:latest
# Stop
docker stop next-app-container
# Remove container
docker rm next-app-container
# Logs
docker logs -f next-app-container
# Clean
docker rmi next-app:latest
Application Terminal (Embedded)¶
The portfolio includes an interactive terminal overlay on every page. It is not a real shell; it runs entirely client-side.
Open it by clicking the terminal icon in the bottom-left corner.
Supported Commands¶
| Command | Response / Behavior |
|---|---|
help |
List all supported commands |
whoami |
cipherunit |
about |
Fixed bio description |
skills |
List of skills |
projects |
Numbered list of sample projects |
contact |
Email and location |
social |
GitHub, LinkedIn, Twitter handles |
github |
Acknowledgment string |
blog |
Sample blog posts list |
ls |
Simulated directory listing |
pwd |
/home/cipherunit |
date |
Current date string (dynamic) |
uptime |
Static string (127 days, 14 hours, 32 minutes) |
neofetch |
Simulated system specs |
cat <filename> |
Usage hint string |
clear |
Clears terminal history |
How It Works¶
Commands.tsexports a plain object mapping command names to string responses.Terminal.tsxreads user input on Enter and either returns the matching response orcommand not found: <cmd>.clearresets the localhistorystate.- No network requests or shell execution occur.
Extending Commands¶
To add a new command, append a key/value pair to the commands object in src/components/terminal/Commands.ts. No backend or API changes are needed.
Zensical CLI (Documentation)¶
The docs site is built and deployed with Zensical.
# Install Zensical (Python environment)
pip install zensical
# Build docs
zensical build --clean
# Serve docs locally (if supported by the installed version)
zensical serve
The GitHub Actions workflow (.github/workflows/docs.yml) runs zensical build --clean on every push to main or master and deploys the output in site/ to GitHub Pages.