FontGet ### A tiny, cross-platform, terminal based font manager that can discover, install, and manage fonts across Windows, Mac OS & Linux.


[![Version](https://img.shields.io/github/v/release/Graphixa/FontGet)](https://github.com/Graphixa/FontGet/releases) [![Go Version](https://img.shields.io/github/go-mod/go-version/Graphixa/FontGet)](go.mod) [![License](https://img.shields.io/github/license/Graphixa/Fontget)](LICENSE) [![CI](https://img.shields.io/github/actions/workflow/status/Graphixa/FontGet/ci.yml?label=CI)](https://github.com/Graphixa/FontGet/actions) [![Security](https://img.shields.io/github/actions/workflow/status/Graphixa/FontGet/security.yml?label=Security)](https://github.com/Graphixa/FontGet/actions)
Downloads (all releases) Downloads (latest release)
--- Fontget supports installing fonts from the following sources: Google Fonts | Nerd Fonts | The League of Moveable Type | FontSource | FontShare | Font Squirrel ---

If this project is useful to you, feel free to buy me a cuppa.

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B51V2JIV)
## Installation Install FontGet on your system using one of the commands below. FontGet is a single binary executable with no external dependencies. > Binaries are available for both `amd64` and `arm64` architectures. #### Mac, Linux (Shell) ```sh curl -fsSL https://raw.githubusercontent.com/Graphixa/FontGet/main/scripts/install.sh | sh ``` #### Windows (PowerShell) ```powershell irm https://raw.githubusercontent.com/Graphixa/FontGet/main/scripts/install.ps1 | iex ``` More installation options can be found in the [Installation Guide](docs/installation.md). ## Installation via Package Manager ### Windows **[WinGet](https://winstall.app/)** ``` winget install --id "Graphixa.FontGet" ``` **[Chocolatey](https://chocolatey.org/)** ```powershell choco install fontget ``` **[Scoop](https://scoop.sh/)** ```powershell scoop bucket add fontget https://github.com/Graphixa/scoop-bucket scoop install fontget ``` --- ### macOS **[Homebrew](https://formulae.brew.sh/)** ```sh brew tap Graphixa/homebrew-tap brew install fontget ``` --- ### Linux **[AUR (Arch User Repository)](https://aur.archlinux.org/packages/fontget)** (Arch + Arch-based distros) ```bash yay -S fontget # or paru -S fontget ``` ## Build and Install from Source Instructions for building FontGet from source can be found in the [Contributing guide](docs/contributing.md). ## Getting Started FontGet makes it easy to search, install, and manage fonts from various sources. Here are some common commands to get you started: ### Search for Fonts to Install ```bash fontget search "roboto" ``` ### Install a Font ```bash # Install a single font (using the font ID) fontget add "google.roboto" # Install multiple fonts at once fontget add "google.roboto" "google.open-sans" ``` ### Uninstall Font ```bash # Remove an installed font fontget remove "google.roboto" # Remove multiple installed fonts fontget remove "google.roboto" "google.open-sans" ``` ### List Installed Fonts ```bash # List all installed fonts fontget list # List all fonts matching "sans" fontget list "sans" ``` For a full list of commands refer to the [📖 Command Documentation](docs/usage.md) or by running `fontget help` in your terminal after installing. ## Additional resources - **[📚 FontGet documentation](docs/README.md)**: Everything about FontGet including, development, automation and more - **[⬇️ Installation Guide](docs/installation.md)**: Complete installation instructions for all platforms - **[🛟 How to Use FontGet](docs/usage.md)**: Complete command reference and usage examples - **[🤝 Contributing](docs/contributing.md)**: How to contribute to the project - **[🔎 FontGet-Sources](https://github.com/Graphixa/FontGet-Sources)**: The font data repository that powers FontGet ## Commands | Command | Purpose | Example | |--------|--------------|---------| | `help` | Show all fontget commands | `fontget help` | | `search` | Search for fonts across sources | `fontget search "roboto"` | | `browse` | Browse the font catalog interactively | `fontget browse` | | `add` | Install fonts from sources or local files/folders/zips | `fontget add "google.roboto"` | | `remove` | Uninstall fonts from the system | `fontget remove "google.roboto"` | | `list` | List installed fonts on the system | `fontget list` | | `info` | Show detailed info about a font | `fontget info "google.roboto"` | | `sources` | Manage font sources | `fontget sources` | | `config` | Manage configuration | `fontget config` | | `theme` | Pick a terminal theme interactively | `fontget theme` | | `export` | Export fonts to a manifest | `fontget export --output fonts.json` | | `import` | Import fonts from a manifest | `fontget import fonts.json` | | `backup` | Backup installed fonts files to a zip | `fontget backup --scope user` | | `version` | Show version/build info | `fontget version` | | `update` | Update FontGet | `fontget update` | | `completion` | Generate shell completions | `fontget completion` | --- > [!TIP] > For more detailed info on FontGet usage, run `fontget --help` or check out the [Documentation](docs/usage.md). ## Credits #### Design & UI - [Catppuccin](https://catppuccin.com/) (color palette) - [Bubble Tea](https://github.com/charmbracelet/bubbletea) by [Charmbracelet](https://github.com/charmbracelet) (TUI framework) #### Font sources - [Google Fonts](https://fonts.google.com/) - [Nerd Fonts](https://www.nerdfonts.com/) by [ryanoasis](https://github.com/ryanoasis/nerdfonts) - [Font Squirrel](https://www.fontsquirrel.com/) ## Why did I make FontGet? It started out as a way for me to re-install fonts every time I reinstalled my computer or get a new machine. As a graphic designer it's a pain to have to reload all my fonts and keep track of everything. With FontGet I can just run `fontget import`, or a custom script and have all my fonts reloaded. I've recently been assisting with deploying machines at my workplace and we always needed fonts loaded onto the machines before they were deployed to new users, so I kind of made FontGet to help solve the problem of deploying fonts to a heap of machines via scripting. I've also been getting into ricing Linux and Windows systems which always require different fonts, so I wanted something that was lightweight, cross-platform, and based in the terminal to quickly download the font I need. What started as a concept PowerShell script expanded into a fully fledged Go project to support not just Windows but also macOS and Linux. From there I just kinda fell in love with the project and added all the features that I (and maybe others) could want. ### Where does it go from here? Honestly apart from some bug fixes and some other cross platform tests and some optimizations, I don't think there are any features that I would want to add. There are a number of things that may not work 100% so I want to spend what spare time I have just improving the codebase and fixing up any little bugs that I've missed. If you have a problem or find a bug please [file an issue](https://github.com/Graphixa/FontGet/issues/new). Anyway thats my story. I hope you love using FontGet and please star if you do and feel free to [buy me a coffee](https://ko-fi.com/B0B51V2JIV) if it somehow saves you time or if you wamt tp show your appreciation! ## Other Items - This tool is licensed under the [MIT License](LICENSE) - To contribute, please read the [contributing instructions](docs/contributing.md). ## Support me If FontGet has helped you or you'd like to support me or the project, consider a one-time donation: [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B51V2JIV)