[{"data":1,"prerenderedAt":649},["ShallowReactive",2],{"guide-ascii-art-terminal-prompts":3},{"id":4,"title":5,"body":6,"date":641,"description":642,"extension":643,"meta":644,"navigation":87,"path":645,"readingTime":109,"seo":646,"stem":647,"__hash__":648},"guides\u002Fguides\u002Fascii-art-terminal-prompts.md","ASCII Art in Terminal Prompts: Customizing Your Shell Experience",{"type":7,"value":8,"toc":631},"minimark",[9,18,23,26,55,58,62,65,154,157,270,274,277,280,300,307,367,371,377,494,497,505,522,526,529,566,570,590,594,615,619,627],[10,11,12,13,17],"p",{},"Your terminal prompt is the first thing you see when you open a shell. Adding ASCII art transforms a plain ",[14,15,16],"code",{},"user@host:~$"," into a personalized workspace that is instantly recognizable and surprisingly functional. This guide covers tools, techniques, and design principles for terminal prompts that look great and stay useful.",[19,20,22],"h2",{"id":21},"why-customize-your-prompt","Why Customize Your Prompt",[10,24,25],{},"A customized prompt serves practical purposes beyond aesthetics:",[27,28,29,37,43,49],"ul",{},[30,31,32,36],"li",{},[33,34,35],"strong",{},"Fast identification"," — distinguish between local, staging, and production shells at a glance",[30,38,39,42],{},[33,40,41],{},"Context at a glance"," — display git branch, Node version, or Kubernetes namespace without running extra commands",[30,44,45,48],{},[33,46,47],{},"Visual anchor"," — a distinctive prompt makes it easier to find command boundaries when scrolling through long terminal histories",[30,50,51,54],{},[33,52,53],{},"Muscle memory"," — consistent visual patterns help your brain parse output faster",[10,56,57],{},"ASCII art banners at terminal startup serve a similar purpose: they confirm which machine or environment you have connected to, reducing the risk of running commands on the wrong server.",[19,59,61],{"id":60},"starship-the-modern-prompt-framework","Starship: The Modern Prompt Framework",[10,63,64],{},"Starship is a cross-shell prompt customizer written in Rust. It works with Bash, Zsh, Fish, PowerShell, and Ion — making your prompt portable across operating systems.",[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-toml shiki shiki-themes github-light github-dark","# ~\u002F.config\u002Fstarship.toml\n\n# Add a custom ASCII character before each command\n[character]\nsuccess_symbol = \"[➜](bold green)\"\nerror_symbol = \"[✗](bold red)\"\n\n# Show custom ASCII art on shell startup\n[custom.banner]\ncommand = \"cat ~\u002F.config\u002Fstarship-banner.txt\"\nwhen = \"test $STARSHIP_SESSION_KEY\"\nformat = \"[$output]($style)\\n\"\nstyle = \"bold cyan\"\n","toml","",[14,73,74,82,89,95,101,107,113,118,124,130,136,142,148],{"__ignoreMap":71},[75,76,79],"span",{"class":77,"line":78},"line",1,[75,80,81],{},"# ~\u002F.config\u002Fstarship.toml\n",[75,83,85],{"class":77,"line":84},2,[75,86,88],{"emptyLinePlaceholder":87},true,"\n",[75,90,92],{"class":77,"line":91},3,[75,93,94],{},"# Add a custom ASCII character before each command\n",[75,96,98],{"class":77,"line":97},4,[75,99,100],{},"[character]\n",[75,102,104],{"class":77,"line":103},5,[75,105,106],{},"success_symbol = \"[➜](bold green)\"\n",[75,108,110],{"class":77,"line":109},6,[75,111,112],{},"error_symbol = \"[✗](bold red)\"\n",[75,114,116],{"class":77,"line":115},7,[75,117,88],{"emptyLinePlaceholder":87},[75,119,121],{"class":77,"line":120},8,[75,122,123],{},"# Show custom ASCII art on shell startup\n",[75,125,127],{"class":77,"line":126},9,[75,128,129],{},"[custom.banner]\n",[75,131,133],{"class":77,"line":132},10,[75,134,135],{},"command = \"cat ~\u002F.config\u002Fstarship-banner.txt\"\n",[75,137,139],{"class":77,"line":138},11,[75,140,141],{},"when = \"test $STARSHIP_SESSION_KEY\"\n",[75,143,145],{"class":77,"line":144},12,[75,146,147],{},"format = \"[$output]($style)\\n\"\n",[75,149,151],{"class":77,"line":150},13,[75,152,153],{},"style = \"bold cyan\"\n",[10,155,156],{},"Starship modules detect your environment automatically:",[158,159,160,176],"table",{},[161,162,163],"thead",{},[164,165,166,170,173],"tr",{},[167,168,169],"th",{},"Module",[167,171,172],{},"Shows",[167,174,175],{},"Example",[177,178,179,195,210,225,240,255],"tbody",{},[164,180,181,187,190],{},[182,183,184],"td",{},[14,185,186],{},"git_branch",[182,188,189],{},"Current branch",[182,191,192],{},[14,193,194],{},"main",[164,196,197,202,205],{},[182,198,199],{},[14,200,201],{},"git_status",[182,203,204],{},"Dirty\u002Fclean state",[182,206,207],{},[14,208,209],{},"✚3 ─✖2",[164,211,212,217,220],{},[182,213,214],{},[14,215,216],{},"nodejs",[182,218,219],{},"Node version",[182,221,222],{},[14,223,224],{},"v20.11.0",[164,226,227,232,235],{},[182,228,229],{},[14,230,231],{},"python",[182,233,234],{},"Python version + venv",[182,236,237],{},[14,238,239],{},"🐍 3.12.1 (venv)",[164,241,242,247,250],{},[182,243,244],{},[14,245,246],{},"kubernetes",[182,248,249],{},"Current context\u002Fnamespace",[182,251,252],{},[14,253,254],{},"⎈ prod\u002Fus-east",[164,256,257,262,265],{},[182,258,259],{},[14,260,261],{},"docker_context",[182,263,264],{},"Active Docker context",[182,266,267],{},[14,268,269],{},"🐋 default",[19,271,273],{"id":272},"powerlevel10k-zsh-native-power","Powerlevel10k: Zsh-Native Power",[10,275,276],{},"Powerlevel10k is a Zsh theme that combines ASCII icons with a configuration wizard. It is the most popular Zsh prompt framework and offers the deepest integration with Zsh features.",[10,278,279],{},"Key features:",[27,281,282,288,294],{},[30,283,284,287],{},[33,285,286],{},"Instant prompt"," — renders the prompt before Zsh finishes loading plugins, eliminating startup lag",[30,289,290,293],{},[33,291,292],{},"Transient prompt"," — shows full context on the current line, then collapses previous prompts to a simple character for cleaner history",[30,295,296,299],{},[33,297,298],{},"ASCII segment icons"," — usesPowerline symbols and Nerd Font icons for git status, language versions, and command duration",[10,301,302,303,306],{},"To add custom ASCII art, edit your ",[14,304,305],{},"~\u002F.p10k.zsh",":",[66,308,312],{"className":309,"code":310,"language":311,"meta":71,"style":71},"language-zsh shiki shiki-themes github-light github-dark","# Custom ASCII banner on new terminal session\nfunction prompt_custom_banner() {\n  p10k segment -t \"╔══════════════════╗\\n║  Hello, $USER    ║\\n╚══════════════════╝\" -f cyan\n}\n","zsh",[14,313,314,320,334,362],{"__ignoreMap":71},[75,315,316],{"class":77,"line":78},[75,317,319],{"class":318},"sJ8bj","# Custom ASCII banner on new terminal session\n",[75,321,322,326,330],{"class":77,"line":84},[75,323,325],{"class":324},"szBVR","function",[75,327,329],{"class":328},"sScJk"," prompt_custom_banner",[75,331,333],{"class":332},"sVt8B","() {\n",[75,335,336,339,343,347,350,353,356,359],{"class":77,"line":91},[75,337,338],{"class":328},"  p10k",[75,340,342],{"class":341},"sZZnC"," segment",[75,344,346],{"class":345},"sj4cs"," -t",[75,348,349],{"class":341}," \"╔══════════════════╗\\n║  Hello, ",[75,351,352],{"class":332},"$USER",[75,354,355],{"class":341},"    ║\\n╚══════════════════╝\"",[75,357,358],{"class":345}," -f",[75,360,361],{"class":341}," cyan\n",[75,363,364],{"class":77,"line":97},[75,365,366],{"class":332},"}\n",[19,368,370],{"id":369},"custom-ps1-for-bash","Custom PS1 for Bash",[10,372,373,374,306],{},"If you prefer minimal dependencies, you can build a custom ASCII prompt directly in ",[14,375,376],{},".bashrc",[66,378,382],{"className":379,"code":380,"language":381,"meta":71,"style":71},"language-bash shiki shiki-themes github-light github-dark","# ASCII art banner (shown on new session)\nif [ -z \"$CUSTOM_PROMPT_LOADED\" ]; then\n  echo -e \"\\033[36m\"\n  echo \"  ╦ ╦┌─┐┌┐ ╔═╗╔═╗\"\n  echo \"  ║║║├┤ ├┴┐║ ║╚═╗\"\n  echo \"  ╚╩╝└─┘└─┘╚═╝╚═╝\"\n  echo -e \"\\033[0m\"\n  export CUSTOM_PROMPT_LOADED=1\nfi\n\n# Custom PS1 with ASCII decorations\nPS1='\\[\\033[1;32m\\]┌──\\[\\033[1;34m\\](\\w)\\[\\033[0m\\]\\n\\[\\033[1;32m\\]└─\\[\\033[1;36m\\]$ \\[\\033[0m\\]'\n","bash",[14,383,384,389,415,426,433,440,447,456,470,475,479,484],{"__ignoreMap":71},[75,385,386],{"class":77,"line":78},[75,387,388],{"class":318},"# ASCII art banner (shown on new session)\n",[75,390,391,394,397,400,403,406,409,412],{"class":77,"line":84},[75,392,393],{"class":324},"if",[75,395,396],{"class":332}," [ ",[75,398,399],{"class":324},"-z",[75,401,402],{"class":341}," \"",[75,404,405],{"class":332},"$CUSTOM_PROMPT_LOADED",[75,407,408],{"class":341},"\"",[75,410,411],{"class":332}," ]; ",[75,413,414],{"class":324},"then\n",[75,416,417,420,423],{"class":77,"line":91},[75,418,419],{"class":345},"  echo",[75,421,422],{"class":345}," -e",[75,424,425],{"class":341}," \"\\033[36m\"\n",[75,427,428,430],{"class":77,"line":97},[75,429,419],{"class":345},[75,431,432],{"class":341}," \"  ╦ ╦┌─┐┌┐ ╔═╗╔═╗\"\n",[75,434,435,437],{"class":77,"line":103},[75,436,419],{"class":345},[75,438,439],{"class":341}," \"  ║║║├┤ ├┴┐║ ║╚═╗\"\n",[75,441,442,444],{"class":77,"line":109},[75,443,419],{"class":345},[75,445,446],{"class":341}," \"  ╚╩╝└─┘└─┘╚═╝╚═╝\"\n",[75,448,449,451,453],{"class":77,"line":115},[75,450,419],{"class":345},[75,452,422],{"class":345},[75,454,455],{"class":341}," \"\\033[0m\"\n",[75,457,458,461,464,467],{"class":77,"line":120},[75,459,460],{"class":324},"  export",[75,462,463],{"class":332}," CUSTOM_PROMPT_LOADED",[75,465,466],{"class":324},"=",[75,468,469],{"class":345},"1\n",[75,471,472],{"class":77,"line":126},[75,473,474],{"class":324},"fi\n",[75,476,477],{"class":77,"line":132},[75,478,88],{"emptyLinePlaceholder":87},[75,480,481],{"class":77,"line":138},[75,482,483],{"class":318},"# Custom PS1 with ASCII decorations\n",[75,485,486,489,491],{"class":77,"line":144},[75,487,488],{"class":332},"PS1",[75,490,466],{"class":324},[75,492,493],{"class":341},"'\\[\\033[1;32m\\]┌──\\[\\033[1;34m\\](\\w)\\[\\033[0m\\]\\n\\[\\033[1;32m\\]└─\\[\\033[1;36m\\]$ \\[\\033[0m\\]'\n",[10,495,496],{},"This creates a two-line prompt with a box-drawing frame:",[66,498,503],{"className":499,"code":501,"language":502},[500],"language-text","┌──(\u002Fhome\u002Fuser\u002Fprojects)\n└─$ \n","text",[14,504,501],{"__ignoreMap":71},[10,506,507,508,511,512,511,515,511,518,521],{},"Box-drawing characters (",[14,509,510],{},"┌",", ",[14,513,514],{},"└",[14,516,517],{},"─",[14,519,520],{},"│",") are part of the standard terminal character set and render correctly on virtually all systems.",[19,523,525],{"id":524},"design-principles-for-ascii-prompts","Design Principles for ASCII Prompts",[10,527,528],{},"A good ASCII prompt balances personality with usability:",[530,531,532,538,548,554,560],"ol",{},[30,533,534,537],{},[33,535,536],{},"Keep it under three lines"," — tall prompts waste vertical space, especially in tiled terminal layouts",[30,539,540,543,544,547],{},[33,541,542],{},"Test at narrow widths"," — ASCII art breaks when the terminal is narrower than the art; use ",[14,545,546],{},"tput cols"," to adapt",[30,549,550,553],{},[33,551,552],{},"Avoid color dependence"," — make prompts readable in monochrome terminals; color should enhance, not carry meaning alone",[30,555,556,559],{},[33,557,558],{},"Use standard characters"," — box-drawing and block elements render consistently; custom font glyphs require Nerd Fonts",[30,561,562,565],{},[33,563,564],{},"Separate banner from prompt"," — show ASCII art once on session start, keep the recurring prompt minimal",[19,567,569],{"id":568},"key-takeaways","Key Takeaways",[27,571,572,575,578,581,584,587],{},[30,573,574],{},"Custom prompts provide visual context — machine identity, git status, language versions — at a glance",[30,576,577],{},"Starship is the most portable option, working across Bash, Zsh, Fish, and PowerShell",[30,579,580],{},"Powerlevel10k offers the deepest Zsh integration with instant prompt and transient prompt features",[30,582,583],{},"Custom PS1 scripts work without dependencies but require manual maintenance",[30,585,586],{},"Keep ASCII banners compact, test at narrow terminal widths, and ensure readability without color",[30,588,589],{},"Box-drawing characters are the safest choice for cross-terminal compatibility",[19,591,593],{"id":592},"related-guides","Related Guides",[27,595,596,603,609],{},[30,597,598],{},[599,600,602],"a",{"href":601},"\u002Fguides\u002Fascii-art-guide","ASCII Art Guide: Creating Text-Based Visuals",[30,604,605],{},[599,606,608],{"href":607},"\u002Fguides\u002Ffiglet-fonts-explained","FIGlet Fonts Explained: How ASCII Text Banners Work",[30,610,611],{},[599,612,614],{"href":613},"\u002Fguides\u002Fascii-banners-cli-tools","Creating ASCII Banners for CLI Tools",[19,616,618],{"id":617},"try-it-yourself","Try It Yourself",[10,620,621,622,626],{},"Design your own ASCII art with our free ",[599,623,625],{"href":624},"\u002Ftools\u002Fascii-art","ASCII Art"," generator. Enter any text, choose a FIGlet font, and copy the result to customize your terminal prompt or CLI tool splash screen.",[628,629,630],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":71,"searchDepth":84,"depth":84,"links":632},[633,634,635,636,637,638,639,640],{"id":21,"depth":84,"text":22},{"id":60,"depth":84,"text":61},{"id":272,"depth":84,"text":273},{"id":369,"depth":84,"text":370},{"id":524,"depth":84,"text":525},{"id":568,"depth":84,"text":569},{"id":592,"depth":84,"text":593},{"id":617,"depth":84,"text":618},"2026-05-28","Learn how to add ASCII art to your terminal prompt — Starship, Powerlevel10k, custom PS1 scripts, and tips for readable, functional prompt designs.","md",{"immutable":87},"\u002Fguides\u002Fascii-art-terminal-prompts",{"title":5,"description":642},"guides\u002Fascii-art-terminal-prompts","cgNELvMLkgwPNp7tPvOAct78uLsuuKj-Bh960vuR0jc",1780401331511]