Desert Ant Labs

Gist

Content topic taggingAvailable

On-device topic tagging that reads a title or a post and tells you its topics, in 101 languages, with no server call.

Demo

Generate topics and tags for posts and articles.

A post called "How to film a two-person podcast with two iPhones" is tagged technology and creator economy. "Cómo invertir en fondos indexados" is tagged finance. The same 36 topics apply in all 101 languages, so shipping into a second market needs no second setup.

The right topic is in the top three 91% of the time, and most items land on two or three topics. That is enough for a feed to sort, filter or route without a classification API. Two cheap passes over the words do the work, so a browser tab tags a post without warming up a language model.

Scores add up across a collection, so a whole podcast feed or channel gets its own topics. An English-only build drops the model to about 15MB.

36 topics, 101 languages, 74MB.

36 topics across 101 languages, from a 74MB model, or 15MB English-only.

101
Languages
36
Topics
multi-label
91%
Right topic in the top 3
572 human-labeled real posts
74MB
On-device
or 15MB English-only

Recall on 572 human-labeled real posts. Internal measurements.

Use cases

Generate topics and tags for posts and articles.

Route a post without a server call

Tag posts, articles or videos by topic on the device, so a feed can sort, filter or route them without a classification API in the path.

Describe a channel from its posts

Add up an account's posts into channel-level topics. A directory or a recommender can then say what a podcast, a newsletter, or a feed is about without anyone writing a description.

A topic per item for the ranker

Give a recommendation feed or a moderation queue a cheap, private topic signal for every item, with no per-call cost as the feed grows.

On-device organization

Group a user's own notes, bookmarks, or library by topic on the device, so a personal archive becomes searchable without a single file leaving the device.

Inspiration

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

Gist

Auto-tag articles and posts with their topics for a feed.

Gist

Route content to channels by topic, no server call.

Gist

Organize a reading list by topic, locally.

Gist

Give a recommender a topic-per-item signal that runs on the phone.

GistEmo

Tag a post and suggest an emoji for it.

Gist

Auto-file support tickets into the right queue by topic.

TongueGist

Build an OpenClaw skill that tags and language-routes text.

Gist

An Obsidian plugin that tags notes with their topics, on the device.

See all 11 ideas

What the model does

  • 36 topics, from technology and finance to the creator economy; most items carry two or three.
  • 101 languages from one model, with no language setting to pass in.
  • Two-stream classifier with no transformer, so scoring costs CPU time and nothing else.
  • Compact English-only variant (15MB) for English-only apps, selectable from the Swift SDK today with Gist(variant: .english).

Getting started

Add content topic tagging to your iOS or macOS, Android or web app in a few lines of code. Gist 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: "Gist", package: "desert-ant-core")
Example - Swift
import Gist

let gist = Gist()
let topics = try await gist.classify("How to start a podcast with just your iPhone")
// [Topic(slug: "technology", ...), ...]
Build with a prompt
Add Gist from Desert Ant Labs to this Swift project (iOS, macOS).

What it does: On-device Content Topic Tagging.

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: "Gist", package: "desert-ant-core")

Reference:
- Model page: https://desertant.com/models/gist/
- 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:gist:3.1.0")
Example - Kotlin
import ai.desertant.gist.Gist

Gist(context).use { gist ->
    val topics = gist.classify("How to start a podcast with just your iPhone")
    // List<Topic>: slug, name, score
}
Build with a prompt
Add Gist from Desert Ant Labs to this Kotlin project (Android).

What it does: On-device Content Topic Tagging.

SDK:

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

Reference:
- Model page: https://desertant.com/models/gist/
- 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/gist @litertjs/core
Example - TypeScript
import { Gist } from "@desert-ant-labs/gist";

const gist = await Gist.load();
const topics = await gist.classify("How to start a podcast with just your iPhone");
// [{ slug: "technology", name: "Technology & Software", score: 0.91 }, ...]
Build with a prompt
Add Gist from Desert Ant Labs to this JavaScript / TypeScript project (Web, Node.js).

What it does: On-device Content Topic Tagging.

SDK:

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

Reference:
- Model page: https://desertant.com/models/gist/
- 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
101
Topics
36, multi-label
On-device size
74MB multilingual, or 15MB English-only
Model
Two-stream classifier: a multilingual static embedding plus hashed n-grams

Gist tags what a text is about, not whether the text is any good or safe. The 36 topics are a fixed list, so a subject outside the list gets the nearest topic on it.

FAQ

What is Gist?

On-device topic tagging that reads a title or a post and tells you its topics, in 101 languages, with no server call.

Does Gist run on device?

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

Which platforms does Gist support?

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

How much does Gist 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 Gist?

36 topics across 101 languages, from a 74MB model, or 15MB English-only.

Resources