README file from
GithubKaomoji
An Obsidian plugin for inserting kaomoji and custom emoji from a :shortcode
autocomplete.
Type : in any note, start typing a shortcode, and pick from the popup:
:shr → ¯\_(ツ)_/¯
:tf → (╯°□°)╯︵ ┻━┻
Desktop only. This plugin isn't available on Obsidian for iOS or Android.
Features
- Fuzzy matching — characters need only appear in order, so
:tffindstableflipand:shrgstill findsshrug - Ranked results — best match first, with matching characters highlighted
- Your own library — add, edit and remove shortcodes in the plugin settings
- Import / export — load pairs from a
.jsonfile or paste them in directly; export your whole set to the clipboard to share or back up - Works with anything text — kaomoji, ASCII art, unicode emoji, snippets you retype often
Usage
Type : followed by a shortcode, then press Enter or select a suggestion to
insert it; the typed :shortcode is replaced by the emoji. Typing just : lists
everything alphabetically.
Managing your emoji
Settings → Community plugins → Kaomoji
Each row is a shortcode and the text it inserts. Add emoji appends a blank row — fill in both fields and it saves automatically. The trash icon removes a saved entry.
Importing
Both import routes take a flat JSON object of "shortcode": "text" pairs:
{
"shrug": "¯\\_(ツ)_/¯",
"bear": "ʕ•ᴥ•ʔ",
"cat": "(=^・ω・^=)"
}
Use Import from JSON for a file, or paste into the Paste JSON box. Imports merge into your existing set rather than replacing it, and duplicate shortcodes are overwritten. Malformed entries are skipped rather than failing the whole file.
Backslashes need escaping in JSON —
¯\_(ツ)_/¯is written"¯\\_(ツ)_/¯".
Export to clipboard copies your current set in exactly this format, so it can be shared or re-imported elsewhere.
Installation
From the community directory
In Obsidian, go to Settings → Community plugins → Browse, search for Kaomoji, then select Install and Enable.
Manual installation
- Download
main.js,manifest.jsonandstyles.cssfrom the latest release - Create a folder named
kaomojiin your vault's.obsidian/plugins/directory - Put the three files inside it
- Reload Obsidian, then enable Kaomoji under Settings → Community plugins
Development
npm install
npm run dev # watch mode — rebuilds main.js on save
npm run build # production build, with a typecheck first
npm run lint
Clone into .obsidian/plugins/kaomoji in a test vault to develop against a live
Obsidian. Note that Obsidian doesn't hot-reload plugin code: after each rebuild,
toggle the plugin off and on in Community plugins, or reload the app.
Layout
| File | Responsibility |
|---|---|
src/main.ts |
Plugin lifecycle — registers the suggest and settings tab |
src/emoji-suggest.ts |
The EditorSuggest popup: trigger, rank, render, insert |
src/settings.ts |
Settings tab, emoji editor, import/export, JSON validation |
Settings are stored via Obsidian's loadData() / saveData() as a flat
Record<string, string> mapping shortcode to inserted text.
License
MIT © fattychuuna