RetroFed Forum
Your home away from modern life.
Tesseract hides any post containing the phrase "censoring me"
Post Reply
AuthorMessage
GemAlarm lemmy.world GemAlarm@lemmy.world
Joined: 2026-04-15
(edited) Quote

Also /c/modabuse. Also /c/yepowertrippinbastards. Also lemmy.ml/c/worldnews, comrade, ACAB, and 552 individual accounts across 67 instances, about half of them on lemmy.world.

None of this is in the source code. It's downloaded at runtime from a file nobody has ever looked at.

If you're just tuning in

Tesseract is a third-party web frontend for Lemmy, maintained by asimons04 and licensed AGPL-3.0. Admins deploy it on their own servers alongside or instead of lemmy-ui, and there are public instances of it people use to browse Lemmy generally. If you've used a Lemmy site that didn't look like stock Lemmy, there's a fair chance it was this.

Last week db0 posted a PSA: Tesseract contains a blacklist of instance domains compiled directly into the application. 32 of them. Admins can't see it, can't configure it, and aren't told it's there. Connect to a listed instance and the app tells you it's "incompatible," which is not true.

I went through the code to see how that was implemented. The hardcoded list turns out to be the small half of the system.

There's a second filter policy fetched over HTTP every time the app loads. It isn't in the git repository. It's unauthenticated and world-readable, so anyone can pull it. Right now it carries 552 user accounts, 2,275 username patterns, 54 instances, 97 communities, 289 keyword patterns and 351 domains, with every category set to hide matches rather than flag them. Not collapsed behind a click. Simply absent, with no indication anything was removed.

Verify all of it in ten seconds

curl -s https://tesseract.dubvee.org/tesseract/api/system/policy \
  | base64 -d | gunzip > policy.json

That's the live policy, base64-wrapped gzip, 111KB of JSON when it unpacks. There's a stale fallback copy at /data/policy.dat as well.

It filters criticism of moderators

  • lemmy.sdf.org/c/modabuse โ€” listed
  • lemmy.dbzer0.com/c/yepowertrippinbastards โ€” listed
  • lemmy.dbzer0.com/c/YPTBcirclejerk โ€” listed
  • community regex power ?tripping?
  • keyword censoring me

Call the rest of it whatever you like. This part is not spam defence.

It filters words

The 32 community name patterns include Communis(t|m), Conservativ(e|es|ism), Leftis(t|m), Libertarian(ism)?, ^Green Part(y|ies), Zionis(t|m), (Police|Cops), guillotine and billionaire.

Keywords include comrade, ACAB, neoliberal, proletaria(n|t) and death to.

Filtered communities on instances that aren't blocked: lemmy.ml/c/worldnews, lemmy.today/c/news, lemmy.ca/c/politicalnewscanada, lemmy.ca/c/usa, infosec.pub/c/strategic_unions.

The 552 users aren't bots

67 instances. 272 on lemmy.world alone, 40 on sh.itjust.works, 19 on lemmy.ca, and 28 instances contributing exactly one person each.

355 of the 552 usernames are plain alphabetic, twelve characters or under, median length eight. Only 36 look like spam registrations. A bot list looks like the opposite of that.

Seven of them aren't even Lemmy. There are Mastodon and Friendica accounts in there: people who have never used Lemmy, hidden by a Lemmy frontend, with no possible way of finding out.

I have the list and I'm not posting it. Most of these are ordinary people who got pattern-matched, and 552 names on this comm is a harassment target inside an hour. Run the command above and grep for yourself.

And it lies about it

When the instance block fires you get: "Incompatible Instance. Not Supported. $instance is not compatible with Tesseract."

Nothing is incompatible. It's a policy decision dressed as an API error, and it's what had db0 chasing a version mismatch that never existed.

For the hidden users, communities and keywords, you get no message at all.

Admins can't switch it off

Tesseract has env vars for PUBLIC_DOMAIN_BLACKLIST, PUBLIC_FAKE_NEWS_BLACKLIST and the shortener lists. There is none for either blocklist. enableToxicMode bypasses the other filters and explicitly not this one.

Self-host it and you cannot disable this, nothing in your config admits it exists, and the contents can change without you pulling a commit.

Before someone says it

A lot of that domain list is real spam defence. It filters conservatism as well as communism. "It targets the left" doesn't survive the data and I'm not going to pretend it does.

The problem is that spam filtering and political editorial got welded into one undocumented, remotely-updatable blob, shipped hidden, to admins who've never read it and users who don't know it's there. The spam work is what makes the rest unauditable: "it's a spam list" answers every individual question and none of the whole.

And /c/modabuse is not spam.

Asks

  1. Publish the runtime policy in the repo, or kill the endpoint.
  2. Stop reporting a policy block as a technical incompatibility.
  3. Tell users when something's been hidden. One line.
  4. Give operators an off switch, like every other blacklist in the codebase has.

It's AGPL-3.0 and db0 already forked it. That's the licence working as designed. But forking isn't disclosure, and the admins who need this are precisely the ones with no reason to go looking.

If you run Tesseract, you are relaying a 111KB moderation policy you have never read, under your instance's name, to users who don't know it exists.

Full contents of every list, unedited, in the comments.

452   Original
ea6927d8 lemmy.ml ea6927d8@lemmy.ml
Joined: 2025-07-19
#2 · Quote Reply

I thought piefed's main developer crusade was pathetic enough. This is something else.

72
davel lemmy.ml davel@lemmy.ml
Joined: 2023-07-08
#3 · Quote Reply

@Cowbee@lemmy.ml, explain yourself:

$ curl -s https://tesseract.dubvee.org/tesseract/api/system/policy | base64 -d | gunzip \
>    | gron | grep -iP '(davel|cowbee|yogthos)'
json.userRegexes[466] = "^davel$";
json.userRegexes[2187] = "^yogthos$";
$
38
Rentlar lemmy.ca Rentlar@lemmy.ca
Joined: 2023-03-14
#4 · (edited) Quote Reply

Like I would have zero problems with developers that do this, if they could come out clearly and document/announce: "I don't like these accounts or words, if you do then this is what you do to change it or shut it off."

Stuff like Lemmy's word list, Piefed's default blocklist, you can turn off or change the words. Even if I think the daily vote quota is a stupid default on setting, if you're a Piefed admin and don't like that, set the limit to 10000, 99999999 or whatever. I usually have tons and tons of sympathy for FOSS devs, take their side and give the benefit of doubt in grey areas. They work for free and share it for free so I don't expect perfection or how I would want things to be.

Undocumented shit like this, intentionally hidden is way past the line, and I have no patience for it whatsoever. You never know when this could be somehow used as an attack vector.

59
whatiswrongwithyou lemmy.ml whatiswrongwithyou@lemmy.ml
Joined: 2026-05-07
#5 · Quote Reply

@Cowbee@lemmy.ml, explain yourself: $ curl -s https://tesseract.dubvee.org/tesseract/api/system/policy | base64 -d | gunzip \ > | gron | grep -iP '(davel|cowbee|yogthos)' json.userRegexes[466] = "^davel$"; json.userRegexes[2187] = "^yogthos$"; $

Insideโ€ฆ job?

14
FirmDistribution lemmy.world FirmDistribution@lemmy.world
Joined: 2025-12-04
#6 · Quote Reply

this is one of the most unhinged things I've seem on an open source project ๐Ÿ˜

69
Nutomic Moderator nutomic@lemmy.ml
Joined: 2020-01-17
#7 · Quote Reply

Wow this "policy" has 3700 lines in total. It must take a lot of time to create and maintain it. How does someone even find the time for that?

I tried to access some blocked users and communities via tesseract.dubvee.org and it simply shows a generic "Not Found" error. So this is impossible to figure out for the average user. Even for developers it would be hard to figure out if the JSON file was hidden a bit better.

52
Ada lemmy.blahaj.zone ada@lemmy.blahaj.zone
Joined: 2023-01-02
#8 · Quote Reply

Like I would have zero problems with developers that do this, if they could come out clearly and document/announce: "I don't like these accounts or words, if you do then this is what you do to change it or shut it off." Stuff like Lemmy's word list, Piefed's default blocklist, you can turn off or change the words. Even if I think the daily vote quota is a stupid default on setting, if you're a ...

That's exactly where I'm at. I don't align with a lot of the choices Rimu makes for Piefed, but I am 100% for him designing a tool that works for him, even when the defaults he chooses don't align with my preferences. As long as I have the option to disable/change them as an admin, then I'd rather see a passionate dev creating tools that they want to use than a burned out dev creating something their heart isn't invested in.

Unfortunately, tesseract isn't that...

34
VeganCheesecake lemmy.blahaj.zone VeganCheesecake@lemmy.blahaj.zone
Joined: 2024-03-11
#9 · Quote Reply

This all sucks, but also, please stop using LLMs to write long (or any) texts. It ends up sounding silly.

-1
Ecco the dolphin lemmy.ml echolalia@lemmy.ml
Joined: 2024-05-13
#10 · (edited) Quote Reply

"It targets the left" doesn't survive the data

I mean, sure but, isn't that like pointing out you've banned vegans to your BBQ ribs restaurant along with (insert group here)

28
Rentlar lemmy.ca Rentlar@lemmy.ca
Joined: 2023-03-14
#11 · Quote Reply

Like I would have zero problems with developers that do this, if they could come out clearly and document/announce: "I don't like these accounts or words, if you do then this is what you do to change it or shut it off." Stuff like Lemmy's word list, Piefed's default blocklist, you can turn off or change the words. Even if I think the daily vote quota is a stupid default on setting, if you're a ...

One note/minor correction, it is in the git repo: https://github.com/db0/tesseract/commits/main/static/data/policy.dat

You can see when asimons04 changed the static base64 filter .dat file. The changes happen in completely unrelated or nondescript commits. Looking at the commit when it was implemented, it does say filter, but the error messages and code comments creating the folder indicate "cache" folder creation, when the variable name and function is for the policy, which might technically be correct, is misleading and is quite suspect to me.

21
ShinkanTrain lemmy.ml ShinkanTrain@lemmy.ml
Joined: 2024-06-13
#12 · Quote Reply

@Cowbee@lemmy.ml, explain yourself: $ curl -s https://tesseract.dubvee.org/tesseract/api/system/policy | base64 -d | gunzip \ > | gron | grep -iP '(davel|cowbee|yogthos)' json.userRegexes[466] = "^davel$"; json.userRegexes[2187] = "^yogthos$"; $

Sorry Cowbee, you're still on this council but your title as Chief Misinformator has been transferred to geneva_convenience.

25
ShinkanTrain lemmy.ml ShinkanTrain@lemmy.ml
Joined: 2024-06-13
#13 · Quote Reply

"It targets the left" doesn't survive the data I mean, sure but, isn't that like pointing out you've banned vegans to your BBQ ribs restaurant along with (insert group here)

The law, in its majestic equality, forbids the rich and poor alike to sleep under bridges, to beg in the streets, and to steal bread

62
โ˜‚๏ธ- lemmy.ml umbrella@lemmy.ml
Joined: 2023-07-12
#14 · (edited) Quote Reply

[deleted]
30
Axolotl feddit.it Axolotl_cpp@feddit.it
Joined: 2025-10-10
#15 · (edited) Quote Reply

    "^Article is paywalled.?$",
        "ACAB",
        ...
        "anarchistic",
        "biz@agoda.com",
        "billionaire [cock|dick]",
        "boot ?lick(ing|ers?)",
        ...
        "censoring me",
        "chatgip+ity+",
        "child-?rap(ing|ist)",
        "comrade",
        "conformist turd",
        "corpo ?(turd|slut|tech)",
        "death to",
        "dvdfab.cn",
        "enlightened centrist",
        "(epstein|epstien|pedo|pedophile)

Sooo, they are pro-pedos, pro-billionares, pro-paywalled articles, anti-communism and anti-conservatism and get offended by "enlightened centrist"

Yup, they pretend to be centrist or smth
Disgusting

113
mindbleach sh.itjust.works mindbleach@sh.itjust.works
Joined: 2023-08-27
#16 · Quote Reply

"^Article is paywalled.?$", "ACAB", ... "anarchistic", "biz@agoda.com", "billionaire [cock|dick]", "boot ?lick(ing|ers?)", ... "censoring me", "chatgip+ity+", "child-?rap(ing|ist)", "comrade", "conformist turd", "corpo ?(turd|slut|tech)", "death to", "dvdfab.cn", "enlightened centrist", "(epstein|epstien|pedo|pedophile) Sooo, they are pro-pedos, pro-billionares, pro-paywalled articles, anti-com...

And quoting this blacklist might've just seen you blacklisted from Lemmy.world, because irony is dead.

65
ptu sopuli.xyz ptu@sopuli.xyz
Joined: 2025-06-04
#17 · Quote Reply

My blocklist is mostly furry and yiff communities

7
mathemachristian[he] lemmy.ml mathemachristian@lemmy.ml
Joined: 2024-04-08
#18 · Quote Reply

[deleted]

not-listening

15
Axolotl feddit.it Axolotl_cpp@feddit.it
Joined: 2025-10-10
#19 · (edited) Quote Reply

And quoting this blacklist might've just seen you blacklisted from Lemmy.world, because irony is dead.

Lmao

Edit: got banned fr ๐Ÿ’”

Edit: got unbanned after i sent 'em an email

60
mindbleach sh.itjust.works mindbleach@sh.itjust.works
Joined: 2023-08-27
#20 · Quote Reply

Lmao Edit: got banned fr ๐Ÿ’” Edit: got unbanned after i sent 'em an email

Yeah I'd try contacting the admins, or at least posting on YePowerTrippinBastards. Even LW needs to recognize that moderation by regex is fucking dumb.

29
Axolotl feddit.it Axolotl_cpp@feddit.it
Joined: 2025-10-10
#21 · (edited) Quote Reply

Yeah I'd try contacting the admins, or at least posting on YePowerTrippinBastards. Even LW needs to recognize that moderation by regex is fucking dumb.

I sent 'em an email, if i don't get unbanned i am gonna make a post there for sure, it's a very big problem, especially because 50% of the most used communities are on .world;
They are a big instance, they should moderate better IMO

22
mathemachristian[he] lemmy.ml mathemachristian@lemmy.ml
Joined: 2024-04-08
#22 · (edited) Quote Reply

lol the guy shuttered his instance and only links to

This is his at least second dramatic exit from lemmy https://lemmy.zip/post/43721937

40
mindbleach sh.itjust.works mindbleach@sh.itjust.works
Joined: 2023-08-27
#23 · Quote Reply

I sent 'em an email, if i don't get unbanned i am gonna make a post there for sure, it's a very big problem, especially because 50% of the most used communities are on .world; They are a big instance, they should moderate better IMO

On an unrelated note, think of your second-favorite username, and write it on a piece of paper.

12
Axolotl feddit.it Axolotl_cpp@feddit.it
Joined: 2025-10-10
#24 · (edited) Quote Reply

On an unrelated note, think of your second-favorite username, and write it on a piece of paper.

on another unreleated note, i also have a 2nd home, just in case the first one goes on fire :P

15
DupaCycki lemmy.world DupaCycki@lemmy.world
Joined: 2025-08-17
#25 · Quote Reply

Looking at what is blocked, it just looks like someone very much aligned with the government came up with the list.

34
db0 lemmy.dbzer0.com db0@lemmy.dbzer0.com
Joined: 2023-06-09
#26 · Quote Reply

Godfuckingdamnit. I was wondering why the system kept blocking our instance even after I removed it from the blacklist. I suspected some sort of lookup but I was out of time and couldn't find it with a quick search. This is so much worse than I expected.

Where does it dowload it exactly? I found the line loading policy.dat, but I can't find any calls to tesseract.dubvee.org.

61
db0 lemmy.dbzer0.com db0@lemmy.dbzer0.com
Joined: 2023-06-09
#27 · Quote Reply

lol the guy shuttered his instance and only links to This is his at least second dramatic exit from lemmy https://lemmy.zip/post/43721937

Now it goes to startrek.website

10
Mystic Mushroom [Ze/Zir] lemmy.dbzer0.com MysticMushroom1776@lemmy.dbzer0.com
Joined: 2025-04-03
#28 · Quote Reply

I don't think you should defend him. Integrating spam defense is a cover to censor his ideological opponents. The best lie is the one wrapped in truth. You shouldn't frame any of what he did as being for good reasons. He hid it from the rest of us, made it look like an error message, and took steps to stop people from patching it out.

That's no what someone with good intentions does. That's what someone who knows it's wrong but tries to hide it does. Including spam domains in it can be seen as a way of hiding the rotten stuff and it gives trolls like him something to point at when it gets criticized "It's a spam blocklist, you must be a freeze peach troll if you're against that".

This is giving him too much charitability:

A lot of that domain list is real spam defence. It filters conservatism as well as communism. โ€œIt targets the leftโ€ doesnโ€™t survive the data and Iโ€™m not going to pretend it does.

71
mathemachristian[he] lemmy.ml mathemachristian@lemmy.ml
Joined: 2024-04-08
#29 · Quote Reply

I don't think you should defend him. Integrating spam defense is a cover to censor his ideological opponents. The best lie is the one wrapped in truth. You shouldn't frame any of what he did as being for good reasons. He hid it from the rest of us, made it look like an error message, and took steps to stop people from patching it out. That's no what someone with good intentions does. That's wha...

Especially considering it's this guy

18
Coelacanth feddit.nu Coelacanth@feddit.nu
Joined: 2023-07-04
#30 · Quote Reply

Lmao Edit: got banned fr ๐Ÿ’” Edit: got unbanned after i sent 'em an email

This is wild, wtf are they doin' over there.

27
Axolotl feddit.it Axolotl_cpp@feddit.it
Joined: 2025-10-10
#31 · Quote Reply

This is wild, wtf are they doin' over there.

Dunno, i wonder too, they also don't even use the "site-wide ban" feature and instead decided to flood my entire modlog ๐Ÿ’”

21
iByteABit lemmy.ml iByteABit@lemmy.ml
Joined: 2025-11-08
#32 · Quote Reply

Let them shoot themselves on the foot, they are only providing more evidence that their ideology is the one that needs to control the narrative or else it shatters at the first sign of critical thought

21
ripcord lemmy.world ripcord@lemmy.world
Joined: 2023-06-10
#33 · Quote Reply

This all sucks, but also, please stop using LLMs to write long (or any) texts. It ends up sounding silly.

I don't think this is AI.

Among other things, I used to write like this for years before LLMs were a thing.

31
NSRXN lemmy.dbzer0.com nsrxn@lemmy.dbzer0.com
Joined: 2024-12-29
#34 · (edited) Quote Reply

of my hundred fediverse IDs, I somehow didn't get a single mention in the user list. a few folks I recognize did, and fewer of those probably deserved it.

edit:

check that. I found a few.

9
ripcord lemmy.world ripcord@lemmy.world
Joined: 2023-06-10
#35 · (edited) Quote Reply

lol the guy shuttered his instance and only links to This is his at least second dramatic exit from lemmy https://lemmy.zip/post/43721937

So asimons04 is ptz@dubvee.org?

Edit: and also is AdmiralPatrick?

19
ripcord lemmy.world ripcord@lemmy.world
Joined: 2023-06-10
#36 · Quote Reply

Now it goes to startrek.website

Still goes to that image for me.

9
chrisbit leminal.space chrisbit@leminal.space
Joined: 2023-07-09
#37 · Quote Reply

Thanks for your work uncovering this. Imposing this broad and undisclosed censorship upon the user is unacceptable, so we have stopped hosting Tesseract on our instance.

62
Cowbee [he/they] lemmy.ml Cowbee@lemmy.ml
Joined: 2023-12-31
#38 · (edited) Quote Reply

@Cowbee@lemmy.ml, explain yourself: $ curl -s https://tesseract.dubvee.org/tesseract/api/system/policy | base64 -d | gunzip \ > | gron | grep -iP '(davel|cowbee|yogthos)' json.userRegexes[466] = "^davel$"; json.userRegexes[2187] = "^yogthos$"; $

I'm legitimately hurt.

9
Edie [it/it/its/its/itself, she/her/her/hers/herself] lemmy.ml Edie@lemmy.ml
Joined: 2024-07-10
#39 · Quote Reply

I'm legitimately hurt.

You're not in it.

8
Cowbee [he/they] lemmy.ml Cowbee@lemmy.ml
Joined: 2023-12-31
#40 · Quote Reply

You're not in it.

Oh I'm misreading it, lol. Was I intended but not added?

6
Edie [it/it/its/its/itself, she/her/her/hers/herself] lemmy.ml Edie@lemmy.ml
Joined: 2024-07-10
#41 · (edited) Quote Reply

Oh I'm misreading it, lol. Was I intended but not added?

No. davel is searching for you himself and yogthos in the "policy".

It's in the format of a terminal. The $ is a "prompt symbol" or what you might call it, essentially it shows at the start of every input line in a (ba)sh terminal. davel has then typed in a prompt, getting a copy of the policy from the website (with curl), decoding it from base64, unziping it, reading the json with gron, and "grepping" (searching) gron's output for davel or cowbee or yogthos. The two next lines are then the output, the lines that match that search. And then a new line ready for a new prompt.

15
Cowbee [he/they] lemmy.ml Cowbee@lemmy.ml
Joined: 2023-12-31
#42 · Quote Reply

No. davel is searching for you himself and yogthos in the "policy". It's in the format of a terminal. The $ is a "prompt symbol" or what you might call it, essentially it shows at the start of every input line in a (ba)sh terminal. davel has then typed in a prompt, getting a copy of the policy from the website (with curl), decoding it from base64, unziping it, reading the json with gron, and "g...

Oh! That makes sense, thanks! I'm back to being upset that I was missed...

16
CommanderCloon lemmy.ml CommanderCloon@lemmy.ml
Joined: 2023-07-31
#43 · Quote Reply

Godfuckingdamnit. I was wondering why the system kept blocking our instance even after I removed it from the blacklist. I suspected some sort of lookup but I was out of time and couldn't find it with a quick search. This is so much worse than I expected. Where does it dowload it exactly? I found the line loading policy.dat, but I can't find any calls to tesseract.dubvee.org.

Some other people said it's in the github but obfuscated as base64

18
irelephant [he/him] lemmy.dbzer0.com irelephant@lemmy.dbzer0.com
Joined: 2025-06-04
#44 · Quote Reply

Dunno, i wonder too, they also don't even use the "site-wide ban" feature and instead decided to flood my entire modlog ๐Ÿ’”
[deleted]
12
Axolotl feddit.it Axolotl_cpp@feddit.it
Joined: 2025-10-10
#45 · Quote Reply

[deleted]

Oh my bad, i thought it would be something like

"You are banned from the instance XYZ because: rule"

That's def something that should be changed by lemmy devs, do you happen to know if it's something planned?

10
irelephant [he/him] lemmy.dbzer0.com irelephant@lemmy.dbzer0.com
Joined: 2025-06-04
#46 · Quote Reply

Oh my bad, i thought it would be something like "You are banned from the instance XYZ because: rule" That's def something that should be changed by lemmy devs, do you happen to know if it's something planned?
[deleted]
4
ZeroHora lemmy.ml ZeroHora@lemmy.ml
Joined: 2023-08-02
#47 · Quote Reply

I saw a funny weirdo saying that this person is just blocking "extremists". How in the fuck doing this shit is not extreme extremist radical liberalism??????? They like the status quo so much that they don't want to see people complain about it LMAO

38
Edie [it/it/its/its/itself, she/her/her/hers/herself] lemmy.ml Edie@lemmy.ml
Joined: 2024-07-10
#48 · (edited) Quote Reply

Oh my bad, i thought it would be something like "You are banned from the instance XYZ because: rule" That's def something that should be changed by lemmy devs, do you happen to know if it's something planned?

It's already done, for 1.0 I think. https://github.com/LemmyNet/lemmy/pull/5515#discussion_r2004068653

8
db0 lemmy.dbzer0.com db0@lemmy.dbzer0.com
Joined: 2023-06-09
#49 · Quote Reply

Some other people said it's in the github but obfuscated as base64

Ye there's a local version but not a remote which is what I was concerned about

11
VeganCheesecake lemmy.blahaj.zone VeganCheesecake@lemmy.blahaj.zone
Joined: 2024-03-11
#50 · (edited) Quote Reply

I don't think this is AI. Among other things, I used to write like this for years before LLMs were a thing.

There's a lot of specific sentence fragments that read very LLM to me. In the end, that of course isn't proof, and there definitely are people who's style is very close to what LLMs output today.

1
mathemachristian[he] lemmy.ml mathemachristian@lemmy.ml
Joined: 2024-04-08
#51 · Quote Reply

So asimons04 is ptz@dubvee.org? Edit: and also is AdmiralPatrick?

yes

14
Post Reply Page 1 of 4   Goto page 1, 2, 3, 4 Last »
Back to top