πͺ¨ why use many token when few token do trick β Claude Code skill that cuts 65% of tokens by talking like caveman
GitHub emoji tools for C# and .NET
GEmojiSharp gives you libraries and tools for turning GitHub emoji aliases into raw emoji, and raw emoji back into aliases. It ships as a core .NET library, ASP.NET Core and Blazor packages, a `dotnet` tool, a PowerToys Run plugin, a CmdPal extension, and an MCP server.
Builders who want GitHub emoji support in .NET code, terminal work, or agent-connected tools.
You can look up, render, and convert GitHub emoji without wiring the data and parsing yourself.
What it does
Core emoji library
Static methods and extension methods to get emoji by alias or raw character, emojify text, demojify text, search by description, and read skin tone variants.
ASP.NET Core helpers
TagHelpers, HtmlHelpers, and a body component helper for rendering emoji in Razor views.
Blazor component
A Razor component that renders GitHub emoji in Blazor Web apps and WebAssembly apps.
Dotnet tool
A global `emoji` command with `raw`, `alias`, `emojify`, `demojify`, and `export` commands.
MCP server
An MCP server with tools for `all`, `get`, `find`, `emojify`, and `demojify`.
PowerToys and CmdPal integrations
A PowerToys Run plugin and a Command Palette extension for searching emoji from the Windows launcher.
How to get it
- 1Install
dotnet tool install -g GEmojiSharp.DotnetTool
- 2Update
dotnet tool update -g GEmojiSharp.DotnetTool
- 3Uninstall
dotnet tool uninstall -g GEmojiSharp.DotnetTool
- 4Run
emoji --help
- 5Run
emoji raw --help
- 6Get raw emojis
emoji raw "grinning cat" emoji raw grinning cat emoji r grinning cat
README
GEmojiSharp :octocat:
GitHub Emoji for C# and .NET:
netstandard2.0- ASP.NET Core
- Blazor
dotnettool- PowerToys Run plugin
- PowerToys Command Palette extension
- MCP Server
π :octopus:
β :heavy_plus_sign:
π :cat2:
β©΅
β€οΈ :heart:
Content
- Introduction
GEmojiSharpGEmojiSharp.AspNetCoreGEmojiSharp.BlazorGEmojiSharp.DotnetToolGEmojiSharp.PowerToysRunGEmojiSharp.McpServer- Samples
- Attribution
Introduction
Using emojis on GitHub is accomplish with emoji aliases enclosed by colons:
:+1: This PR looks great - it's ready to merge! :shipit:
:+1: This PR looks great - it's ready to merge! :shipit:
GEmojiSharp make this possible in C#. The library contains a static array of all valid emoji in GitHub Flavored Markdown.
That is the intersection of the emoji.json database and the API with available emojis.
A visual referense of all GitHub Emoji:
GEmojiSharp
GitHub Emoji for C# and .NET π¦
Static methods:
Emoji.Get(":tada:").Raw; // π
Emoji.Get("π").Alias(); // :tada:
Emoji.Raw(":tada:"); // π
Emoji.Alias("π"); // :tada:
Emoji.Emojify(":tada: initial commit"); // π initial commit
Emoji.Demojify("π initial commit"); // :tada: initial commit
Emoji.Find("party popper").First().Raw; // π
Emoji.Get("βοΈ").RawSkinToneVariants(); // βπ», βπΌ, βπ½, βπΎ, βπΏ
Extension methods:
":tada:".GetEmoji().Raw; // π
"π".GetEmoji().Alias(); // :tada:
":tada:".RawEmoji(); // π
"π".EmojiAlias(); // :tada:
":tada: initial commit".Emojify(); // π initial commit
"π initial commit".Demojify(); // :tada: initial commit
"party popper".FindEmojis().First().Raw; // π
Regular expression pattern to match all emojis:
var text = "Lorem ππ ipsum";
var matches = Regex.Matches(text, Emoji.RegexPattern);
string.Join(string.Empty, matches.Select(x => x.Value)); // ππ
Regex.Replace(text, Emoji.RegexPattern, string.Empty); // Lorem ipsum
GEmojiSharp.AspNetCore
GitHub Emoji for ASP.NET Core π¦
The package includes:
- TagHelpers
- HtmlHelpers
TagHelpers
Update the _ViewImports.cshtml file, to enable tag helpers in all Razor views:
@addTagHelper *, GEmojiSharp.AspNetCore
Use the <emoji> tag or emoji attribute to render emojis:
<span emoji=":tada:"></span>
<emoji>:tada: initial commit</emoji>
Standard emoji characters are rendered like this:
<g-emoji class="g-emoji" alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png">π</g-emoji>
Custom GitHub emojis are rendered as images:
<img class="emoji" title=":octocat:" alt=":octocat:" src="https://github.githubassets.com/images/icons/emoji/octocat.png" height="20" width="20" align="absmiddle">
Use CSS to properly position the custom GitHub emojis images:
.emoji {
background-color: transparent;
max-width: none;
vertical-align: text-top;
}
Use the JavaScript from g-emoji-element to support old browsers.
Backports native emoji characters to browsers that don't support them by replacing the characters with fallback images.
Add a libman.json file:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"provider": "unpkg",
"library": "@github/g-emoji-element@1.2.0",
"destination": "wwwroot/lib/g-emoji-element/"
}
]
}
And add the script to the _Layout.cshtml file:
<script src="~/lib/g-emoji-element/dist/index.js"></script>
Do you want to use emoji anywhere, on any tag, in the body? Then you can use the BodyTagHelperComponent.
Use any tag to render emojis:
<h1>Hello, :earth_africa:</h1>
Registration via services container:
using GEmojiSharp.AspNetCore;
using Microsoft.AspNetCore.Razor.TagHelpers;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddTransient<ITagHelperComponent, BodyTagHelperComponent>();
Registration via Razor file:
@page
@model GEmojiSharp.Sample.Web.Pages.ComponentModel
@using Microsoft.AspNetCore.Mvc.Razor.TagHelpers
@using GEmojiSharp.AspNetCore
@inject ITagHelperComponentManager manager;
@{
ViewData["Title"] = "Component";
manager.Components.Add(new BodyTagHelperComponent());
}
Registration via Page Model or controller:
using GEmojiSharp.AspNetCore;
using Microsoft.AspNetCore.Mvc.Razor.TagHelpers;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace GEmojiSharp.Sample.Web.Pages
{
public class ComponentModel : PageModel
{
private readonly ITagHelperComponentManager _tagHelperComponentManager;
public IndexModel(ITagHelperComponentManager tagHelperComponentManager)
{
_tagHelperComponentManager = tagHelperComponentManager;
}
public void OnGet()
{
_tagHelperComponentManager.Components.Add(new BodyTagHelperComponent());
}
}
}
HtmlHelpers
Update the _ViewImports.cshtml file, to enable HTML helpers in all Razor views:
@using GEmojiSharp.AspNetCore
Use the Emoji extension methods to render emojis:
@Html.Emoji(":tada: initial commit")
@Html.Emoji(x => x.Text)
GEmojiSharp.Blazor
GitHub Emoji for Blazor π¦
The package is a Razor class library (RCL) with a Razor component.
Update the _Imports.razor file, to enable the component in all Razor views:
@using GEmojiSharp.Blazor
[!NOTE] In a Blazor Web App (.NET 8 or later), the component requires an interactive render mode applied either globally to the app or to the component definition.
Set the global render mode in App.razor:
<Routes @rendermode="InteractiveServer" />
or per page/component:
@rendermode InteractiveServer
Use the <Emoji> component to render emojis:
<Emoji>:tada: initial commit</Emoji>
Standard emoji characters are rendered like this:
<g-emoji class="g-emoji" alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png">π</g-emoji>
Custom GitHub emojis are rendered as images:
<img class="emoji" title=":octocat:" alt=":octocat:" src="https://github.githubassets.com/images/icons/emoji/octocat.png" height="20" width="20" align="absmiddle">
GEmojiSharp.DotnetTool
GitHub Emoji
dotnettool π§°

Installation
Install:
dotnet tool install -g GEmojiSharp.DotnetTool
Update:
dotnet tool update -g GEmojiSharp.DotnetTool
Uninstall:
dotnet tool uninstall -g GEmojiSharp.DotnetTool
Enable emoji in the terminal:
- Open Settings / Time & Language / Language / Administrative Language Settings / Change system locale...
- Check "Beta: Use Unicode UTF-8 for worldwide language support" and click OK
- Reboot the PC for the change to take effect

Usage
emoji --help
Description:
GitHub Emoji dotnet tool
Usage:
emoji [command] [options]
Options:
--version Show version information
-?, -h, --help Show help and usage information
Commands:
r, raw <args> Get raw emojis
a, alias <args> Get emoji aliases
e, emojify <args> Replace aliases in text with raw emojis
d, demojify <args> Replace raw emojis in text with aliases
export <args> Export emoji data to <json|toml|xml|yaml>
Raw
emoji raw --help
Description:
Get raw emojis
Usage:
emoji raw [<args>...] [options]
Arguments:
<args> Find emojis via description, category, alias or tag
Options:
-st, --skin-tones Include skin tone variants
-c, --copy Copy to clipboard
-?, -h, --help Show help and usage information
Examples π
Get raw emojis:
emoji raw "grinning cat"
emoji raw grinning cat
emoji r grinning cat
πΊ
πΈ
Copy to clipboard:
emoji raw "grinning cat" --copy
emoji r grinning cat -c
πΊπΈ
Skin tone variants:
emoji raw "victory" --skin-tones
emoji r victory -st
βοΈ
βπ»
βπΌ
βπ½
βπΎ
βπΏ
Alias
emoji alias --help
Description:
Get emoji aliases
Usage:
emoji alias [<args>...] [options]
Arguments:
<args> Find emojis via description, category, alias or tag
Options:
-c, --copy Copy to clipboard
-?, -h, --help Show help and usage information
Examples π
Get emoji aliases:
emoji alias "grinning cat"
emoji alias grinning cat
emoji a grinning cat
:smiley_cat:
:smile_cat:
Copy to clipboard:
emoji alias "grinning cat" --copy
emoji a grinning cat -c
:smiley_cat::smile_cat:
Emojify
emoji emojify --help
Description:
Replace aliases in text with raw emojis
Usage:
emoji emojify [<args>...] [options]
Arguments:
<args> A text with emoji aliases
Options:
-c, --copy Copy to clipboard
-?, -h, --help Show help and usage information
Examples π
Replace aliases in text with raw emojis:
emoji emojify ":tada: initial commit"
emoji emojify :tada: initial commit
emoji e :tada: initial commit
π initial commit
Copy to clipboard:
emoji emojify ":tada: initial commit" --copy
emoji e :tada: initial commit -c
Demojify
emoji demojify --help
Description:
Replace raw emojis in text with aliases
Usage:
emoji demojify [<args>...] [options]
Arguments:
<args> A text with raw emojis
Options:
-c, --copy Copy to clipboard
-?, -h, --help Show help and usage information
Examples π
Replace raw emojis in text with aliases:
emoji demojify "π initial commit"
emoji demojify π initial commit
emoji d π initial commit
:tada: initial commit
Copy to clipboard:
emoji demojify "π initial commit" --copy
emoji d π initial commit -c
Export
emoji export --help
Description:
Export emoji data to <json|toml|xml|yaml>
Usage:
emoji export [<args>...] [options]
Arguments:
<args> Find emojis via description, category, alias or tag
Options:
-f, --format <format> Format the data as <json|toml|xml|yaml>
-c, --copy Copy to clipboard
-?, -h, --help Show help and usage information
Formats:
jsontomlxmlyaml
Examples π
Export emoji data to json:
emoji export "grinning cat" --format json
emoji export grinning cat --format json
emoji export grinning cat -f json
emoji export grinning cat
[
{
"Raw": "πΊ",
"Description": "grinning cat",
"Category": "Smileys & Emotion",
"Aliases": [
"smiley_cat"
],
"Tags": null,
"UnicodeVersion": "6.0",
"IosVersion": "6.0",
"Filename": "1f63a",
"IsCustom": false
},
{
"Raw": "πΈ",
"Description": "grinning cat with smiling eyes",
"Category": "Smileys & Emotion",
"Aliases": [
"smile_cat"
],
"Tags": null,
"UnicodeVersion": "6.0",
"IosVersion": "6.0",
"Filename": "1f638",
"IsCustom": false
}
]
Copy to clipboard:
emoji export "grinning cat" --format json --copy
emoji export "grinning cat" -c
GEmojiSharp.PowerToysRun
GitHub Emoji PowerToys Run plugin ποΈππ

Installation
The plugin is developed and tested with PowerToys v0.83.0.
Install:
- Install PowerToys
- Exit PowerToys
- Download the
.zipfile from the latest release and extract it to:%LocalAppData%\Microsoft\PowerToys\PowerToys Run\Plugins
- Start PowerToys

Usage
- Open PowerToys Run with
alt + space - Type
emoji- A list of all emojis will be displayed
- Continue to type to find emojis via description, category, alias or tag
- Use β¬οΈ and β¬οΈ keys to select an emoji
- Press
Enterto copy the selected raw emoji to clipboard - Press
ctrl + cto copy the selected emoji aliases to clipboard - Press
ctrl + Enterto copy the selected raw emoji skin tone variants to clipboard- For emoji that supports skin tone modifiers
Emojify:
- You can paste a text containing emoji aliases to replace them with raw emojis
Demojify:
- You can paste a text containing raw emojis to replace them with aliases
Configuration
Change action keyword:
- Open PowerToys
- Select PowerToys Run
- Scroll down to Plugins
- Expand
GEmojiSharp - Change Direct activation command

GEmojiSharp.McpServer
GitHub Emoji MCP Server π€
all
Returns all emojis.

get
Gets the emoji associated with the alias or raw Unicode string.

find
Returns emojis that match the Description, Category, Aliases or Tags.

emojify
Replaces emoji aliases with raw Unicode strings.

demojify
Replaces raw Unicode strings with emoji aliases.

Samples
The samples folder contains...
GEmojiSharp.Sample.BlazorWeb, a Blazor Web App (InteractiveServer render mode)GEmojiSharp.Sample.BlazorWebAssembly, a Blazor WebAssembly AppGEmojiSharp.Sample.Web, a ASP.NET Core Web App (Razor Pages)
The Blazor WebAssembly app is showcased here:
Attribution
Repositories consulted when building this:
Files in the repo
- .github
- samples
- src
- tests
- .editorconfig
- .gitattributes
- .gitignore
- Analyzers.props
- Directory.Build.props
- GEmojiSharp.AspNetCore.md
- GEmojiSharp.Blazor.md
- GEmojiSharp.DotnetTool.gif
- GEmojiSharp.DotnetTool.md
- GEmojiSharp.McpServer-all.png
- GEmojiSharp.McpServer-demojify.png
- GEmojiSharp.McpServer-emojify.png
- GEmojiSharp.McpServer-find.png
- GEmojiSharp.McpServer-get.png
- GEmojiSharp.McpServer.md
- GEmojiSharp.md
- GEmojiSharp.PowerToysRun-Configuration.png
- GEmojiSharp.PowerToysRun.gif
- GEmojiSharp.PowerToysRun.md
- GEmojiSharp.PowerToysRun.png
- GEmojiSharp.Sample.BlazorWebAssembly.png
- GEmojiSharp.slnx
- icon.pdn
- icon.png
- LICENSE
- nuget-local.bat
- pack.bat
- README.md
- stylecop.json
- test.bat
- Unicode.png
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More tools
The best-benchmarked open-source AI memory system. And it's free.
Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
