Open-source / PowerShell 7+

Make your terminal
actually worth looking at.

Custom ASCII startup art. 10 handcrafted prompt styles. Smart path colors, git status, language detection. All native PowerShell, no external prompt frameworks.

What this does

Two layers of customization

This project replaces the default PowerShell experience with a terminal that shows system information on startup and presents a styled, informative prompt every time you press Enter.

Layer 1

ASCII Startup Banner

When you open a terminal, Fastfetch displays your custom ASCII art. The logo uses Catppuccin Mocha colors and renders with JetBrains Mono Nerd Font.



██████╗    █████╗  ████████╗  ██╗  ██╗  ██████╗
██╔══██╗  ██╔══██╗ ╚══██╔══╝  ██║  ██║  ██╔══██╗
██║  ██║  ██║  ██║    ██║     ███████║  ██████╔╝
██║  ██║  ██║  ██║    ██║     ██╔══██║  ██╔═══╝
██████╔╝  ╚█████╔╝    ██║     ██║  ██║  ██║
╚═════╝    ╚════╝     ╚═╝     ╚═╝  ╚═╝  ╚═╝

Layer 2

Custom Prompt

Every command line starts with a styled prompt showing your username, smart-truncated path, git branch with status, and optional language version or execution time. 10 styles included.

╭─ 󰣇 harsh@DESKTOP
│
├─ 󰉋 ~\Projects\SchoolFlow
├─ main ✓
├─ 󰍛 12ms
│
╰─❯
Before you start

Prerequisites

Three things you need installed before proceeding. The font is mandatory, the rest are recommended.

Required

JetBrains Mono Nerd Font

Without this, icons render as empty boxes. Download from nerdfonts.com and install the .ttf files.

Recommended

Fastfetch

Displays system info with your ASCII logo on startup. Install via winget.

winget install fastfetch
Required

PowerShell 7+

The prompt scripts use features only available in PowerShell 7 or later. Check with$PSVersionTable.

Step by step

Setup guide

Follow these four steps in order. Each one builds on the previous.

Install the Nerd Font

Go to nerdfonts.com/font-downloads, search for JetBrainsMono, download the zip, extract it, and install every .ttf file. Then set your terminal to use "JetBrainsMono Nerd Font" in its settings.

Install Fastfetch and configure it

Fastfetch reads your ASCII art and system info on terminal startup. Install it, then create the config directory and copy the two files from this repo.

PowerShell
winget install fastfetch
PowerShell
mkdir "$HOME.configastfetch"
PowerShell
# Copy from this repo:
    #   fastfetch/ascii.txt      -> your ASCII logo
    #   fastfetch/config.jsonc   -> display config

You can find./fastfetch/in github.
The config file points to ~/.config/fastfetch/ascii.txt and applies Catppuccin Mocha colors. Edit ascii.txt with your own art if desired.

Set up your PowerShell profile

Your PowerShell profile runs every time you open a terminal. This is where the startup banner and custom prompt live.

PowerShell
# Find your profile path
$PROFILE

# Create it if it doesn't exist
if (!(Test-Path -Path $PROFILE)) {
    New - Item - ItemType File -Path $PROFILE -Force
}

# Open in Notepad
notepad $PROFILE

Delete everything in that file, then paste the contents of your chosen prompt file from the standalone/ folder. Save and close.

Restart your terminal

Close and reopen Windows Terminal. You should see the Fastfetch banner followed by your new styled prompt. To test the clear shortcut, type cls or clear and press Enter.

10 styles

Prompt gallery

Click any prompt to view its full source code. Copy the entire file into your $PROFILE to use it.

Modern DevFull-featured
╭─ 󰣇 harsh@DESKTOP
|
├─ 󰉋 ~\Projects\SchoolFlow
├─ 󰋚 main v
├─ 󰎙 v24.2.0
├─ 󰌠 3.13
├─ 󰍛 12ms
|
╰─󰕊
Username, smart path, git, language versions, execution time. The everything prompt.
HackerCompact
╭─[harsh@desktop]
├─[~/SchoolFlow]
╰─[git: main v]
󰕊
Tight and efficient. Git ahead/behind indicators when out of sync.
PowerLevelRounded
󰣇 Harsh
󰉋 SchoolFlow
main v
󰕊
PowerLevel10K vibes with colored blocks. Clean and recognizable.
DashboardSystem
-----------------------------------
󰣇 Harsh
󰉋 SchoolFlow
󰋚 main v
CPU 12% RAM 8.2 GB 󰕹 82%
-----------------------------------
󰕊
Live CPU, RAM, and battery stats between divider lines. Windows only.
VS Code ExplorerFamiliar
Harsh
|
╭─ 󰉋 SchoolFlow
├─ main v
╰─󰕊
Tree-style like VS Code file explorer. Clean and instantly familiar.
CatppuccinSoft
╭─ 󰣇 Harsh
|
├─ 󰉋 SchoolFlow
├─ main
├─ 󰍛 5ms
|
╰─󰕊
Soft Catppuccin Mocha palette with execution time tracking.
CyberpunkNeon
◢██ USER ██◣
󰣇 harsh
󰉋 SchoolFlow
󰋚 main
☾☾☾
Magenta and cyan with block art header. Makes a statement.
AppleMinimal
Harsh atSchoolFlow
mainv
󰕊
One line, one separator. Apple Terminal vibes. Maximum simplicity.
MatrixMatrix
SYSTEM ONLINE
USER........harsh
PROJECT.....SchoolFlow
BRANCH......main
󰕊
Everything in green. Labels with dots. Feels like a movie terminal.
BasicDefault
╭─ 󰣇 Harsh@DESKTOP
|
├─ 󰉋 D:\Projects\SchoolFlow
├─ main v
├─ 󱁄 Node v24.2.0
|
╰─󰕊
Box drawing with language detection. Essentials only.
Make it yours

Customization

Every prompt file defines its color palette at the top. Here is what each variable controls and how to change it.

Color Variables

Each standalone file begins with a block of $C_* variables. These map to PowerShell's[ConsoleColor] enum.

$C_SUCCESSPrompt character, clean indicators
$C_DIRFolder and directory icons
$C_GITGit branch icon
$C_BRANCHGit branch name
$C_USERUsername
$C_DIRTYDirty git indicator (*)

Available colors: White, Black,DarkGray, Gray, Red, DarkRed, Green,DarkGreen, Blue, DarkBlue, Cyan, DarkCyan,Magenta, DarkMagenta, Yellow, DarkYellow.

Path Color Cycle

The $C_PATH_CYCLE array controls the colors for each folder level in the path. Each segment gets the next color in the list.

Default cycle
$C_PATH_CYCLE = @(
    [ConsoleColor]::Blue,
    [ConsoleColor]::Cyan,
    [ConsoleColor]::Magenta,
    [ConsoleColor]::Yellow
)

Add, remove, or reorder colors. The cycle repeats if the path has more segments than colors.

Username and Hostname

Most prompts read from environment variables automatically. To hardcode a different name, replace$env:USERNAME with a string.

Custom name
# Default (reads from system)
Write-Host $env:USERNAME ...

# Custom name
Write-Host "harsh" ...

            

Catppuccin Mocha Hex Values

For Fastfetch ASCII art coloring inconfig.jsonc.

#F5E0DC Rosewater
#F2CDCD Flamingo
#F5C2E7 Pink
#FAB387 Peach
#F9E2AF Yellow
#A6E3A1 Green
#94E2D5 Teal
#89DCEB Sky
#74C7EC Sapphire
#89B4FA Blue
#B4BEFE Lavender
#CBA6F7 Mauve
Under the hood

How it works

The startup flow is straightforward. Here is what happens from the moment you open a terminal.

Terminal Opens
Windows Terminal launches PowerShell 7
$PROFILE Loads
PowerShell reads your profile script from Documents\PowerShell\
Clear-Host + Show-Fastfetch
Screen clears, Fastfetch runs with your config and ASCII art
prompt Function Renders
Custom prompt draws username, path, git, and other info
Ready for Input
You type commands. On cls/clear, Show-Fastfetch re-runs.

VS Code Integration

To make VS Code's integrated terminal also show Fastfetch on startup, add a custom profile to your VS Codesettings.json.

settings.json
{
  "terminal.integrated.profiles.windows": {
    "PowerShell": {
      "source": "PowerShell",
      "args": [
        "-NoExit",
        "-Command",
        "fastfetch -c 'C:/Users/YourName/.config/fastfetch/config.jsonc'"
      ]
    }
  }
}

Replace C:/Users/YourName/ with your actual home path. Run$HOME in PowerShell to find it.

Troubleshooting

Frequently asked questions