desert-ant-labs/emo

Model

Emo

11

11 commits

1 linked in READMEs

updated Oct 16, 2026

See the code

README

Emo

Suggest emoji faster than you can type.

Multilingual on-device emoji suggestion.

Type a word or a sentence and get the emoji that fits. Tuned for to-dos, calendar entries, notes, and message drafts across 22 languages (including CJK, Arabic, Thai, Hindi, and more). The whole thing, model and tokenizer, is small (5MB on Apple via Core ML, 11MB via LiteRT elsewhere) and runs in well under 2ms on device.

"Dentist appointment" → 🦷 · "réserver un vol pour Tokyo" → ✈️ · "犬の散歩" → 🐕 · "จองโรงแรม" → 🏨

Try it

PlatformsiOS, macOS, tvOS, visionOS, Android, Linux, Windows, Browser, Node
Languages22
Weightsv0.7.0

Install

Swift (requirements)

.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "4.0.0")

Then add the Emo product to your target.

Kotlin (requirements)

implementation("ai.desertant:emo:4.0.0")

JavaScript (requirements)

npm i @desert-ant-labs/emo @litertjs/core   # browser
npm i @desert-ant-labs/emo                  # Node, prebuilt native core

Files

FileFormatSizeContents
emo.tfliteLiteRT / TFLite (int8)10.2MBRuns on Android, Linux, Node, and the web (bundled by default in the Kotlin SDK; downloaded on demand by the JavaScript SDK)
emo.mlmodelcCompiled Core ML4.6MBReady to load on Apple platforms (used by the Swift SDK)
emo_tokenizer.binUnigram tokenizer750KBTokenizer the runtime needs
emo_meta.jsonJSONtinyEmoji labels and runtime config

Older revisions (tags v0.6.0 and earlier) carry Emo.mlmodelc and emo.safetensors for SDK versions that predate the unified cross-platform migration.

Inputs and outputs

  • Input: a plain text string. Best on short, intent-oriented text.
  • Output: a probability distribution over the 812-emoji vocabulary; take the top-1 (or top-k). Optimized for top-1 relevance.

Languages

English, Spanish, Portuguese, French, German, Italian, Dutch, Russian, Polish, Turkish, Arabic, Chinese (Simplified & Traditional), Japanese, Korean, Hindi, Indonesian, Thai, Vietnamese, Ukrainian, Swedish, Danish, Czech.

Limitations

  • Tuned for short, intent-oriented text; long-form text produces noisier suggestions.
  • Emoji semantics are imprecise; near-ties at the top of the ranking are expected.
  • Per-language quality varies; lower-resource languages in the set are somewhat weaker.

License

Desert Ant Labs Source-Available License. Free for most apps, and a commercial license is required at scale. Full terms are at the link. Licensing: [email protected].

See THIRD_PARTY_NOTICES.md.

Citation

@software{emo_2026,
  title  = {Emo: Multilingual on-device emoji suggestion},
  author = {Desert Ant Labs},
  year   = {2026},
  url    = {https://huggingface.co/desert-ant-labs/emo},
}

© 2026 Desert Ant Labs · https://desertant.com

core-ml
emoji
litert
multilingual
on-device
text
text-classification
tflite

desert-ant-labs/emo

Model

Emo

11

11 commits

1 linked in READMEs

updated Oct 16, 2026

See the code

README

Emo

Suggest emoji faster than you can type.

Multilingual on-device emoji suggestion.

Type a word or a sentence and get the emoji that fits. Tuned for to-dos, calendar entries, notes, and message drafts across 22 languages (including CJK, Arabic, Thai, Hindi, and more). The whole thing, model and tokenizer, is small (5MB on Apple via Core ML, 11MB via LiteRT elsewhere) and runs in well under 2ms on device.

"Dentist appointment" → 🦷 · "réserver un vol pour Tokyo" → ✈️ · "犬の散歩" → 🐕 · "จองโรงแรม" → 🏨

Try it

PlatformsiOS, macOS, tvOS, visionOS, Android, Linux, Windows, Browser, Node
Languages22
Weightsv0.7.0

Install

Swift (requirements)

.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "4.0.0")

Then add the Emo product to your target.

Kotlin (requirements)

implementation("ai.desertant:emo:4.0.0")

JavaScript (requirements)

npm i @desert-ant-labs/emo @litertjs/core   # browser
npm i @desert-ant-labs/emo                  # Node, prebuilt native core

Files

FileFormatSizeContents
emo.tfliteLiteRT / TFLite (int8)10.2MBRuns on Android, Linux, Node, and the web (bundled by default in the Kotlin SDK; downloaded on demand by the JavaScript SDK)
emo.mlmodelcCompiled Core ML4.6MBReady to load on Apple platforms (used by the Swift SDK)
emo_tokenizer.binUnigram tokenizer750KBTokenizer the runtime needs
emo_meta.jsonJSONtinyEmoji labels and runtime config

Older revisions (tags v0.6.0 and earlier) carry Emo.mlmodelc and emo.safetensors for SDK versions that predate the unified cross-platform migration.

Inputs and outputs

  • Input: a plain text string. Best on short, intent-oriented text.
  • Output: a probability distribution over the 812-emoji vocabulary; take the top-1 (or top-k). Optimized for top-1 relevance.

Languages

English, Spanish, Portuguese, French, German, Italian, Dutch, Russian, Polish, Turkish, Arabic, Chinese (Simplified & Traditional), Japanese, Korean, Hindi, Indonesian, Thai, Vietnamese, Ukrainian, Swedish, Danish, Czech.

Limitations

  • Tuned for short, intent-oriented text; long-form text produces noisier suggestions.
  • Emoji semantics are imprecise; near-ties at the top of the ranking are expected.
  • Per-language quality varies; lower-resource languages in the set are somewhat weaker.

License

Desert Ant Labs Source-Available License. Free for most apps, and a commercial license is required at scale. Full terms are at the link. Licensing: [email protected].

See THIRD_PARTY_NOTICES.md.

Citation

@software{emo_2026,
  title  = {Emo: Multilingual on-device emoji suggestion},
  author = {Desert Ant Labs},
  year   = {2026},
  url    = {https://huggingface.co/desert-ant-labs/emo},
}

© 2026 Desert Ant Labs · https://desertant.com

core-ml
emoji
litert
multilingual
on-device
text
text-classification
tflite