Best free programming fonts
This is not just a simple list of monospaced fonts for formatting code snippets. It’s a very selective set of typefaces that are designed and optimized for programming and contain ligatures for common programming multi-character combinations.
Fira Code
Fira Code is an extension of Fira Mono, that adds a lot of ligatures. ou can use this free extension on your own or search for other best programming services to help with your task.For preview images, details, and pull requests visit the Fira Code Github repo.

Projects that use Fira Code: All JetBrains products, CodePen, Blink Shell, Klipse, IlyaBirman.net, EvilMartians.com, Web Maker, FromScratch.
Fira Code works in more than 50 editors.
- Language support: Latin Extended, Cyrillic Extended, Greek Extended
- Format: desktop (.OTF, .TTF), webfonts (.WOFF, .WOFF2, .EOT)
- License: SIL Open Font License v1.1 → Licenses explained
- Includes 5 styles: Light, Regular, Medium, Bold, Retina
Iosevka
Iosevka is a slender monospace sans-serif and slab-serif typeface inspired by Pragmata Pro, M+ and PF DIN Mono.
For preview images, details, and pull requests visit the Iosevka Github repo.
View specimen (all characters and styles)

- Language support: 2000 glyphs (Latin Extended, Greek, Cyrillic, phonetic, PowerLine glyphs). IosevkaCC variant is also provided to be compatible with most CJK typefaces
- Format: desktop (.TTF), webfonts (.WOFF, .WOFF2)
- License: SIL Open Font License v1.1 → Licenses explained
- Includes 54 styles:
- Iosevka Sans: 9 weights (Thin, Extralight, Light, Regular, Medium, Semibold, Bold, Extrabold, Heavy) plus matching italics and obliques
- Iosevka Slab: 9 weights (Thin, Extralight, Light, Regular, Medium, Semibold, Bold, Extrabold, Heavy) plus matching italics and obliques
- Has OpenType features like multiple Stylistic Alternates Sets
Hasklig
Hasklig is a fork of Source Code Pro that adds ligatures for code.
Composite glyphs are problematic in languages such as Haskell that use operators like =>, -< or >>= extensively. The readability of complex code improves with ligatures.
Some Haskell programmers use Unicode symbols (⇒, ← etc.), which are valid in the GHC. However, the symbols are one character wide and eye-straining. And when displayed as substitutes to the underlying multi-character representation, the characters go out of alignment.

- Language support: Latin Extended
- Format: desktop (.OTF)
- License: SIL Open Font License v1.1 → Licenses explained
- Includes 14 styles: 7 weights (ExtraLight, Light, Regular, Medium, SemiBold, Bold, Black) plus matching italics
Hack
Hack is designed to be a workhorse typeface for source code. It has great legibility at commonly used source code text sizes, with a sweet spot that runs in the 8 – 14 range.
View specimen

- Language support: ASCII, Latin-1, Latin Extended A, Greek, Cyrillic
- Format: desktop (.OTF)
- License: MIT License → See license text
- Includes 4 styles: 2 weights (Regular, Bold) plus matching italics
- Powerline Support: Yes, included by default
You can also check out Alt Hack, a stylistic alternate glyph library. It provides alternate glyph design source files (*.glif) to support drag + drop + overwrite existing source Unicode code point customization.