Privacy policy
Last updated 13 October 2026
This site rests on one claim: your files stay on your computer. A privacy policy is the place to say how far that goes — including the three tools where it does not go all the way.
Most tools send nothing at all
Compressing an image, a PDF or a video; merging, splitting or cropping; HEIC to JPG; pulling the audio out of a video; reading text out of a picture with OCR; building a poster — each of these runs as a program inside your browser tab.
The page downloads that program from this site the way it downloads a stylesheet. From then on it reads the file straight off your disk, does the work on your own processor and hands you the result. There is no upload endpoint for these tools. Disconnect from the network once the page has loaded and they keep working.
Because nothing arrives, there is nothing for us to keep, read, scan or pass on. That is not a statement about how carefully we look after your data. There is no copy of it to look after.
The three tools that do send something
PDF Translator, Image Translator and Video Translator need a translation model, and a translation model does not fit in a browser tab. This is exactly what leaves your machine:
- PDF Translator — the PDF stays on your disk. The page pulls the text out of it locally and sends only that text to Cloudflare Workers AI. The file, its pages, its images and its fonts are never transmitted.
- Image Translator — in AI mode, which is the default, a reduced copy of the picture (at most 1024 pixels on its longest side) is sent so an AI model on Cloudflare Workers AI can read and translate it. In Fast mode, which you can switch to, the image stays on your disk: the page reads the text out of the picture on your own machine and sends only that text. On paid plans you can pick Kimi as the AI model instead; then that reduced copy and the language you want are sent to Moonshot AI’s API (Beijing, China), which reads and translates it. We do not send them your identifier or your IP address.
- Video Translator — the video stays on your disk. The page extracts the audio track in your browser and sends that audio for transcription; the transcript is then sent for translation. The video itself is never transmitted.
We do not store the text, the image, the audio or the translation. They are used to answer the request and are not written to any database of ours — the only thing recorded is a number of characters, for counting your allowance. What Cloudflare does with a request inside its own infrastructure is covered by its terms for Workers AI, not by this page.
If a document is sensitive enough that its words must not leave the building, do not use these three tools. Every other tool on the site is still fine for it.
Counting the free allowance without keeping your IP
The three AI tools give every visitor a small free allowance each day, which means we have to count. We count without keeping your IP address.
When a request arrives we take your IP address, a secret of ours and today’s date, hash the three together with SHA-256 and keep the first 32 characters. The stored row holds that hash, the date and a character count. The IP address itself is never written down, and the hash cannot be turned back into it.
Because the date is inside the hash, the same visitor produces a different key tomorrow. Today’s usage cannot be linked to yesterday’s, by us or by anyone who got hold of the table.
Those rows — the per-visitor count, the site-wide daily spend cap and the count of licence-recovery attempts — are deleted three days after the day they belong to.
What a purchase stores
Buying a page pack stores one row containing: the random identifier your browser generated, the order id, a subscription id where there is one, the email address you gave at checkout, the status of the purchase and, where it applies, the end of the paid period. A second row records how many characters that identifier has translated in the current month.
These rows have no automatic expiry. They last as long as the licence does, because they are the only record that you bought it. They are deleted when you move the licence to another browser — the old row goes — and we will delete them on request.
We never see your card details. Payment is handled by Waffo; the card number goes to Waffo and never touches this site.
One more table holds the ids of payment events already processed, so that a delivery Waffo retries is not counted twice. It holds ids and timestamps and nothing about you.
On your own computer
This site sets no cookies. None for analytics, none for preferences, none at all.
The three translation tools keep a single entry in your browser’s local storage, named lft-claim. It holds a random identifier that stands for a page pack you bought. Nothing else is stored there, and it leaves the browser only when a translation request carries it to check your allowance.
Clearing your browser data clears it, which is why a purchase can be moved to a new browser with the email address you paid with.
To do that, you type that email address on a translator page or in the extension’s menu. If it matches a purchase, we send it a one-time link that works for 30 minutes, and the purchase moves to whichever browser opens the link. We store a hash of the link, the email address and the expiry time, and delete them a day later. We give the same answer whether or not the address has bought anything, so the form cannot be used to find out who is a customer.
The suggestion form
There is one page on this site that does send something you typed: the suggestion form. It stores what you wrote, the email address if you chose to leave one, the page you came from and the language you were reading in.
We keep it until we have dealt with it, because that is the point of it. If you left an email we may write back; if you did not, we still read it. It is never shown in public, sold, or used for anything except fixing and building this site.
Want it deleted? Write to support@anyfilekit.com and quote enough of it that we can find it.
The Chrome extension
AnyFileKit Image Translator for Chrome does the same job as the Image Translator page, on images you meet while browsing. It does nothing until you right-click an image and choose “Translate image with AnyFileKit”. It does not look at other images and keeps no browsing history. When “Text in image” is set to Auto-detect, which is the default, it reads the image’s description and a few thousand characters of text on that page, only at that moment and only on your computer, to tell which language the image is in. That text is never sent anywhere.
When you choose that menu item, this is what happens:
- The extension loads that one image inside your browser: from its address, from the page itself, or, when neither works, by taking a screenshot of the visible tab and cutting out the image.
- In Fast mode, which you can choose in the extension’s menu, the image and the screenshot stay in your browser. The text in the image is read on your own computer; the first time you read a language, the extension downloads that language’s reading data from anyfilekit.com, or for less common languages from the public jsDelivr CDN. That request carries only the name of the language file. Only the text that was read, the language you want and a random identifier are sent to anyfilekit.com to be translated.
- In AI mode, which is the default, a reduced copy of the image (at most 1024 pixels on its longest side) is sent to anyfilekit.com together with the language you want and the random identifier. It is passed to an AI model on Cloudflare Workers AI that finds and translates the text, and the list of text blocks and translations comes back. The image is not stored by us and is not used for anything else.
- Either way the request is handled like the Image Translator above: the text, the image and the translation are not written to any database of ours, and your free allowance is counted with the same hashed key, without keeping your IP address.
- The translated picture is drawn in your browser and put in place of the original on the page you are looking at.
The extension stores four things in Chrome’s own extension storage: the random identifier, the mode you chose, the language of the text in your images and the language you translate into. If Chrome sync is on, Chrome may sync the mode and the two language choices between your own devices. Removing the extension removes all of them.
The random identifier is the same kind as the one this site keeps under lft-claim, and the extension keeps the two the same so that pages you bought work in both. On anyfilekit.com only, and on any anyfilekit.com tab already open when you open the extension’s menu, it reads that one entry; if the extension holds a purchase and the site does not, it writes its identifier there and reloads the page. Restoring a purchase from the extension’s menu sends the email address you type to anyfilekit.com, the same as the restore form on this site.
Chrome asks you to allow the extension on all websites because the image you right-click can be hosted on any site, and the extension has to load it from there. It uses that access only for the image you chose, at the moment you chose it.
There is no analytics, advertising or tracking code in the extension, and nothing it handles is sold or shared with anyone.
Capturing a web address in HTML to Image
HTML to Image can also capture a live page from its web address. That mode cannot run in your browser, so the address you type is sent to our server, together with the width, sharpness and format you chose and the same anonymous browser ID the translation tools use for page allowances.
Our server opens the address in a Chrome browser run by Cloudflare Browser Rendering, takes the screenshots and sends them straight back to your tab. The pictures are not stored. We log the site name, how long the capture took and whether it worked, to keep the service running and to count usage; we do not log the full address.
Because the page is opened by our server, it sees the page as a visitor who is not signed in. Do not use this mode for addresses that contain private tokens or secrets.
The Full Page Screenshot extension
AnyFileKit Full Page Screenshot for Chrome captures the page in the current tab as one long image. It does nothing until you click its button in the toolbar or choose “Capture full page” from the right-click menu, and it acts only on the tab you used it in.
When you start a capture, Chrome’s own screenshot feature is used to capture the page screen by screen while the extension scrolls it; sticky headers, floating buttons and scrollbars are hidden for a moment so they do not repeat, and the page is scrolled back to where it was. If part of the page scrolls inside a panel or a frame, the extension briefly makes the tab taller so that everything is visible, takes the picture and puts the tab back the way it was. While this happens, Chrome shows a bar saying the extension is debugging the browser; that is Chrome announcing the screenshot feature, and the bar goes away when the capture ends.
The screenshot is saved as a PNG to your Downloads folder, and a small notice on the page lets you open a preview where you can also save a JPG or copy it. The last screenshot is kept in the browser’s session storage for that preview and is cleared when you take the next one or close the browser. The extension sends nothing to anyfilekit.com or anywhere else and makes no network requests of its own.
Chrome asks you to allow the extension on all websites because parts of a page can come from other sites, such as embedded frames, and the extension has to measure them to capture the whole page. It uses that access only on the tab you clicked, at the moment you clicked.
There is no analytics, advertising or tracking code in the extension.
No analytics, no tracking, no ads
There is no analytics script on this site. No tag manager, no advertising script, no social widget, no third-party font or stylesheet. Every page loads code from this site and nowhere else.
We have no visitor analytics of our own. The only traffic figures we see are the aggregate request counts Cloudflare shows any site owner about their own site, and those are not tied to a person.
Who else is involved
Three companies, for three jobs:
- Cloudflare — hosts the site and runs the translation and transcription models. Serving any page means Cloudflare’s network handles the request, as it would for any site behind it.
- Waffo — processes payments. Card details go to Waffo and never reach us; in return we learn the order id and the email address used.
- Resend — delivers the restore-link email when you ask for one. It receives your email address and the email itself, and nothing else.
There is no one else. No data broker, no advertising network, no analytics provider.
Asking what we hold
You can ask what is stored against your licence, and ask for it to be deleted, at support@anyfilekit.com. Say which order it concerns.
For the free-allowance rows there is nothing to ask for. They carry no identifier we could look you up by, and they are gone within three days.
Changes to this policy
If this changes, the date at the top changes with it. The part worth re-reading is the second section: what leaves your computer.