PurrMoji is a lightweight cross-platform open-source emoji picker designed to make browsing, searching, and copying emojis quick and easy.
Supported emoji packages:
| Emoji Package | Preview |
|---|---|
| Emojitwo 2.2.5 | emojipedia.org/joypixels/2.2.5 |
| Noto Emoji 17.0 | emojipedia.org/google/17.0 |
| OpenMoji 16.0 | emojipedia.org/openmoji |
| Segoe UI Emoji 1.33 | emojipedia.org/microsoft |
| Twemoji 14.0 | emojipedia.org/twitter/twemoji-14.0 |
| Kaomoji | Includes support for various kaomoji sets |
| Custom | Allows you to add your own images, icons or emojis (PNG, SVG, TTF) |
This project was initially created specifically for the OpenMoji open-source emoji library. OpenMoji's mission is to create and maintain a consistent set of open-source emojis but not to develop an emoji picker app, hence this software.
Since then, the goal of the PurrMoji project has evolved, expanding its support to include multiple emoji packages.
- A drop-down menu to choose between 5 available emoji sets (EmojiTwo, Noto, OpenMoji, Segoe UI Emoji, Twemoji) + a few Kaomojis
- A drop-down menu to display All emojis / Only the ones with variations / Only the ones without variations
- A search field (to quickly find emojis by name or by unicode) and a button to clear the search field
- Radio buttons to display either Colored or Black emojis, PNG / SVG / TTF emojis, 72 px or 618 px emojis sets
- A button to view Recent / Favorite / Frequently used emojis
- 12 buttons to switch between emoji categories
- Up to 3 rows of tabs for sub-categories (depending on the category)
- An emoji preview with emoji name and unicode code
- A contrast button to invert emoji colors (useful when viewing black emojis with the Dark theme)
- A color button to change emoji background color (located next to the "Size" controls)
- An input field to directly set the emoji size and two - + buttons to decrease or increase emojis size
- A 'Hotkeys' dialog to give information about available hotkeys and customize them
- A 'Settings' dialog to configure which preferences are saved persistently across app restarts
- "Add to favorites" button, a "Copy to clipboard" button, a "Clear" button in Recent / Favorites
- Custom folder support: add your own PNG, SVG, or TTF icons and emojis alongside the bundled emoji packages
- A Global Hotkey to instantly show/hide PurrMoji from anywhere using a customizable shortcut (default: Ctrl+Alt+X)
- An Auto-Start option to automatically launch PurrMoji when the OS session starts (Windows, Linux, macOS)
- An option to minimize PurrMoji to the system tray for background operation
If you have ideas or want to report a bug about PurrMoji, feel free to open an issue on this Github repository.
If you want to contribute to the emoji library projects themselves, please visit their respective repositories linked above.
If you want to chat about PurrMoji, you can join my Discord server: https://discord.gg/DSVQthQKsf
----- Other info -----
-
All emoji formats (PNG, SVG, TTF) are rendered using Skia-Python for optimal performance and quality. Skia provides hardware-accelerated rendering with direct memory processing, ensuring fast loading and beautiful emoji display across all formats.
-
When Skia is not available or fails to render an emoji, PyQt5's native renderer (QSvgRenderer for SVG, QPixmap for PNG) is used as a fallback system.
On the first launch, PurrMoji will display an extraction dialog window to unpack the emoji packages from their compressed ZIP archives.
The extraction takes a few moments and shows a progress bar with the current operation. Once completed, the emoji packages are stored in:
- Windows:
%APPDATA%\PurrMoji\emoji_packages\ - macOS:
~/Library/Application Support/PurrMoji/emoji_packages/ - Linux:
~/.local/share/PurrMoji/emoji_packages/
The Custom emoji folder and Kaomoji data remain in the application directory and don't require extraction. Segoe UI Emoji also doesn't require extraction as it uses the system TTF font already installed on Windows ; these emojis are only available on Windows and won't be shown on Linux/MacOS.
Each emoji package included in PurrMoji retains its original license:
| Emoji Package | License |
|---|---|
| Emojitwo (2.2.5) | https://emojitwo.github.io/#emojione-2x-artwork-license |
| Noto Emoji (17.0) | https://github.com/googlefonts/noto-emoji?tab=OFL-1.1-1-ov-file |
| OpenMoji (16.0) | https://github.com/hfg-gmuend/openmoji?tab=CC-BY-SA-4.0-1-ov-file#readme |
| Segoe UI Emoji (1.33) | https://learn.microsoft.com/en-us/typography/fonts/font-faq (these emojis are not bundled in PurrMoji, they are just displayed on Windows and not available on Linux) |
| Twemoji (14.0) | https://github.com/twitter/twemoji/blob/master/LICENSE-GRAPHICS |
Each emoji has been designed by contributors to their respective projects, who remain the original authors of their works.
A huge "thanks" to all contributors of these projects.
The "Custom" folder allows you to add your own PNG/SVG/TTF icons or emojis. The test icons provided in "Custom" are from the following websites. You can remove them from the "Custom" folder and add your own ones.
| File type | License |
|---|---|
| SVG Icons: SVGrepo.com | SVGrepo Licensing (CC0) |
| PNG Icons: 3dicons.co | 3dicons License (CC0) |
| Icon | Source | License |
|---|---|---|
| Sleeping Kitty | freesvg.org/sleeping-kitty | Public Domain |
| Mono Contrast | freesvg.org/mono-contrast | Public Domain |
| Refresh | icons8.com/icon/14296/refresh | CC BY-SA 4.0 |
- PurrMoji has been released under the GPL 3.0 license. This license only covers the source code of PurrMoji.


