Little-planet line drawing with a fan of stars

Planetaire Mono

B612 LETTERFORMS
HACK INFRASTRUCTURE
NERD FONT ICONS

Planetaire Mono is a beautiful, highly legible monospace font for terminals, editors, and agentic work.

B612 is the typeface Airbus developed and validated in legibility studies for cockpit displays. Planetaire Mono adapts B612 Mono for modern use by adding weights, punctuation and symbols from Hack, and optional icons from Nerd Fonts. The result is highly usable and licensed freely for personal, commercial, and open source use.

About B612

B612 began not as a typeface but as an aviation research program. In 2010 Airbus, ENAC (the French civil aviation university), and the Université de Toulouse III set out to define and validate an “aeronautical font” for cockpit screens: text a pilot can read correctly while fatigued, at oblique angles, or under vibration, glare, or near-darkness.

The shapes were derived experimentally before they were drawn. Jean-Luc Vinot (ENAC) and Sylvie Athènes (Toulouse III) built confusion matrices of which characters readers mistake for others (“Legible, are you sure?” at CHI 2012). In their controlled study, the prototype that became B612 drew slightly more correct reads than Verdana and clearly outperformed the legacy avionics font. Airbus then commissioned the Montpellier interface studio Intactile Design (Nicolas Chauveau, Thomas Paillot, and Jonathan Favre-Lamarine) to draw the full family of eight variants.

B612 is named for the asteroid home of the Little Prince by Antoine de Saint-Exupéry, who was himself an aviator.

B612’s unusual character is a humanist answer to an instrument-panel problem. Where earlier cockpit fonts went monolinear and rigid, B612 keeps stroke contrast, opens counters, and lengthens ascenders and descenders. Each word’s silhouette resolves quickly. At stroke junctions it carries small notches (light traps) that keep joins from filling in on bright, low-contrast displays. In 2017, B612 was released as open source through the Eclipse Polarsys project.

About Planetaire Mono

B612 as it circulates today, including the version on Google Fonts, has oddities and uneven symbols that make it awkward in modern applications and terminals. Planetaire Mono fixes this by merging B612’s letters and digits into Hack Nerd Font’s base:

  • B612 letterforms for letters, digits, and extended Latin, Greek, and Cyrillic.
  • Hack punctuation and symbols for {}[]()<> and the rest.
  • Ten variants across five weights (400/500/600/700/800), including added SemiBold (600) and ExtraBold (800) weights, the latter especially useful as boldface in the terminal.
  • Over 10,000 Nerd Font icons (Powerline, Font Awesome, Devicons) in the Extended package, part of 12,000+ total glyphs.
  • A dotted zero: B612’s zero with a center dot for clear 0 vs O, in circle (default) and rectangle (ss01) variants.

Hack has its own lineage: Bitstream Vera Mono (2003) became DejaVu Mono, which Chris Simpkins reworked in 2015 into a face tuned for source code at small sizes. Its signature is functional punctuation: brackets, braces, parentheses, and operators are drawn at a heavier weight and given extra spacing next to letters, so they stay distinct in dense code. B612’s own punctuation lacks that weight.

The new name distinguishes the fonts and is required by the B612 license, which reserves the B612 name.

A Personal Note

Like architecture, typography is a functional art form. A design may initially appear attractive, but you can’t know its true qualities until you live close to it. Or work within it.

A couple of years ago, I was building a terminal and surveyed monospace fonts to find the best ones. B612 wasn’t my obvious first choice, but after I tried many of the classic modern options available as Nerd Fonts, it still just felt better over time. But its technical flaws were a disappointment: it couldn’t fully replace a modern workhorse like Hack or JetBrains Mono. I made a hybrid of B612 that I was quite happy with, but it wasn’t in a clean enough form to publish.

Now, Claude Code and Opus 4.8 have made it a pleasure to consolidate this work as Planetaire Mono. I’ve used dozens of terminal fonts over the years, and it is now what I use every day.

Thanks to agentic coding, monospace fonts are now in greater use than anyone could ever have imagined. I hope Planetaire Mono’s aesthetics lighten the hours you spend with your agents, editors, and terminals.

Credits

  • Planetaire Mono: assembled and maintained by Joshua Levy.
  • B612 Mono: letterforms by Intactile Design for Airbus. Planetaire Mono takes its letters, digits, and extended Latin, Greek, and Cyrillic glyphs from B612.
  • Hack: Chris Simpkins’ typeface designed for source code. It provides Planetaire Mono’s base font structure: punctuation, symbols, metrics, and Nerd Font integration.
  • Nerd Fonts: Ryan McIntyre’s icon patching project. Planetaire Mono Extended includes 10,000+ developer icons, including Powerline, Font Awesome, Devicons, Material Design, and more, via the Hack Nerd Font base.
  • carlosedp: Carlos Eduardo de Paula’s B612 Nerd Font fork, which inspired the dotted zero. It is not a build dependency.

License

Planetaire Mono is released under the SIL Open Font License 1.1 (OFL-1.1), the standard license for open fonts. In practical terms:

  • Use it for anything, free. Set text in Planetaire Mono in documents, books, websites, apps, videos, and commercial products, with no fee and no permission needed.
  • No credit required for use. Setting text in the font does not obligate you to attribute Planetaire Mono or B612 anywhere. Credit is welcome but optional.
  • Bundle and redistribute freely, but keep the license with the files. If you ship the font files themselves, include the bundled license and copyright notices. You may not sell the font files on their own.
  • Don’t reuse the B612 name for modified versions. OFL lets an author reserve font names, and “B612” is reserved, so a derivative cannot be distributed under that name.

This is a summary, not legal advice; the full OFL text is binding. The upstream sources carry their own licenses: B612 under OFL-1.1 and EPL-2.0; Hack under MIT and the Bitstream Vera License; Nerd Fonts glyph fonts under OFL-1.1 with the patcher tooling under MIT. Full license texts ship in the licenses/ folder of each release archive. The build tooling in this repo is MIT.

FAQ

  • Does it have ligatures? No. Neither B612 nor Hack includes them, and Planetaire Mono keeps every character distinct, true to its legibility-first design. It’s possible we could find a way to package ligatures from another font in the future, but it would have to match Hack’s heavier punctuation style.
  • Why a dotted zero rather than a slashed zero? A slash can be mistaken for the Scandinavian Ø; a center dot cannot. The dot is a circle by default, with a rectangle variant via ss01.
  • How is this different from B612 Mono on Google Fonts? That release has four styles and B612’s original symbols, which are harder to read (especially the quote marks), and its 0 and O are easy to confuse. Planetaire Mono replaces the punctuation and symbols with Hack’s and adds the extra weights, the dotted zero, and the Nerd Font icons.
  • Why not fix B612 upstream? The upstream project has been dormant for years, and its license reserves the B612 name, so an adapted version must ship under a new name regardless. The build pipeline works over the released B612 fonts, so upstream improvements can still be merged if the project revives.

Samples

Typeface Specification

Design

ClassificationMonospace (fixed)
LetterformsB612 Mono (humanist)
PackagesExtended, Text
Styles10 (5 weights × 2)
Units per em2000
Advance width1204 (0.602 em)
Italic angle0°, true italics

Weights

Regular400
Medium500
SemiBold600
Bold700
ExtraBold800

Vertical Metrics (per 2000 em)

Cap height1458
x-height1094
Ascender1856
Descender-472
Line gap0

Glyph Coverage

Extended12,138 glyphs
Text1,317 glyphs

Formats

Local installTTF
WebWOFF2 + @font-face CSS

OpenType

defaultcircle-dot zero
ss01 / zerorectangle-dot zero

Text Sample

The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs. How vexingly quick daft zebras jump!

In the great void between stars, instruments must be read without error. Every glyph must be unambiguous: the digit 0 distinct from the letter O, the numeral 1 clearly not a lowercase l or uppercase I. B612 was born from this requirement. Originally designed for cockpit displays at Airbus, where a misread character could mean the difference between FL350 and FL850. Planetaire Mono inherits that precision and pairs it with the full symbol coverage a programmer needs: braces, brackets, pipes, arrows, and 12,000 icons ready for a modern terminal.

French · German · Spanish · Turkish

Les naïfs ægithales hâtifs pondent au zéphyr joyeux. Falsches Üben von Xylophonmusik quält jeden größeren Zwerg. El veloz murciélago hindú comía feliz cardillo y kiwi. Pijamalı hasta yağız şoföre çabucak güvendi.

Greek

Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία.

Cyrillic

Съешь же ещё этих мягких французских булок, да выпей чаю. Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства.

Iconic Texts

Alan Turing · “Computing Machinery and Intelligence” (1950)

I propose to consider the question, “Can machines think?” This should begin with definitions of the meaning of the terms “machine” and “think.” The definitions might be framed so as to reflect so far as possible the normal use of the words, but this attitude is dangerous. If the meaning of the words “machine” and “think” are to be found by examining how they are commonly used it is difficult to escape the conclusion that the meaning and the answer to the question, “Can machines think?” is to be sought in a statistical survey such as a Gallup poll. But this is absurd.

RFC 1 · Steve Crocker, UCLA · 7 April 1969
Network Working Group                                   Steve Crocker
Request for Comments: 1                                          UCLA
                                                         7 April 1969


                         Title:   Host Software
                        Author:   Steve Crocker
                          Installation:   UCLA
                          Date:   7 April 1969
             Network Working Group Request for Comment:   1


Introduction

   The software for the ARPA Network exists partly in the IMPs and
   partly in the respective HOSTs.  BB&N has specified the software of
   the IMPs and it is the responsibility of the HOST groups to agree on
   HOST software.

Code

import math

def analyze_trajectory(altitude: float, velocity: float) -> dict:
    """Calculate orbital parameters."""

    G = 6.674e-11  # gravitational constant
    M = 5.972e24

    if altitude > 400_000:
        orbit_type = "LEO"
    elif altitude > 35_786_000:
        orbit_type = "GEO"

    period = 2 * math.pi * math.sqrt(altitude**3 / (G * M))

    return {"type": orbit_type, "period": period, "v": velocity}

Terminal

planetaire $ eza -l --icons=always .
drwxr-xr-x@    - levy 15 Feb 23:07 devtools
drwxr-xr-x@    - levy 15 Feb 23:07 docs
drwxr-xr-x@    - levy 15 Feb 23:07 fonts
.rw-r--r--@ 7.6k levy 16 Feb 09:14 LICENSE
.rw-r--r--@ 1.3k levy 16 Feb 09:14 Makefile
.rw-r--r--@ 6.4k levy 15 Feb 23:07 README.md

planetaire $ python -c "print('Hello from Planetaire Mono!')"
Hello from Planetaire Mono!

planetaire $ git log --oneline -3
5bd69c5 Switch B612 source to original polarsys/b612
a1c8e3f Add font comparison and regression detection
e927d01 Refactor merge pipeline for original B612

Character Set

Basic Latin uppercase: from B612
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Basic Latin lowercase: from B612
a b c d e f g h i j k l m n o p q r s t u v w x y z
Digits: 0–9 from B612 (zero modified with center dot)
0 1 2 3 4 5 6 7 8 9
Punctuation and symbols: from Hack
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
Extended Latin: from B612
À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß
à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
Greek: from B612
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
Cyrillic: from B612
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я

Weight Comparison

Regular (400)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
Italic (400)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
Medium (500)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
Medium Italic (500)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
SemiBold (600)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
SemiBold Italic (600)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
Bold (700)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
Bold Italic (700)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
ExtraBold (800)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%
ExtraBold Italic (800)
The quick brown fox jumps over the lazy dog
0123456789 AaBbCcDd {[(>)]} !@#$%

Size Waterfall

8Planetaire Mono
9Planetaire Mono
10Planetaire Mono
11Planetaire Mono
12Planetaire Mono
14Planetaire Mono
16Planetaire Mono
20Planetaire Mono
24Planetaire Mono
30Planetaire Mono
36Planetaire Mono
44Planetaire Mono
Legibility at display size
Il1| O0o 0123

Legibility

Character disambiguation
I l 1 |
uppercase I · lowercase l · digit 1 · pipe
O 0 o
uppercase O · digit 0 · lowercase o
r n m
r · n · m — clearly distinct in B612
5 S 8 B
digit 5 vs S · digit 8 vs B
2 Z 6 G
digit 2 vs Z · digit 6 vs G
; :
semicolon vs colon — distinct dot size and spacing
( ) { } [ ]
parens vs braces vs brackets
- – —
hyphen-minus vs en dash vs em dash
Zero dot variants (OpenType)
Default (circle dot)
0   0 O o
FL350 FL850 10.0.0.1
ss01 / zero (rectangle dot)
0   0 O o
FL350 FL850 10.0.0.1
Bracket and delimiter pairs
( ) { } [ ] < > « » ‹ ›
Mathematical and programming operators
+ - * / = ≠ ≤ ≥ ± × ÷ → ← ↑ ↓

Symbols and Special Characters

Standard punctuation
. , ; : ! ? - – — ( ) [ ] { } / \ @ # $ % ^ & * _ + = ~ `
Quotes and apostrophes
" ' ` “ ” ‘ ’ « » ‹ ›
Typographic and special characters
§ ¶ © ® ™ ° · … † ‡ ¤ ¢ £ ¥ € ¬ ¦
Box drawing and block elements
─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ═ ║ ╔ ╗ ╚ ╝ █ ▌ ▐ ░ ▒ ▓

Spacing Review

A visual proof of the monospace invariant: each glyph sits in a box drawn at its own advance width (red rules mark the true cell edges). Because the font is monospace, every cell is the same width and all ink sits between its rules.

Standard coding characters: true cell widths

Provenance and License

Planetaire MonoAssembled and maintained by Joshua Levy.
B612 MonoLetterforms by Intactile Design for Airbus. Planetaire Mono takes its letters, digits, and extended Latin, Greek, and Cyrillic glyphs from B612.
HackChris Simpkins’ typeface designed for source code. It provides Planetaire Mono’s base font structure: punctuation, symbols, metrics, and Nerd Font integration.
Nerd FontsRyan McIntyre’s icon patching project. Planetaire Mono Extended includes 10,000+ developer icons, including Powerline, Font Awesome, Devicons, Material Design, and more, via the Hack Nerd Font base.
carlosedpCarlos Eduardo de Paula’s B612 Nerd Font fork, which inspired the dotted zero. It is not a build dependency.

Planetaire Mono is released under the SIL Open Font License 1.1 (OFL-1.1). Constituent fonts: B612 Mono (OFL-1.1 + EPL-2.0); Hack (MIT + Bitstream Vera License); Nerd Fonts (glyph fonts OFL-1.1, patcher MIT).

High Legibility

B612’s letterforms keep commonly confused characters distinct: Il1|, O0o, rn vs m, 5S, 8B, 2Z. Coverage spans Latin Extended A/B, Greek and Coptic, Cyrillic, and Latin Extended Additional: over 12,000 glyphs in the Extended package.

I l 1 |
uppercase I · lowercase l · digit 1 · pipe
O 0 o
uppercase O · digit 0 · lowercase o
r n m
r · n · m, clearly distinct in B612
5 S 8 B
digit 5 vs S · digit 8 vs B
2 Z 6 G
digit 2 vs Z · digit 6 vs G

Installation

Two Packages: Text and Extended

Both packages share the same letterforms and the same 10 variants, and both ship in two formats: TTF (in ttf/) for local install and WOFF2 (in web/, with a ready @font-face stylesheet) for the web. They differ only in glyph coverage:

  • Planetaire Mono Extended is the full font: everything in Text plus the 10,000+ Nerd Font icons and Powerline glyphs that terminals and CLIs draw, so it is a superset of Text. Recommended for local and terminal use, where TTF is the standard option.
  • Planetaire Mono Text is a lightweight subset (no icons), so it is far smaller. Recommended for the web, where the WOFF2 stylesheet is the standard option. (This page is set in Planetaire Mono Text.)

Either package works for either purpose; the recommendations are just the common, size-conscious defaults.

Download

Planetaire Mono is available in two packages, built from the same letterforms. Get the latest from GitHub Releases:

PackageBest forIncludesDownload
Planetaire Mono Text (standard) Websites, documents, reading Letters, punctuation, Greek/Cyrillic, box-drawing. No icons. TTF + WOFF2 (~65 KB/weight WOFF2). .tar.xz ~1 MB .zip ~1.3 MB
Planetaire Mono Extended (full) Terminals, coding, icon-rich CLIs Everything in Text plus all 10,000+ Nerd Font icons and Powerline. TTF + WOFF2. .tar.xz ~19 MB .zip ~24 MB

Both packages ship the same 10 variants, each archive laid out as ttf/ (for local install) and web/ (WOFF2 plus an @font-face stylesheet). To install, unzip the archive and add the TTFs:

  • macOS / Windows: double-click the ttf/*.ttf files and click Install.
  • Linux: copy them into ~/.local/share/fonts/ and run fc-cache -fv.

Weights

Additional Weights

Each package ships 10 variants across 5 weights.

Planetaire Mono adds an ExtraBold (800) weight for terminal bold: the jump from Regular (400) to Bold (700) is often too subtle at terminal sizes, and ExtraBold gives bold text (prompts, headings, highlighted output) the contrast to stand out.

VariantWeightRecommended Use
Regular400Normal terminal text
Italic400Emphasized text
Medium500UI labels, intermediate weight
Medium Italic500UI labels italic
SemiBold600UI emphasis, intermediate weight
SemiBold Italic600UI emphasis italic
Bold700Standard bold
Bold Italic700Standard bold italic
ExtraBold800Terminal bold text
ExtraBold Italic800Terminal bold italic

ExtraBold for Terminals

For best results, map your terminal’s bold to ExtraBold (800) rather than Bold (700): the heavier stroke gives bold output (prompts, headings, highlighted text) clear contrast at terminal sizes, which is how the font is designed to be used. Per-terminal setup is under Terminal Configuration.

Terminal Configuration

After installing the font, point your terminal at Planetaire Mono Extended. For best results, map bold text to ExtraBold (800) rather than Bold (700): the heavier stroke gives bold output clear contrast at terminal sizes (12–16px), which is how the font is designed to be used.

macOS Terminal.app

Open Terminal → Settings… → Profiles, pick your profile, open the Text tab, and in the Font section click Change to select Planetaire Mono Extended at 14 pt. Check Use bold fonts so bold output renders in bold. Terminal.app uses the family’s Bold (700) and has no per-weight bold mapping.

Ghostty

In ~/.config/ghostty/config:

font-family = "Planetaire Mono Extended"
font-size = 14
font-style-bold = "ExtraBold"
font-style-bold-italic = "ExtraBold Italic"

Run ghostty +list-fonts if a style name does not resolve.

Alacritty

In ~/.config/alacritty/alacritty.toml:

[font]
size = 14.0

[font.normal]
family = "Planetaire Mono Extended"
style = "Regular"

[font.bold]
family = "Planetaire Mono Extended"
style = "ExtraBold"

[font.italic]
family = "Planetaire Mono Extended"
style = "Italic"

[font.bold_italic]
family = "Planetaire Mono Extended"
style = "ExtraBold Italic"

WezTerm

In ~/.wezterm.lua:

local wezterm = require 'wezterm'
local config = wezterm.config_builder()

config.font = wezterm.font('Planetaire Mono Extended')
config.font_size = 14.0

-- Map bold to ExtraBold for maximum contrast
config.font_rules = {
  {
    intensity = 'Bold',
    font = wezterm.font('Planetaire Mono Extended', { weight = 'ExtraBold' }),
  },
  {
    intensity = 'Bold',
    italic = true,
    font = wezterm.font('Planetaire Mono Extended', { weight = 'ExtraBold', style = 'Italic' }),
  },
}

return config

iTerm2

Open Preferences → Profiles → Text, set Font to Planetaire Mono Extended at 14 pt, and check Draw bold text in bold font.

Kitty

In ~/.config/kitty/kitty.conf:

font_family      family="Planetaire Mono Extended"
bold_font        family="Planetaire Mono Extended" style="ExtraBold"
italic_font      family="Planetaire Mono Extended" style="Italic"
bold_italic_font family="Planetaire Mono Extended" style="ExtraBold Italic"
font_size        14.0

VS Code terminal

In settings.json:

{
  "terminal.integrated.fontFamily": "Planetaire Mono Extended",
  "terminal.integrated.fontSize": 14,
  "terminal.integrated.fontWeight": "normal",
  "terminal.integrated.fontWeightBold": "800"
}

Web

Both packages include WOFF2 web fonts and a ready stylesheet in web/. The Text package is recommended for the web (much smaller, no icons); use Extended only if you need the Nerd Font icons in the browser. From the Text archive’s web/:

<link rel="stylesheet" href="planetaire-mono-text.css">
<style>
  body { font-family: "Planetaire Mono Text", ui-monospace, monospace; }
  /* rectangle zero instead of the dotted circle: */
  .code { font-feature-settings: "ss01" 1; }
</style>

Each weight and style is declared (400/500/600/700/800, upright and italic) with font-display: swap.

Build from Source

This repo is the build tooling, not the font itself — you only need it to build from source. The fonts are distributed via GitHub Releases.

Requires Python 3.12+ and uv.

uv sync --all-extras
make fonts        # download (verify) -> build Extended + Text -> validate

The pipeline merges B612 glyphs into the Hack Nerd Font base (normalizing UPM 2048 to 2000), adds the dotted zero, sets family and version metadata, applies fixes, and validates coverage and style linking.