Desert Ant Labs

Smarter marketplaces, on device.

Turn a seller's description into a completed listing, flag NSFW photos before they're uploaded, and detect phone numbers and bank details in buyer chat, all on device.

AI models built for marketplaces

Nothing leaves the device

Every model runs on the buyer's or seller's phone, tablet or laptop. Messages, bank details and photos are checked before they're sent or uploaded, so they aren't processed on a server.

No per-call cost

Check every listing, photo and message with no bill per call and no infrastructure to run. Your team can add a check without first forecasting cloud spend.

Speak your users' language

Redact hides personal data in 27 languages, every official EU language plus Norwegian and Icelandic. Toxic flags abuse in 35, from English, German and French to Arabic, Japanese and Chinese.

Examples

Each example replays real output from a model. Open a model page for the full details, and try Schemer or Redact on your own text.

Redact · PII redaction

Keep phone numbers and bank details out of chat

Redact finds phone numbers, IBANs and card numbers as a message is typed. You can hold them back and keep the deal in the app, or warn the user before they hit send. IBANs and card numbers must pass a checksum, so those catches are reliable. Free-form names and addresses are where Redact misses most.

88.8%Personal data caught
11.6MBOn deviceApple; 24.5MB on Android and the web
27Languages
Redact

Title · Titles and descriptions

Automatically add listing titles from descriptions

When a seller finishes describing an item, Title writes a short title and summary for the listing. Title runs on Apple platforms only and can get a detail wrong, so let sellers edit what it writes.

3-8Words in a titleand a one or two sentence description
286MBOn deviceApple silicon, through MLX
ApplePlatformsiOS, macOS, tvOS and visionOS
Title

Voz · Speech recognition

Let mobile users describe their listing out loud

Sellers tap the mic and describe the item, and Voz writes the description as they speak. Live transcription runs on Apple platforms only; on Android and the web, Voz transcribes the recording once it ends. Voz covers 25 European languages.

2s10 minutes of audioiPhone 17 Pro
25LanguagesEuropean
337MBOn diskApple, downloaded on first use
Voz

Moderator · Content moderation

Detect NSFW images before they're uploaded

Moderator checks each photo on the seller's phone as it's added, so nudes it flags never reach your servers or a listing. Have a person review flagged images before you block an account.

87.8%Nudity caught
93.7%Safe photos passed
9.7MBOn deviceApple; 9.2MB on Android and the web
Moderator

Eye · Image classification · Beta

Pick the best photos for a listing

Eye tags each photo as it's added: what it shows, whether it's sharp and how good it looks. Ask the seller to retake a blurry shot, and lead the listing with the photo that makes the best cover image.

5.5msPer photoNeural Engine, Mac with an Apple M6
558Scenes
48MBOn deviceApple; 66MB on Android and the web
Eye

Schemer · Structured extraction · Closed beta

Turn a buyer's message into an offer

Schemer reads the price, the pickup time and the location in a buyer's message, so the seller can accept the offer in one tap and close the deal. Schemer leaves a field empty when the message doesn't say. Schemer is in closed beta, and its first SDK, for Swift, is coming soon.

85msPer messageM1, a short four-field record
13Languages
230MBOn disk
Schemer

Toxic · Hate speech triage · Beta

Detect and hide abuse in chat

Toxic scores each message for hate, abuse and threats, in 35 languages. Hide flagged messages from the receiver, or ask the sender to edit before they hit send. Toxic is a triage aid, so send reports to a person, not straight to removal.

35Languages
3Signalshateful, abusive, threatening
102MBOn deviceApple; 103MB on Android and the web
Toxic

Get started

Install the models you need from one SDK, in Swift, Kotlin or JavaScript. The example holds back personal data in a message with Redact, and hides abusive messages with Toxic.

iOS, macOS, Linux, Windows

Install
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core", from: "4.3.0")
// target dependencies
.product(name: "Redact", package: "desert-ant-core")
.product(name: "Toxic", package: "desert-ant-core")
.product(name: "Moderator", package: "desert-ant-core")
.product(name: "Voz", package: "desert-ant-core")
Example - Swift
import Redact
import Toxic

let redact = Redact()
let toxic = Toxic()

// before a message is sent
let r = try await redact.redaction(of: message)
if !r.items.isEmpty { holdBack(r.items) }

// when a message arrives
let check = try await toxic.analyze(incoming)
if check.isToxic { foldAway(incoming, check.content) }

Android

Install
// build.gradle.kts (Maven Central)
implementation("ai.desertant:redact:4.3.0")
implementation("ai.desertant:toxic:4.3.0")
implementation("ai.desertant:moderator:4.3.0")
implementation("ai.desertant:voz:4.3.0")
Example - Kotlin
import ai.desertant.redact.Redact
import ai.desertant.toxic.Toxic

val redact = Redact(context)
val toxic = Toxic(context)

// before a message is sent
val r = redact.redaction(message)
if (r.redactedText != message) holdBack(r)

// when a message arrives
val check = toxic.analyze(incoming)
if (check.isToxic) foldAway(incoming, check.content)

Web, Node.js

Install
npm i @desert-ant-labs/redact @desert-ant-labs/toxic @desert-ant-labs/moderator @desert-ant-labs/voz @litertjs/core onnxruntime-web
Example - TypeScript
import { Redact } from "@desert-ant-labs/redact";
import { Toxic } from "@desert-ant-labs/toxic";

const redact = await Redact.load();
const toxic = await Toxic.load();

// before a message is sent
const r = await redact.redaction(message);
if (r.items.length) holdBack(r.items);

// when a message arrives
const check = await toxic.analyze(incoming);
if (check.isToxic) foldAway(incoming, check.content);

Building a marketplace?

Tell us what you want to add for your buyers and sellers, and we'll help you pick the models and plan the integration.