You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
coomdev 60f6fad289 Publish FF and Userscript new versions 3 weeks ago
.vscode Add Perceptual-hash filter option 5 months ago
chrome Publish FF and Userscript new versions 3 weeks ago
dist Publish FF and Userscript new versions 3 weeks ago
firefox Publish FF and Userscript new versions 3 weeks ago
src An attempt was made. 3 weeks ago
.eslintignore Tentative webm embedding support 6 months ago
.eslintrc.cjs streaming performance 6 months ago
.gitignore Fix critical file upload chrome bug 3 weeks ago
1449696017588.png Revise language, and forgot to commit some files 2 months ago
LICENSE Add opt-in telemetry 3 months ago Publish FF and Userscript new versions 3 weeks ago
ack.png update readme and some config 6 months ago
build-chrome.js Add all 4chan subdomains and pomf to permissions 3 weeks ago
build-ff.js Add all 4chan subdomains and pomf to permissions 3 weeks ago
build.js remove lodash, make post quotes in hidden messages clickable 2 months ago
chrome_update.xml Fix double inclusion for real 2 months ago
esbuild.inject.js build 6 months ago
extheader.js Implement fetch progress event 2 months ago
eye.png more illust 6 months ago
firefox_update.json Publish FF and Userscript new versions 3 weeks ago
logo.png Revise language, and forgot to commit some files 2 months ago
main.d.ts Fix file uploading for FF extension 2 months ago
main.meta.js Publish FF and Userscript new versions 3 weeks ago
main.user.js Publish FF and Userscript new versions 3 weeks ago
package-lock.json Add view count and server-cache support 3 weeks ago
package.json Add view count and server-cache support 3 weeks ago
pngextraembedder-0.241.xpi Publish FF and Userscript new versions 3 weeks ago
screen.png Add how to 6 months ago
settings.png Update readme 6 months ago
spm.png Update README instructions 2 months ago
tsconfig.json Move web extension typing to config to allow builds 5 months ago

PNGExtraEmbedder (PEE)

Can embed any file in a PNG/WebM/GIF and upload it to a third-party host through 4chan. Requires a userscript manager, such as ViolentMonkey. It should work with 4chan's native extension but 4ChanX is highly recommended as it is much more tested. Also supports desuarchive.

How to Install

Note: 4chanX isn't a hard requirement, just recommended because it's overall a nicer experience. If you don't want to use 4chanX, make sure the native 4chan extension is enabled in your settings.

Teh olde way

  • Make sure you're using a decent Webkit-based browser (Chromium derivatives) or Firefox.
  • Install ViolentMonkey (it is preferable to TamperMonkey(closed source) and GreaseMonkey(abandonned shit)), use ViolentMonkey Beta if you want to spite the b4k meanie admin (based & redpilled). Be sure to read the trouble shooting section to know how to set this up.
  • Install 4chanX (recommended)
  • Use the prebuilt main.user.js

The newer way (WIP)

Please report any issue you have with those (only for mainstream browsers)

Also, use this if you plan to use b4k's archive.

For FF users, the extension is signed so you can just drag and drop it on your about:addons tab.

Chrom* users can now install directly from the chrome webstore.

Known bugs:

  • Catbox upload is broken on the published chrome version, so switch to another host in your options (
  • A couple anons reported embeds not loading at all, with no clear fix, I'll update this as workarounds until the cause is found and fixed.
    • One reported that he had somehow disabled some permissions and turning them back on fixed the issue.

If none of the above works for you, switch back to the userscript version.

How to Build

(You only need to care about this section if you're auditing the code or contributing to development)

npm i and

npm run build to build the userscript version. npm run build_chrome to build the chromium webextension. npm run build_ff to build the firefox webextension. (You'll have to do the signing yourself, though)

How to use

Posts with an embedded image/video will have an colored dashed line on their right. Golden means the file is external (ie. a booru), and pink means it was a file embedded in the post file.

eye this screenshot is outdated, UI has changed a little but I'm too lazy.

In the quick reply form, a magnet icon will appear. Clicking it will allow you to add files to attach to the file that will be uploaded and shown on 4chan. Hovering on the magnet will reveal a pencil icon, that will attach the content of your message box to the file, use it as a way to hide messages.

Your embeds will be attached as you add them after you've selected a file, but can be prepared before selecting your main file.


By default, you can add up to 5 attachments to a file. This limit can be raised, but keep in mind others using the default settings will only see your 5 first files, unless they themselves raised that limit in the settings.

Thread Watcher

The "thread watcher" allows you to find threads that contain embeds. A lot of the results might be false positives from people posting directly files from boorus, so you can adjust the perceptual hash filter settings to reduce that. Setting it to a very high value ensures results will be exclusively made of direct link embeds.

The "Contribute" checkbox makes your browser report posts with embeds you come accross during your regular browsing to telepee. It is recommended to enable it if you frequently post as it'll make your posts more visible to other extension users.


[NEW] b4k

b4k is a meanie, i disabled lazyloading of thumbnails, heck.


If you want to use b4k, you will get warning prompts. I added a ton of warning screens so it shouldn't happen to you. Switch to the beta and enable this setting. If you're using TamperMonkey, it has something similar called "Instant Injection"


It doesn't work

I can't help if you don't give me any information, see below. As mods are banning any kind of discussion about this extension, please open an issue on this repository. Account creation is quick and requires no email verification.

"I am using [BROWSER] and [USERSCRIPT MANAGER] and when I do [X]..."

That's better. Officially, all developpment is made and tested on latest Chromium with VM. I'm willing to provide support and help for FF and other Chromium-based browsers as long as you use ViolentMonkey and provide as much information as you can: console logs, screenshots, versions...

Something else

Open an issue on this repository, you need an account but email verification is disabled.

It's slow

The slowest machine I have available is an 8GB 2011 Sandy Bridge i5 with a 1660Ti, the only way I can tell something is slow is if you post a performance profile for me to study. (DevTools > Performance > Reload and Start Profiler > Save Profiler).

There are parts where slowness is unavoidable, for example if you have a slow internet connection and enabled preloading (what the h*ck are you doing?).

Even without preloading enabled, PEE still makes many requests at the start of a page as it fetches a small initial chunk of png/webm/gif files to know if something is embedded in there, only progressing further when something is detected. It also does boorus/catbox requests for the corresponding filenames.

Why is it so big

The file-type detection package is huge as it detect many file types, but also depends on node constructs that are also huge by themselves. There's also a webm parser that's relatively big that's used for embedding/extracting files in/from webms. There's also the svelte UI that compiles down to simple javascript.

How do I know it's not a botnet???

You're free to audit the code. You don't have to audit the 22000 loc file, you just need to audit the 3000-something lines of typescript code in the src folder, build it as instructed, and compare it to the one distributed.

But embedding is a bannable offense!!!11

Yeah, well use at your own risk, you double baka.

While it is true PEE used to allow you to embed complete files in your uploads, recent changes to 4chans have made it much less practical (limited to really small files), so it's falling back to linking external content hosted on pomf-clones such as catbox.

Links are much smaller and as some PNG editing software injects their own metadata, 4chan is basically required to allow some little amount of it to go through, lest they inconvenience a lot of their users, so a link-embedding detection method cannot be generalized, meaning they rely on unpaid janny labor to moderate this kind of content.

Just be discreet about it and you won't get into trouble.

H*ck jannies

/cumg/ threads are still banned despite being tolerated for over a year and the current ones being made not breaking any rule or even daring to thread on a grey line.

Their OPs are wrongfully being banned under the pretense of using proxies/VPNs, or evading bans that didn't exist in the first place.


Third Eye

Third eye filenames are supported. Filename just need to be made of 32 hex characters that correspond to a filename in any of the supported boorus.



  • Base64 filenames
  • [<host>=<file>] filenames
  • [<type>=<URL>] filenames (URL must be one of the supported hosts (catbox, pomf, zzzz...))
    • <type> is ignored and is inferred from the file content


By setting an API Key, you can automatically embed random files (prefiltered by your tags) into your uploads. You can also directly search, pick and embed from your Hydrus database from within PEE.

To generate an API Key, first enable the Hydrus Client API:

  • Services > Manage Services > Client API

Leave the default port at 45869, enable CORS headers (required), and disable "allow non-local connections" (optional, but better security)

Apply your changes, then:

  • Services > Review Services > Local > Client API > Add > Manually

Take note of the Access Key, enable the "Search for files" permission, apply your changes.

Then give this Access key to PEE where it's asked for.