@djoeyg/pi-emoji
Slack-style :emoji: and kaomoji completion in the editor, with custom entries
Package details
Install @djoeyg/pi-emoji from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@djoeyg/pi-emoji- Package
@djoeyg/pi-emoji- Version
0.2.0- Published
- Oct 13, 2026
- Downloads
- 173/mo · 38/wk
- Author
- djoeyg
- License
- MIT
- Types
- extension
- Size
- 102.9 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@djoeyg/pi-emoji
Slack-style emoji for pi. Type : plus a few letters and pick from the popup; the emoji is inserted as plain text.
pi install npm:@djoeyg/pi-emoji
Usage
:tada→ pick🎉 :tada:. Names ignore_vs-, so:thumbs_upand:thumbs-upboth match.- Kaomoji use the same mechanism:
:shrug→¯\_(ツ)_/¯,:tableflip,:lenny, ... - Completion only starts at a word boundary after at least two characters, so
http://,10:30andfoo::barare left alone.
Custom entries
Run /emoji to add, remove or list entries. They are stored as a flat JSON map of name to replacement text:
~/.pi/agent/emoji.jsonfor all projects.pi/emoji.jsonfor one project (overrides user entries)
{ "elmo-fire": "🔥", "ship-it": "🚢 (ง'̀-'́)ง" }
Custom names override built-ins. Slack-style image emoji such as :elmo-fire: cannot be rendered in a terminal, so map them to any text you like.
Data
data/emoji.json is generated from emojibase shortcodes (Slack, GitHub and CLDR sets merged, Slack names win): node scripts/generate-emoji.mjs <emojibase-data/en>. Skin-tone variants are not included.