kotofetch is a small, configurable CLI tool that displays Japanese quotes in the terminal. It comes with built-in quotes and allows users to customize display options such as padding, width, translation display, and text styles.
Note
The latest release does not contain all the built-in quotes.
If you want all the built-in quotes, please add them manually by checking the quotes folder.
You can install the stable release from the AUR using any AUR helper:
yay -S kotofetchOr by cloning the AUR from here:
git clone https://aur.archlinux.org/kotofetch.git
cd kotofetch
makepkg -siIf you use Nix, you can install kotofetch using those commands:
git clone https://github.com/hxpe-dev/kotofetch.git
cd kotofetch
nix-buildYou can download prebuilt binaries for Linux, Windows and macOS from the Releases page.
| System / Distribution | File Extension | Description |
|---|---|---|
| Generic Linux | .tar.gz |
The most universal build. Extract and run the binary. |
| Debian / Ubuntu | .deb |
Install using dpkg. |
| Fedora / CentOS / openSUSE | .rpm |
For all RPM-based systems. |
| Windows | .exe or .zip |
The standalone .exe is ready to run. The .zip contains the executable. |
| macOS | .tar.gz |
Extract and run the binary. |
Requires Rust and Cargo:
git clone https://github.com/hxpe-dev/kotofetch.git
cd kotofetch
cargo install --path .After installation, you can run kotofetch from anywhere in your terminal.
You need to have a Japanese font installed on your machine.
One popular choice is the Noto CJK Font.
sudo pacman -S noto-fonts-cjk
sudo apt update
sudo apt install fonts-noto-cjk
sudo dnf install google-noto-cjk-fonts
sudo zypper install noto-fonts-cjk
brew tap homebrew/cask-fonts
brew install --cask font-noto-sans-cjk
User configuration lives in:
~/.config/kotofetch/config.toml # On Linux
~/Library/Application Support/kotofetch/config.toml # On macOS
%APPDATA%\kotofetch\config.toml # On WindowsHere you can customize:
horizontal_padding/vertical_padding- spacing around quoteswidth- max width for text wrapping (0for automatic width)show_translation- translation mode ("none","english","romaji","furigana")quote_color- named ANSI colors ("red","yellow","dim", etc.) or hex ("#ffcc00")translation_color- named ANSI colors ("red","yellow","dim", etc.) or hex ("#ffcc00")border_color- named ANSI colors ("red","yellow","dim", etc.) or hex ("#ffcc00")font_size- small, medium, or large (adds spacing between characters)bold- bold Japanese text (true/false)border- show a box border (true/false)rounded_border- show rounded border (needborderto be enabled) (true/false)source- show the quote source (true/false)modes- list of quote files to use (any.tomlfile in~/.config/kotofetch/quotes/or built-in)seed- RNG seed for random quotes (0for random seed)centered- center text (true/false)dynamic- dynamic re-centering of the text (true/false)
Example config.toml:
[display]
horizontal_padding = 3
vertical_padding = 1
width = 50
show_translation = "furigana"
quote_color = "#a3be8c"
translation_color = "dim"
border_color = "#be8ca3"
font_size = "medium"
bold = true
border = true
rounded_border = true
source = true
modes = ["proverb", "anime"]
seed = 0
centered = true
dynamic = falseYou can import your Anki decks as kotofetch quote files using the AnkiConnect plugin.
Requirements:
- Anki desktop must be running.
- AnkiConnect must be installed (plugin code:
2055492159).
Interactive import:
kotofetch init ankiThis connects to http://localhost:8765, shows your available decks, and walks you through mapping note fields (japanese text, translation, furigana reading) interactively.
Non-interactive import (for scripting):
kotofetch init w \
--deck "Core 2k" \
--japanese-field Expression \
--translation-field Meaning \
--furigana-field Reading \
--romaji-field Romaji \
--yesEach imported deck is saved as ~/.config/kotofetch/quotes/<deck-name>.toml. After importing, use it with:
kotofetch --modes <deck-name>Furigana support: if your note's japanese field contains Anki's native furigana syntax (食[た]べる), it is automatically converted to kotofetch's inline format (食(た)べる). If the japanese field has no readings, the furigana field is used as a fallback. HTML ruby tags (<ruby>/<rt>) are also converted.
Built-in quotes are embedded in the binary. To add your own quotes, create:
~/.config/kotofetch/quotes/ # On Linux
~/Library/Application Support/kotofetch/quotes/ # On macOS
%APPDATA%\kotofetch\quotes\ # On Windows- Place any
.tomlfile there. - The filenames can be arbitrary, the program automatically reads all
.tomlfiles in this folder. - Each
.tomlmust follow this structure:
[[quote]]
japanese = "逃(に)げちゃダメだ"
translation = "You mustn't run away."
romaji = "Nigeccha dame da"
source = "Neon Genesis Evangelion"
[[quote]]
japanese = "人(ひと)は心(こころ)で生(い)きるんだ"
translation = "People live by their hearts."
romaji = "Hito wa kokoro de ikiru nda"
source = "Your Name"Note: Furigana readings are embedded inline in the
japanesefield using parentheses:kanji(reading). The reading immediately follows the kanji it annotates. Compound (multi-kanji) words can share a single reading, e.g.大事(だいじ). Kanji without a(reading)after them simply have no annotation. The parentheses are automatically stripped in non-furigana display modes.
- These custom quotes automatically merge with the built-in ones.
You can see the built-in quotes in the quotes folder.
kotofetch # display a quote following the config
kotofetch --translation furigana # display furigana readings below kanji
kotofetch --horizontal-padding 3 # override specific config parameter temporarily
kotofetch --modes anime,mycustomquotes # display quotes from specific files| Mode | Description |
|---|---|
none |
Japanese text only |
english |
Shows English translation below Japanese |
romaji |
Shows romaji (romanized Japanese) below Japanese |
furigana |
Shows furigana readings below kanji (if available) |
Furigana displays readings centered below their kanji, supporting both single-kanji annotations (知(し)) and compound words (大海(たいかい)). Only quotes that include inline ruby markup in their japanese field will show furigana readings.
Contributions are welcome (donations too, they support me a lot in my work)! Here's how you can help:
- Fork the repository.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/kotofetch.git
cd kotofetch- Create a branch for your changes:
git checkout -b feature/my-feature- Make changes and commit:
git add .
git commit -m "Add my feature"- Push your branch:
git push origin feature/my-feature- Open a Pull Request on GitHub!
Made with ❤️ by hxpe
If you enjoy kotofetch, consider starring the GitHub repository!
