HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
tonsky
FiraCode
Clojure2015–2026
tonsky / FiraCode

FiraCode

Free monospaced font with programming ligatures

97Distinct people
107Mentions
3Explicit recommenders
82.2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Free monospaced font with programming ligatures

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

As for free, monospaced fonts, there is also FiraCode. Fira Code: free monospaced font with programming ligatures https://github.com/tonsky/FiraCode EDIT: @airstrike beat me to…

gala8y used a recommendation phrase. 3 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:56:56 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year107 dated mentions

Observed mentions: 2015-05-22 05:43:16 UTC to 2026-10-14 20:53:45 UTC.

0510152015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 9 mentions; 4 submissions, 5 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 15 mentions; 4 submissions, 11 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 12 mentions; 1 submissions, 11 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 16 mentions; 1 submissions, 15 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 9 mentions; 2 submissions, 7 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC945
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC909
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC15411
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC12111
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC16115
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC927
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC716
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC909
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC13112
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC404
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC211
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

What Hacker News says

107 sources
It is probably a bit easier to start from a language you are familiar with. That image intentionally is a mismatch of random arrows and operators that don't necessarily align to the semantics of real code. I think that's one of the things Fira Code's Readme [1] does a better job at than Berkeley Mono's page. The top big image breaks down the ligatures in high level categories or the programming language they are most associated with, side by side the version with a ligature. Further down the Readme you can several real examples from programming languages with the ligatures called out, giving you the context clues of what it looks like in a language you may be already familiar with. [1] https://github.com/tonsky/FiraCode/tree/6.2
In Shaping ligatures in monospace fonts
I happily use Fira Code [1] with ligatures. It has nothing to do with pushing coding style away from monospace, and everything to do with readability. Aesthetics are certainly a part of it but perfectly compatible with it too. Of particular note is that the JS arrow function becomes a real arrow ⇒, which is nicer than the operator-ish rendering of equals and a greater than sign. Other quality of life improvements are reshaping ripples of characters to be clearer, such as a reshape to www and **. Triple bar equals is nice too given the differences in JS. [1] https://github.com/tonsky/FiraCode
In Math4devs.com: List of mathematical symbols with their JavaScript equivalent
IME, this is like the golden age of terminal apps in general and macOS-compatible ones in particular. There are several really good terminals for macOS: iTerm2: (https://iterm2.com/) Kitty terminal (https://sw.kovidgoyal.net/kitty/) WezTerm termina (https://wezfurlong.org/wezterm/index.html) Alacritty (https://github.com/alacritty/alacritty) My daily driver is WezTerm… - Runs on Linux, macOS, Windows 10 and FreeBSD - Multiplex terminal panes, tabs and windows on local and remote hosts, with native mouse and scrollback (https://wezfurlong.org/wezterm/multiplexing.html) - Ligatures (https://github.com/tonsky/FiraCode#fira-code-monospaced-font...), Color Emoji and font fallback, with true color and dynamic color schemes (https://wezfurlong.org/wezterm/config/appearance.html#colors). - Hyperlinks (https://wezfurlong.org/wezterm/hyperlinks.htm
Read the rest
l) - Searchable Scrollback (https://wezfurlong.org/wezterm/scrollback.html) (use mouse wheel and `Shift-PageUp` and `Shift PageDown` to navigate, Ctrl-Shift-F to activate search mode) - xterm style selection of text with mouse; paste selection via `Shift-Insert` (bracketed paste is supported!) - SGR style mouse reporting (works in vim and tmux) - Render underline, double-underline, italic, bold, strikethrough (most other terminal emulators do not support as many render attributes) - Configuration via a configuration file (https://wezfurlong.org/wezterm/config/files.html) with hot reloading - Multiple Windows (Hotkey: `Super-N`) - Splits/Panes (Split horizontally/vertically: `Ctrl-Shift-Alt-%` and `Ctrl-Shift-Alt-"`, move between panes: `Ctrl-Shift-ArrowKey`) - Tabs (Hotkey: `Super-T`, next/prev: `Super-Shift-[` and `Super-Shift-]`, go-to: `Super-[1-9]`) - SSH client with native tabs (https://wezfurlong.org/wezterm/ssh.html) - Connect to serial ports for embedded/Arduino work (https://wezfurlong.org/wezterm/serial.html) - Connect to a local multiplexer server over unix domain sockets - Connect to a remote multiplexer using SSH or TLS over TCP/IP - iTerm2 compatible image protocol support, and built-in imgcat command (https://wezfurlong.org/wezterm/imgcat.html) - Kitty graphics support - Sixel graphics support (experimental: starting in `20200620-160318-e00b076c`)
In I just wanted Emacs to look nice – Using 24-bit color in terminals
Some other fonts use character variants for this, so you can personalize your own setup. For example, with Fira Code[0], if you want to tell VS Code to not use the long = for == but still space it in a less ugly way, instead of setting ligatures to true, you set it to "'ss08'", which will then do the same thing to === and != and !==. This is also where they can hide their 'overthinking' glyphs, so the discerning user can enable them but they won't disrupt you if you just install the font normally. For example I have ss06, ss07, and cv27 enabled, for distinct escaping backslashes, =~ and !~ operators, and smooth-square []. [0]: https://github.com/tonsky/FiraCode
In Monaspace
I think that is a stylistic decision to make it appear as if, but again, this ain't monospace any longer. In monospace one letter/symbol (printable character) has constant width. The ligature is one letter/symbol. so while the stylistic decision retains the monospace style of the replaced symbols, the ligature itself is double (or triple) sized compared with other symbols. IIRC this is commonly called "monospaced ligatures" ref https://github.com/tonsky/FiraCode/issues/712
In Ligatures in programming fonts: hell no (2019)

Showing the 15 most recent of 107 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.