Unprofane

Engine changelog

What each engine version changed, in plain words. Pin a version and your answers stay on it until you move.

  1. 2026-09-29

    stabledefault

    The first public engine: seventeen languages, the disguises people type to slip past a filter, and a model that reads what the rules can't settle.

    Stable. Fixed for good. Nothing about it changes.

    Languages1

    Seventeen languages, each with its own list

    Every language has a hand-curated file: its terms, the phrases that turn a word into a threat or an insult, and the words that show an innocent sense.

    Catches more5

    Reads the disguises people type

    Leetspeak, look-alike letters and signs from any alphabet ("ƒυ¢к", "₣₳₲₲Ø₮"), dots and spaces between letters, a letter masked or left out ("f ck"), stretched letters, words written backwards, letter-shaped emoji, Arabizi digits and Korean typed in English. Each disguise read is named.

    Emoji that say the word

    A picture in a sentence reads as its word ("piece of 💩", "I'll 🔪 you", "you're a 🤡"), the middle finger as what it means, and pairs like 🍆💦 and 🐒🍌 as what neither picture says alone. One aubergine is still dinner.

    Threats and dehumanizing statements, not only words

    Direct threats against the reader or their family, wishes of violence and claims that a group are not people are caught as phrases, in every language.

    A quoted slur counts as a slur

    A slur or a swear word quoted, reported or named as a word ("he called me a …") counts as what it is. A slur someone claims for their own group goes to the model.

    Usernames read as names

    A name run together is split in its own language (jemoederaandepoeder reads as Dutch), a letter in a shape its spelling never takes is read for what it stands for (HitIer, with a capital I), and the model is told which words the rules found in the name.

    Fewer false alarms5

    Lessons and fiction read as what they are

    In the educational context a word quoted or named is discussed, and in the creative context a quotation is a character's speech, in every language's quotation marks. A word used on someone still counts, and a slur counts in fiction.

    Game chat reads as a game

    In the gaming context a taunt about play ("gg ez, uninstall") is not acted on, under every policy but kids. A slur, a threat, a personal attack and "kys" still are.

    Of 14 game-chat lines read by the model on 2026-10-08, taunts were rated 0.8 to 1.6 for severity and personal attacks 2.5 to 3.4.

    Innocent words stay innocent

    Place names, surnames and ordinary words with a profane string inside pass: Scunthorpe, Dickinson, cockatoo, Püssi in Estonia. A word used in its literal or medical sense, negated or reported is read that way.

    Quoting abuse to push back is not abuse

    Counter-speech, a report of what someone said ("he yelled … at me") and a claim held up to argue with ("people who say that … should be ashamed") go to the model instead of being flagged outright.

    Joking threats in games

    "I'll kill you next round", "you're dead" said of a match, or a threat said laughing goes to the model instead of being flagged outright. A threat to a family, a rape threat or an incitement is always flagged.

    New2

    Rudeness, as its own category

    Rude, dismissive or harsh text that stops short of an insult, like "shut up" or "what nonsense". A negative opinion put plainly ("our politicians are incompetent") is not rude. Only the model reads it.

    Sexual content involving minors, and self-harm

    sexual_minors is blocked by every preset. self_harm covers the writer's own self-harm or suicidal thoughts, plans or acts, and every preset holds it for review. Only the model reads either.

    How the model reads1

    A model reads what the rules can't settle

    In balanced mode the model reads every text the rules do not flag outright, clean-looking text included, since no word list sees abuse written in ordinary words. It is asked what the writer does, and the policy decides.

    Faster1

    Long text stays fast

    Text written without spaces, such as a long Chinese, Japanese or Korean passage, takes time in step with its length.

    What 2026-09-29 does with a text

    Run through the engine when this page was built, in balanced mode (the default) under the standard preset.

    TextRead as2026-09-29
    xXsh1tXxusername Padding, and a digit for a letter
    shitleetspeakreview · strong
    fυckcomment A Greek υ standing in for the u
    fuckhomoglyphmixed_scriptreview · strong
    kcuf uoycomment Written backwards
    fuckreversedreview · strong
    HitIerusername A capital I standing in for an l
    hitlerhomoglyphblock · strong
    I will find you and kill youcomment A direct threat
    as typedblock · extreme
    I'll kill you lolchat Maybe a joke, so the model reads it
    as typedthe model reads it
    nobody asked for your opinion, just stop talkingcomment Rude in ordinary words, for the model
    as typedthe model reads it
    Every change in detail11 notes

    At release

    • The first public engine.
    • Seventeen languages, each with its own hand-curated list of terms, phrases and innocent senses.
    • The disguises people type read and named in the answer, a letter masked by a symbol or left out with a space in its place ("f ck", "c nt") and a word typed in letters and signs from several alphabets ("ƒυ¢к") among them.
    • The middle finger emoji, sexual emoji pairs (🍆💦) and the racist monkey-and-banana pair (🐒🍌) read as terms, and a picture inside a phrase reads as its word ("piece of 💩", "I'll 🔪 you").
    • educational and creative contexts that read quotations as speech, a gaming context, read as chat by the rules, where a taunt about play and rudeness are not acted on under every policy but kids.
    • Threats and dehumanizing statements caught as phrases.
    • Balanced mode asks the model about every text the rules do not flag outright, clean-looking text included.
    • Fast mode and Edge-only projects never ask it.
    • The model scores three categories the rules cannot: rude (held for review under standard, blocked under kids, teen and strict), sexual_minors (blocked by every preset) and self_harm (held for review by every preset).
    • A slur or a swear word quoted, reported or named counts as what it is.
    • A slur claimed for one's own group, counter-speech and a claim held up to argue with go to the model.