[{"data":1,"prerenderedAt":851},["ShallowReactive",2],{"guide-ascii-art-terminal-banners":3},{"id":4,"title":5,"body":6,"date":843,"description":844,"extension":845,"meta":846,"navigation":394,"path":847,"readingTime":398,"seo":848,"stem":849,"__hash__":850},"guides\u002Fguides\u002Fascii-art-terminal-banners.md","ASCII Art for Terminal Banners",{"type":7,"value":8,"toc":825},"minimark",[9,14,18,26,30,33,152,158,163,190,194,197,203,213,218,224,229,235,239,242,337,341,344,449,452,486,490,494,505,617,621,725,729,755,759,762,780,784,805,809,812,821],[10,11,13],"h2",{"id":12},"why-terminal-banners-matter","Why Terminal Banners Matter",[15,16,17],"p",{},"When you open a terminal or run a CLI tool, the first thing you see sets the tone. A well-crafted ASCII art banner immediately tells users what tool they're using, adds personality, and makes your command-line interface feel polished instead of bare.",[15,19,20,21,25],{},"Terminal banners are everywhere — from ",[22,23,24],"code",{},"neofetch"," system info screens to custom shell prompts, from Docker container MOTDs to game splash screens. They transform a blank terminal into a branded experience.",[10,27,29],{"id":28},"choosing-a-font-for-terminal-banners","Choosing a Font for Terminal Banners",[15,31,32],{},"The most common way to generate terminal banners is with FIGlet, a tool that converts plain text into large ASCII letters using font files. Each font has a distinct personality:",[34,35,36,55],"table",{},[37,38,39],"thead",{},[40,41,42,46,49,52],"tr",{},[43,44,45],"th",{},"Font Style",[43,47,48],{},"Best For",[43,50,51],{},"Width",[43,53,54],{},"Example Use",[56,57,58,75,90,106,121,137],"tbody",{},[40,59,60,66,69,72],{},[61,62,63],"td",{},[22,64,65],{},"standard",[61,67,68],{},"General purpose",[61,70,71],{},"Medium",[61,73,74],{},"CLI tool headers",[40,76,77,82,85,87],{},[61,78,79],{},[22,80,81],{},"slant",[61,83,84],{},"Modern, dynamic look",[61,86,71],{},[61,88,89],{},"Dev tool splash screens",[40,91,92,97,100,103],{},[61,93,94],{},[22,95,96],{},"banner",[61,98,99],{},"Wide, blocky impact",[61,101,102],{},"Wide",[61,104,105],{},"Server MOTDs",[40,107,108,113,116,118],{},[61,109,110],{},[22,111,112],{},"block",[61,114,115],{},"Bold headings",[61,117,102],{},[61,119,120],{},"Documentation headers",[40,122,123,128,131,134],{},[61,124,125],{},[22,126,127],{},"small",[61,129,130],{},"Compact terminals",[61,132,133],{},"Narrow",[61,135,136],{},"Embedded info panels",[40,138,139,144,147,149],{},[61,140,141],{},[22,142,143],{},"thin",[61,145,146],{},"Minimalist aesthetic",[61,148,133],{},[61,150,151],{},"Dotfile configs",[15,153,154,155,157],{},"Keep your terminal width in mind. Most terminals default to 80 columns, so measure your banner output. A ",[22,156,96],{},"-font title longer than 8 characters will likely wrap on standard terminals.",[159,160,162],"h3",{"id":161},"font-selection-tips","Font Selection Tips",[164,165,166,176,184,187],"ul",{},[167,168,169,170,172,173,175],"li",{},"Prefer narrow fonts (",[22,171,127],{},", ",[22,174,143],{},") for long project names",[167,177,178,179,172,181,183],{},"Use wide fonts (",[22,180,96],{},[22,182,112],{},") only when you control the terminal width",[167,185,186],{},"Test your banner at both 80 and 120 columns",[167,188,189],{},"Avoid fonts that rely on extended ASCII — they break on some terminals",[10,191,193],{"id":192},"adding-style-with-blocks-and-borders","Adding Style with Blocks and Borders",[15,195,196],{},"A raw FIGlet output works, but borders and decorative elements elevate it. Here are common patterns:",[15,198,199],{},[200,201,202],"strong",{},"Box drawing with double lines:",[204,205,210],"pre",{"className":206,"code":208,"language":209},[207],"language-text","╔══════════════════════════════╗\n║   _   _ ___  ___ ___  ___   ║\n║  | | | \u002F __|| __| _ \\\u002F __|  ║\n║  | |_| \\__ \\| _||   \u002F\\__ \\  ║\n║   \\___\u002F|___\u002F|___|_|_\\|___\u002F  ║\n╚══════════════════════════════╝\n","text",[22,211,208],{"__ignoreMap":212},"",[15,214,215],{},[200,216,217],{},"Single-line box with separator:",[204,219,222],{"className":220,"code":221,"language":209},[207],"┌─────────────────────────────┐\n│     MY TOOL v2.0            │\n├─────────────────────────────┤\n│  A CLI for things           │\n└─────────────────────────────┘\n",[22,223,221],{"__ignoreMap":212},[15,225,226],{},[200,227,228],{},"Hash border:",[204,230,233],{"className":231,"code":232,"language":209},[207],"################################\n#   __  __ ____  ____          #\n#  |  \\\u002F  \u002F ___||  _ \\ ___    #\n#  | |\\\u002F| \\___ \\| |_) \u002F __|   #\n#  | |  | |___) |  __\u002F\\__ \\   #\n#  |_|  |_|____\u002F|_|   |___\u002F   #\n################################\n",[22,234,232],{"__ignoreMap":212},[159,236,238],{"id":237},"box-drawing-character-reference","Box Drawing Character Reference",[15,240,241],{},"Use Unicode box-drawing characters for clean borders. They render correctly on virtually all modern terminals:",[34,243,244,257],{},[37,245,246],{},[40,247,248,251,254],{},[43,249,250],{},"Character",[43,252,253],{},"Code Point",[43,255,256],{},"Use",[56,258,259,272,285,298,311,324],{},[40,260,261,266,269],{},[61,262,263],{},[22,264,265],{},"─",[61,267,268],{},"U+2500",[61,270,271],{},"Horizontal line",[40,273,274,279,282],{},[61,275,276],{},[22,277,278],{},"│",[61,280,281],{},"U+2502",[61,283,284],{},"Vertical line",[40,286,287,292,295],{},[61,288,289],{},[22,290,291],{},"┌",[61,293,294],{},"U+250C",[61,296,297],{},"Top-left corner",[40,299,300,305,308],{},[61,301,302],{},[22,303,304],{},"┐",[61,306,307],{},"U+2510",[61,309,310],{},"Top-right corner",[40,312,313,318,321],{},[61,314,315],{},[22,316,317],{},"└",[61,319,320],{},"U+2514",[61,322,323],{},"Bottom-left corner",[40,325,326,331,334],{},[61,327,328],{},[22,329,330],{},"┘",[61,332,333],{},"U+2518",[61,335,336],{},"Bottom-right corner",[10,338,340],{"id":339},"color-and-ansi-escape-codes","Color and ANSI Escape Codes",[15,342,343],{},"Monochrome banners work fine, but ANSI color codes add impact. Most modern terminals support 256-color or true-color output:",[204,345,349],{"className":346,"code":347,"language":348,"meta":212,"style":212},"language-bash shiki shiki-themes github-light github-dark","# Red banner text\nprintf \"\\033[31m\"\nfiglet \"DEPLOY\"\nprintf \"\\033[0m\"\n\n# Gradient effect using 256-color palette\nfor i in {196..202}; do\n  printf \"\\033[38;5;${i}m█\\033[0m\"\ndone\n","bash",[22,350,351,360,371,381,389,396,402,428,443],{"__ignoreMap":212},[352,353,356],"span",{"class":354,"line":355},"line",1,[352,357,359],{"class":358},"sJ8bj","# Red banner text\n",[352,361,363,367],{"class":354,"line":362},2,[352,364,366],{"class":365},"sj4cs","printf",[352,368,370],{"class":369},"sZZnC"," \"\\033[31m\"\n",[352,372,374,378],{"class":354,"line":373},3,[352,375,377],{"class":376},"sScJk","figlet",[352,379,380],{"class":369}," \"DEPLOY\"\n",[352,382,384,386],{"class":354,"line":383},4,[352,385,366],{"class":365},[352,387,388],{"class":369}," \"\\033[0m\"\n",[352,390,392],{"class":354,"line":391},5,[352,393,395],{"emptyLinePlaceholder":394},true,"\n",[352,397,399],{"class":354,"line":398},6,[352,400,401],{"class":358},"# Gradient effect using 256-color palette\n",[352,403,405,409,413,416,419,422,425],{"class":354,"line":404},7,[352,406,408],{"class":407},"szBVR","for",[352,410,412],{"class":411},"sVt8B"," i ",[352,414,415],{"class":407},"in",[352,417,418],{"class":411}," {",[352,420,421],{"class":376},"196..202}",[352,423,424],{"class":411},"; ",[352,426,427],{"class":407},"do\n",[352,429,431,434,437,440],{"class":354,"line":430},8,[352,432,433],{"class":365},"  printf",[352,435,436],{"class":369}," \"\\033[38;5;${",[352,438,439],{"class":411},"i",[352,441,442],{"class":369},"}m█\\033[0m\"\n",[352,444,446],{"class":354,"line":445},9,[352,447,448],{"class":407},"done\n",[15,450,451],{},"Keep these rules in mind:",[164,453,454,461,472,479],{},[167,455,456,457,460],{},"Always reset colors with ",[22,458,459],{},"\\033[0m"," to avoid bleeding into subsequent output",[167,462,463,464,467,468,471],{},"Detect terminal color support before emitting codes — use ",[22,465,466],{},"tput colors"," or the ",[22,469,470],{},"COLORTERM"," environment variable",[167,473,474,475,478],{},"Provide a ",[22,476,477],{},"--no-color"," flag for CI\u002FCD pipelines and log files",[167,480,481,482,485],{},"Avoid blinking (",[22,483,484],{},"\\033[5m",") — it's widely considered annoying",[10,487,489],{"id":488},"practical-integration-patterns","Practical Integration Patterns",[159,491,493],{"id":492},"shell-profile-banners","Shell Profile Banners",[15,495,496,497,500,501,504],{},"Add a banner to your ",[22,498,499],{},".bashrc"," or ",[22,502,503],{},".zshrc",":",[204,506,508],{"className":346,"code":507,"language":348,"meta":212,"style":212},"# Only show on interactive shells\nif [[ $- == *i* ]]; then\n  echo \"\"\n  figlet -f small \"$(whoami)@$(hostname)\"\n  echo \"  Last login: $(last -1 \"$(whoami)\" | awk '{print $4, $5, $6}')\"\n  echo \"\"\nfi\n",[22,509,510,515,543,551,577,606,612],{"__ignoreMap":212},[352,511,512],{"class":354,"line":355},[352,513,514],{"class":358},"# Only show on interactive shells\n",[352,516,517,520,523,526,529,532,534,537,540],{"class":354,"line":362},[352,518,519],{"class":407},"if",[352,521,522],{"class":411}," [[ ",[352,524,525],{"class":365},"$-",[352,527,528],{"class":407}," ==",[352,530,531],{"class":407}," *",[352,533,439],{"class":411},[352,535,536],{"class":407},"*",[352,538,539],{"class":411}," ]]; ",[352,541,542],{"class":407},"then\n",[352,544,545,548],{"class":354,"line":373},[352,546,547],{"class":365},"  echo",[352,549,550],{"class":369}," \"\"\n",[352,552,553,556,559,562,565,568,571,574],{"class":354,"line":383},[352,554,555],{"class":376},"  figlet",[352,557,558],{"class":365}," -f",[352,560,561],{"class":369}," small",[352,563,564],{"class":369}," \"$(",[352,566,567],{"class":376},"whoami",[352,569,570],{"class":369},")@$(",[352,572,573],{"class":376},"hostname",[352,575,576],{"class":369},")\"\n",[352,578,579,581,584,587,590,592,594,597,600,603],{"class":354,"line":391},[352,580,547],{"class":365},[352,582,583],{"class":369}," \"  Last login: $(",[352,585,586],{"class":376},"last",[352,588,589],{"class":365}," -1",[352,591,564],{"class":369},[352,593,567],{"class":376},[352,595,596],{"class":369},")\" ",[352,598,599],{"class":407},"|",[352,601,602],{"class":376}," awk",[352,604,605],{"class":369}," '{print $4, $5, $6}')\"\n",[352,607,608,610],{"class":354,"line":398},[352,609,547],{"class":365},[352,611,550],{"class":369},[352,613,614],{"class":354,"line":404},[352,615,616],{"class":407},"fi\n",[159,618,620],{"id":619},"nodejs-cli-banners","Node.js CLI Banners",[204,622,626],{"className":623,"code":624,"language":625,"meta":212,"style":212},"language-javascript shiki shiki-themes github-light github-dark","import figlet from 'figlet'\n\nconst banner = figlet.textSync('my-cli', { font: 'slant' })\nconsole.log(`\\n${banner}\\n  Version ${pkg.version}\\n`)\n","javascript",[22,627,628,642,646,678],{"__ignoreMap":212},[352,629,630,633,636,639],{"class":354,"line":355},[352,631,632],{"class":407},"import",[352,634,635],{"class":411}," figlet ",[352,637,638],{"class":407},"from",[352,640,641],{"class":369}," 'figlet'\n",[352,643,644],{"class":354,"line":362},[352,645,395],{"emptyLinePlaceholder":394},[352,647,648,651,654,657,660,663,666,669,672,675],{"class":354,"line":373},[352,649,650],{"class":407},"const",[352,652,653],{"class":365}," banner",[352,655,656],{"class":407}," =",[352,658,659],{"class":411}," figlet.",[352,661,662],{"class":376},"textSync",[352,664,665],{"class":411},"(",[352,667,668],{"class":369},"'my-cli'",[352,670,671],{"class":411},", { font: ",[352,673,674],{"class":369},"'slant'",[352,676,677],{"class":411}," })\n",[352,679,680,683,686,688,691,694,697,699,702,704,707,710,713,716,718,720,722],{"class":354,"line":383},[352,681,682],{"class":411},"console.",[352,684,685],{"class":376},"log",[352,687,665],{"class":411},[352,689,690],{"class":369},"`",[352,692,693],{"class":365},"\\n",[352,695,696],{"class":369},"${",[352,698,96],{"class":411},[352,700,701],{"class":369},"}",[352,703,693],{"class":365},[352,705,706],{"class":369},"  Version ${",[352,708,709],{"class":411},"pkg",[352,711,712],{"class":369},".",[352,714,715],{"class":411},"version",[352,717,701],{"class":369},[352,719,693],{"class":365},[352,721,690],{"class":369},[352,723,724],{"class":411},")\n",[159,726,728],{"id":727},"python-cli-banners","Python CLI Banners",[204,730,734],{"className":731,"code":732,"language":733,"meta":212,"style":212},"language-python shiki shiki-themes github-light github-dark","from pyfiglet import figlet_format\n\nbanner = figlet_format(\"myapp\", font=\"standard\")\nprint(f\"\\n{banner}  v{__version__}\\n\")\n","python",[22,735,736,741,745,750],{"__ignoreMap":212},[352,737,738],{"class":354,"line":355},[352,739,740],{},"from pyfiglet import figlet_format\n",[352,742,743],{"class":354,"line":362},[352,744,395],{"emptyLinePlaceholder":394},[352,746,747],{"class":354,"line":373},[352,748,749],{},"banner = figlet_format(\"myapp\", font=\"standard\")\n",[352,751,752],{"class":354,"line":383},[352,753,754],{},"print(f\"\\n{banner}  v{__version__}\\n\")\n",[10,756,758],{"id":757},"performance-considerations","Performance Considerations",[15,760,761],{},"FIGlet font rendering is fast for single outputs, but avoid these pitfalls:",[164,763,764,767,770,777],{},[167,765,766],{},"Don't render banners in tight loops or hot paths",[167,768,769],{},"Cache rendered output if your CLI starts repeatedly (e.g., shell completion)",[167,771,772,773,776],{},"Strip ANSI codes when piping to files — check ",[22,774,775],{},"isatty(stdout)"," before adding color",[167,778,779],{},"For containers, keep MOTD banners short to avoid slowing SSH login",[10,781,783],{"id":782},"related-guides","Related Guides",[164,785,786,793,799],{},[167,787,788],{},[789,790,792],"a",{"href":791},"\u002Fguides\u002Fascii-art-guide","ASCII Art Guide",[167,794,795],{},[789,796,798],{"href":797},"\u002Fguides\u002Ffiglet-fonts-explained","Figlet Fonts Explained",[167,800,801],{},[789,802,804],{"href":803},"\u002Fguides\u002Ftext-art-history","Text Art History",[10,806,808],{"id":807},"try-it-yourself","Try It Yourself",[15,810,811],{},"Ready to create your own terminal banner? Use our free ASCII art generator to preview fonts, adjust widths, and copy formatted output directly into your project.",[15,813,814,815],{},"👉 ",[789,816,818],{"href":817},"\u002Ftools\u002Fascii-art",[200,819,820],{},"Free ASCII Art Generator",[822,823,824],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}",{"title":212,"searchDepth":362,"depth":362,"links":826},[827,828,831,834,835,840,841,842],{"id":12,"depth":362,"text":13},{"id":28,"depth":362,"text":29,"children":829},[830],{"id":161,"depth":373,"text":162},{"id":192,"depth":362,"text":193,"children":832},[833],{"id":237,"depth":373,"text":238},{"id":339,"depth":362,"text":340},{"id":488,"depth":362,"text":489,"children":836},[837,838,839],{"id":492,"depth":373,"text":493},{"id":619,"depth":373,"text":620},{"id":727,"depth":373,"text":728},{"id":757,"depth":362,"text":758},{"id":782,"depth":362,"text":783},{"id":807,"depth":362,"text":808},"2026-05-28","Create eye-catching terminal splash screens and CLI banners with ASCII art techniques.","md",{"immutable":394},"\u002Fguides\u002Fascii-art-terminal-banners",{"title":5,"description":844},"guides\u002Fascii-art-terminal-banners","SkXJ4cfNswfRrrvdiYyrhyTrjaZj-TSjdvUiBh4nkFE",1780401331488]