ChromeOS hterm (“Secure Shell extension”) is one of my favorite chrome extensions. It is a bit dull with its out-of-the-box monospace font though. In this post we’ll learn how to customize it.

Google Fonts

The easiest way to customize the Secure Shell extension to use a custom font is to select one from Google Fonts. Once you select a font from there, it will give you information like this:

Use on the web
To embed a font, copy the code into the <head> of your html
( ) <link> (x) @import

@import url('');

font-family: 'IBM Plex Sans', sans-serif;

All we have to do is to copy the URL within the url('...') fragment above, go to the settings of the Secure Shell extension, and then paste it there:

# Example 1: IBM Plex Sans
Custom CSS (URI):

# Example 2: Fira Code
Custom CSS (URI):;700&display=swap

# Example 3: Combine both;700&family=IBM+Plex+Sans&display=swap

And then set the extension to use it:

Text font family: "IBM Plex Sans", "Fira Code", monospace

From Secure Shell FAQ:

By default, we disable ligatures. Some fonts actively enable them like macOS’s Menlo (e.g. “ae” is rendered as “æ”). This messes up copying and pasting and is, arguably, not terribly legible for a terminal.

If your font supports ligatures, consider enabling them:

Custom CSS (inline text):

* {
    -webkit-font-feature-settings: "liga" on, "calt" on;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;

Not all fonts are available on Google Fonts though. For example, Hermit is one of my current monospace favorites: it’s not there1.


Many fonts are available on GitHub (or in other forges), checked into a git repository.

If you happen to find a .woff2 web font file laying therein, you could also use it in hterm:

Custom CSS (inline text):

@font-face {
  font-family: "Anonymous Pro";
  src: url(;

And then set the extension to use it:

Text font family: "Anonymous Pro", monospace

Note: I couldn’t get this method to work with .ttf or .otf.