A minimal, high-aesthetic Terminal User Interface portfolio template.
Built with Astro.js v7 & Tailwind CSS v4.
๐ Available on Astro Themes: This theme is officially listed and available on the Astro Theme Directory.
Experience the interactive retro terminal portfolio live in your browser:
- ๐ Live Demo: https://astro-tui-portfolio.netlify.app
- ๐ Astro Themes Directory: retro-tui-portfolio on Astro Themes
demo.mp4
Switch between 6 built-in CRT themes in real-time via the header dropdown or the theme <name> CLI command:
| ๐ข Phosphor Green | ๐ Amber CRT |
|---|---|
![]() |
![]() |
| ๐ต Cyber Cyan | ๐ฃ Dracula Synth |
|---|---|
![]() |
![]() |
| โช Monochrome | โ Cappuccino |
|---|---|
![]() |
![]() |
Includes a custom retro 404 terminal error screen:
An interactive retro cassette tape player with real-time Web Audio API spectrum visualization:
- Curated Tracks: Built-in Lo-Fi, Chiptune, Synthwave, and Ambient tracks.
- 24/7 Live Streams: Includes 24/7 live YouTube radio streams (Lofi Girl ๐ด LIVE, Synthwave ๐ด LIVE, Chillhop ๐ด LIVE).
- Custom Song Streaming: Stream any song or live radio from YouTube by pasting the video URL into the player or executing
radio add <url>in CLI. - Infinite Live Duration: Displays
00:00 / โfor 24/7 live stream stations.
A classic 60 FPS HTML5 Canvas Snake arcade mini-game built right into the terminal:
- Controls: Play using
W/A/S/D, Arrow keys, or mobile D-Pad touch buttons (โฒ โ โผ โถ). - Sound Effects: Web Audio API sound synthesis for eating apples, steering, and game-over alerts.
- High Scores: Persistent high-score tracking stored in browser
localStorage.
A 1972-style 60 FPS HTML5 Canvas Pong arcade mini-game vs CPU AI:
- Controls: Steer your paddle using
W/S,โ/โArrow keys, Mouse drag, or mobile touch controls. - Rally & Score Counter: Real-time rally counter and persistent high-score tracking.
Real-time integration with the GitHub REST API:
- Live Metrics: Automatically fetches total stars โญ, total forks ๐ด, followers count ๐ฅ, and public repository statistics.
- Language Breakdown: Displays primary programming languages across all public repositories.
- Featured Repositories Grid: Interactive cards displaying repository stars, description, and direct links.
Access live GitHub metrics and featured repositories directly inside the terminal CLI:
- CLI Commands: Execute
github(orgh/stats) to view live profile metrics, orrepos(orprojects) to browse top repositories. - Interactive Terminal Cards: Formatted terminal output displaying repository stars, forks, language badges, and direct links.
- Dual-Mode UI โ Switch between an interactive
>_ CLI Terminal(history, tab autocomplete) and a[#] GUI Dashboard. - ๐ป Retro Lo-Fi Radio + 24/7 Live Radio Streams โ Cassette radio with Web Audio API real-time spectrum visualizer, 24/7 Live Lofi Girl / Synthwave streams, & custom YouTube URL loader.
- ๐ Retro Arcade Snake & ๐น๏ธ Pong โ Fully playable 60 FPS HTML5 Canvas arcade games with sound synthesis, zero-latency touch controls, and persistent high-scores.
- ๐ฑ 100% Mobile & Touch Optimized โ Pinned window headers, touch D-Pad controls, centered cassette player, and responsive layout for mobile screens (Samsung Galaxy S23 FE, iPhones, Android).
- ๐ Live GitHub Stats & Repos โ Real-time GitHub REST API metrics: total stars โญ, forks ๐ด, followers, languages breakdown & repositories.
- 6 Vintage CRT Themes โ Phosphor Green, Amber, Cyber Cyan, Dracula Synth, Monochrome, and Cappuccino with dynamic runtime CSS variables.
- CRT Shader & Audio FX โ Scanline overlays, vignette shadows, and Web Audio API keypress sounds.
- Live Activity Streaming โ Optional Discord Lanyard WebSocket integration for Spotify activity and live gaming status (disabled by default).
- Zero-Backend Contact Form โ Working AJAX email transmission via FormSubmit.co with confetti celebration.
- 100% Static & Fast โ Built with Astro v7 for instant load times and zero overhead.
# Clone and install
git clone https://github.com/nivinvysakh/astro-tui-portfolio.git
cd astro-tui-portfolio
npm install
# Start local dev server
npm run devOpen http://localhost:4321 to view your live portfolio.
๐ณ Docker: Run
docker compose up tui-portfolio-devfor live development with hot-reloading.
-
Content & Bio โ
src/data/portfolio.ts
Update bio, skills matrix, hardware specs, collaborations, and contact details. -
Themes, Radio & Integrations โ
src/config/
Configure custom CRT themes (themeConfig.ts), Radio tracks & 24/7 Live Streams (radioConfig.ts), Spotify RPC (spotifyConfig.ts), and live Gaming presence (gamesConfig.ts).๐ก Note: Spotify and Gaming live activity widgets are disabled by default until configured with your Discord Lanyard User ID (
lanyardUserId: ""). -
๐ต Adding Custom Radio Tracks & Streams:
- Permanent Playlist (Config): Add MP3 URLs or YouTube links to the
RADIO_PLAYLISTarray insrc/config/radioConfig.ts. - Runtime via UI / CLI: Paste any YouTube URL into the Radio window's STREAM CUSTOM SONG VIA YOUTUBE URL input field, or execute
radio add <youtube_url>directly in the CLI terminal. Custom streams persist in browserlocalStorage.
- Permanent Playlist (Config): Add MP3 URLs or YouTube links to the
| Command | Description |
|---|---|
help |
List available commands (man) |
about |
Bio, background & location (cat bio.txt) |
skills |
Interactive proficiency meters (cat skills.sh) |
collabs |
Projects & collaborations (cat collabs.md) |
neofetch |
System specs & ASCII art logo |
github |
Live GitHub profile metrics, stars & language stats (stats, gh) |
repos |
Explore featured repositories with stars & links (projects) |
links |
Display quick links to LinkedIn, X (Twitter), GitHub & Email (socials) |
snake |
Play classic retro Snake arcade game (./snake.sh) |
pong |
Play retro arcade Pong vs CPU (game, play, ./pong.sh) |
radio |
Play Lo-Fi radio or stream 24/7 Live YouTube stations (radio add <yt_url>, radio play) |
spotify |
Live Spotify track & progress bar (np) |
theme <name> |
Switch theme (green, amber, cyan, dracula, mono, cappuccino) |
matrix |
Toggle digital rain canvas animation |
crt / sfx |
Toggle CRT shader / Keypress sound effects |
gui / cli |
Switch layout mode |
clear |
Clear terminal screen buffer (cls) |
Distributed under the MIT License. ยฉ 2026 Nivin











