Desert Ant Labs

Emo.

Emoji suggestionsAvailable

Type a task or a message and get the emoji that fit, in 22 languages, on the device.

Demo

Suggest emoji faster than you can type.

Type "Dentist appointment" and get 🦷 🪥 🏥 🩺. Type "Pay my bills" and get 💰 💳 🧾. Emo is tuned for how people write in a task list or a chat, not how they write an essay, and every suggestion carries its skin-tone variants.

A picker shows you a grid to browse. Emo reads the text and proposes the emoji that fit, the way a predictive keyboard proposes the next word. Emo is small and fast enough to run on every keystroke, and never calls a server.

Suggestions in under 2ms.

Suggestions in under 2ms from a 5MB Core ML model, across 22 languages.

<2ms
Per suggestion
on device
5MB
On-device
Core ML, model + tokenizer; about 11MB via LiteRT
22
Languages
812
Emoji vocabulary

Internal measurements. Emoji semantics are approximate, so near-ties at the top of the ranking are expected.

Suggest as they type

Offer emoji in the suggestion strip while someone is still typing, the way a predictive keyboard offers words, on the device and with no network round-trip.

Label an event as it is created

Tuned for short entries: "Dentist appointment" gets 🦷 🪥 🏥 🩺, so a calendar or task app can tag an item the moment someone saves it.

Emoji for a draft message

Suggest the emoji that fit a message as someone writes, in any of 22 languages, without sending the draft anywhere.

Keep your picker, add suggestions

Emo fills the suggestion strip above the keyboard, so a user who knows what they want still browses the grid, and everyone else gets the right emoji first.

Inspiration

Ideas to build with Emo. Copy a prompt into your coding agent and go.

Emo

Add an emoji suggestion strip above the keyboard.

Emo

Suggest a reaction emoji for any message.

GistEmo

Tag a post and suggest an emoji for it.

Emo

Auto-add an emoji to a task or calendar title.

Emo

Build an emoji search that understands a sentence, not just keywords.

Emo

Suggest a status emoji from what someone is typing.

What the model does

  • Curated vocabulary of 812 everyday emoji, with skin-tone variants.
  • Multilingual: 22 languages, including CJK, Arabic, Thai, and Hindi.
  • Well under 2ms per suggestion on device.
  • 5MB on Apple, 11MB on LiteRT. No server call.

Getting started

Add emoji suggestions to your iOS or macOS, Android or web app in a few lines of code. Emo docs.

iOS, macOS
Install
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core", from: "3.1.0")
// target dependency
.product(name: "Emo", package: "desert-ant-core")
Example - Swift
import Emo

let emo = Emo()
let suggestions = try await emo.suggestions(for: "Pay my bills")
// [EmoSuggestion(emoji: "💰", confidence: ...), ...]
Build with a prompt
Add Emo from Desert Ant Labs to this Swift project (iOS, macOS).

What it does: On-device Emoji Suggestions.

SDK:

Swift (iOS, macOS)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core", from: "3.1.0")
// target dependency
.product(name: "Emo", package: "desert-ant-core")

Reference:
- Model page: https://desertant.com/models/emo/
- Full catalog and other models: https://desertant.com/llms.txt

Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Android
Install
// build.gradle.kts (Maven Central)
implementation("ai.desertant:emo:3.1.0")
Example - Kotlin
import ai.desertant.emo.Emo

Emo(context).use { emo ->
    val suggestions = emo.suggestions("Pay my bills")
    // List<EmoSuggestion>
}
Build with a prompt
Add Emo from Desert Ant Labs to this Kotlin project (Android).

What it does: On-device Emoji Suggestions.

SDK:

Kotlin (Android)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
// build.gradle.kts (Maven Central)
implementation("ai.desertant:emo:3.1.0")

Reference:
- Model page: https://desertant.com/models/emo/
- Full catalog and other models: https://desertant.com/llms.txt

Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Web, Node.js
Install
npm i @desert-ant-labs/emo @litertjs/core
Example - TypeScript
import { Emo } from "@desert-ant-labs/emo";

const emo = await Emo.load();
const results = await emo.suggestions("Pay my bills");
// [{ emoji: "💰", confidence: 0.62 }, ...]
Build with a prompt
Add Emo from Desert Ant Labs to this JavaScript / TypeScript project (Web, Node.js).

What it does: On-device Emoji Suggestions.

SDK:

JavaScript / TypeScript (Web, Node.js)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
npm i @desert-ant-labs/emo @litertjs/core

Reference:
- Model page: https://desertant.com/models/emo/
- Full catalog and other models: https://desertant.com/llms.txt

Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.

Specs

Languages
22, including English, Spanish, French, German, Portuguese, and Japanese
On-device size
5MB on Apple via Core ML, 11MB via LiteRT elsewhere (model + tokenizer)
Speed
Under 2ms per suggestion
Model
Two-stream text classifier: lexical n-grams plus a multilingual embedding

Emo is tuned for short, intent-carrying text such as a task, an entry, or a message. Long-form text produces noisier suggestions.

Emoji meaning is imprecise, so expect near-ties at the top of the ranking, and expect the lower-resource languages in the set to be a little weaker than English.

FAQ

What is Emo?

Type a task or a message and get the emoji that fit, in 22 languages, on the device.

Does Emo run on device?

Yes. Emo runs on the device, with no server call, so the data stays with the user.

Which platforms does Emo support?

Emo ships as a native on-device SDK for Swift, Kotlin, JavaScript / TypeScript.

How much does Emo cost?

Every model is free up to 100k monthly active devices per SDK. Unlimited inference per user. Contact us for custom licenses.

How accurate or fast is Emo?

Suggestions in under 2ms from a 5MB Core ML model, across 22 languages.

Resources