Privacy
Kimochi is a desktop app with no analytics, and accounts are optional. Most of what it does happens on your computer. This page lists exactly what leaves it, and when.
The short version
- A Kimochi account is optional. The app works fully without one. If you create one, we store what is listed under Accounts, and deleting the account removes it.
- The app has no analytics, telemetry, crash reporting or advertising. It does not report how you use it.
- Your captures, log, notebook, statistics and settings are stored on your computer. They are not uploaded anywhere unless you sign in to an account, which syncs them between your computers.
- Some features use the internet. When they do, they send only what that feature needs, and the on-device alternatives are listed below.
Who we are
Kimochi is made by Hamish Macpherson, an individual developer in Canada. “We” on this page means him. The app’s source code is published on GitHub under the GPL-3.0 licence, so you can check everything described here.
What stays on your computer
- Screen and window captures. Frames are held in memory while Kimochi reads them and are not saved to disk or uploaded, except to an online OCR service (Google Lens or cloud OCR) if you use one (see below).
- Recognised text and the Log. OCR results, the line history, sessions and reading statistics are stored in the app’s data folder.
- Notebook. Characters, places and notes you add stay in the app’s data folder.
- Dictionaries. Yomitan dictionaries you import are stored locally, and lookups run locally.
- Settings, including any API keys you enter for optional services, are saved in the app’s data folder (for example
~/Library/Application Support/dev.kimochi.app/on macOS).
Deleting the app’s data folder removes all of this. We never receive a copy of it.
What leaves your computer, and when
These features contact a server. Each one only does so when you use it.
Google Lens
Google Lens is the default engine for new installs. When it is selected and you scan (manually or with Auto OCR), Kimochi sends an image of the captured region straight from your computer to Google’s Lens service at lensfrontend-pa.googleapis.com (the one Chrome uses for Google Lens) and receives the recognised text. The image does not pass through our servers, and we never see it. Google processes it under its own terms and privacy policy, which describe what it keeps.
Kimochi cloud OCR
Kimochi’s own cloud OCR is available when you are signed in to a Kimochi account (see Accounts). When it is selected, each scan (manual or with Auto OCR) sends an image of the captured region to our server at kimochiapp.com, hosted on Cloudflare Workers, which passes it to Google Cloud Vision for text recognition and returns the result. Our server does not store the images or the text; it only adds one to your monthly count. Cloudflare and Google process the request under their own terms; Google’s policies describe how it handles images sent to Cloud Vision.
If you would rather nothing leave your machine, choose an on-device engine in Settings → OCR & Overlay: Apple Live Text (macOS), MeikiOCR, Manga OCR or OneOCR (Windows). These run entirely on your computer.
Your own OCR server
If you point Kimochi at a custom OCR endpoint, captured images go to that address, which you control or chose. Its privacy depends on whoever runs it.
Text to speech
Read aloud is likewise available when you are signed in. When you play audio for a line, Kimochi sends that line’s text and the selected voice to our server, which asks ElevenLabs to generate speech and returns the audio. Only the text you choose to hear is sent. The generated audio is cached (in Cloudflare R2, named by a fingerprint of the voice and text, not by who asked) so the same line is not generated twice for anyone.
Model downloads
On-device OCR models are not bundled. The first time you select MeikiOCR or Manga OCR, Kimochi downloads the model files from Hugging Face (and its supporting files from GitHub). Those hosts see an ordinary download request from your IP address. Nothing about your captures is sent.
Dictionary downloads
If you download a recommended dictionary from inside Kimochi, the file comes from its publisher’s host, for example Jitendex from GitHub or a frequency list from jiten.moe. Dictionaries you import from a file involve no network at all.
Anki
Kimochi talks to Anki through the AnkiConnect add-on on your own computer (by default 127.0.0.1:8765). Cards go straight to your Anki collection. If you sync Anki with AnkiWeb, that is between you and Anki.
Other optional features
- VNDB import in the Notebook sends your search terms to VNDB’s public API to find a title and its characters.
- DeepL translation, if you add your own DeepL API key, sends the line you translate to DeepL under your account.
- Kimochi translation and explanations, when you are signed in and choose them, send the line (and, for explanations, the surrounding context the app includes in its prompt) to our server, which passes it to DeepL or to an AI model provider (Anthropic or OpenAI) through Cloudflare AI Gateway. The gateway keeps request logs, tagged with your account id, which we use to run the service and watch costs. Our server does not otherwise store the text.
- Explain with your own tool runs an AI command-line tool you have installed and signed in to yourself (Codex or Claude Code). The sentence you ask about is sent to that provider under your own account and its terms.
- Yomitan API helper. If you choose the Yomitan API dictionary option and install its optional native helper, the helper is downloaded from GitHub. Lookups then go to the Yomitan in your own browser, on your computer.
- Clipboard and WebSocket inputs and outputs only talk to programs on your own computer (or addresses you enter).
Your operating system, graphics drivers and any third-party OCR runtime may have their own data practices; those are outside Kimochi’s control.
Accounts
You can use Kimochi without an account. An account adds Kimochi’s hosted services (cloud OCR, read aloud, translation and explanations, within free monthly allowances) and sync of your sessions, notebook, presets and preferences between your computers. If you create one, we store:
- Who you are: your email address, the display name you choose, and either a hashed password (we never see or keep the password itself) or the id of the Google or Discord account you connect, plus the name and email it shares.
- Sign-ins: the browsers and Kimochi apps signed in to your account, with their device name, platform and when they were last used, so you can sign them out.
- Usage counts: how many scans, read-alouds, translations and explanations you used each month, to apply the allowances. Not the images or text themselves.
- Synced data, while a Kimochi app is signed in: your preferences (never your API keys or other secrets), presets, reading totals, and your sessions with their lines, notebook and captured images.
This is kept on Cloudflare: account data and synced records in Cloudflare D1, images in Cloudflare R2. Emails we send (confirming your address, resetting a password) go through an email delivery service. We do not sell or share account data, or use it for advertising.
You can download everything synced, delete it, or delete your whole account, from the account page at any time. Deleting the account removes everything listed above straight away, including everything synced, and signs out every linked app.
This website
This site is a set of static pages plus the account pages. It runs no analytics or advertising. If you sign in, it sets one cookie that keeps you signed in (for up to 30 days of inactivity), and a short-lived one while you sign in with Google or Discord; otherwise it sets none. It remembers your light or dark theme choice in your browser’s local storage, which never leaves your device.
To show the right download, the download button asks GitHub’s public API for the latest release, directly from your browser. GitHub sees that request (including your IP address) under the GitHub Privacy Statement. Downloads themselves come from GitHub Releases. The company hosting this site may keep standard server logs (such as IP address, page requested and browser) for security and operations; we do not use them to identify you.
Children
Kimochi is not directed at children and collects no personal information unless you create an account. If you are under the age at which you can consent to online services where you live, please use the optional online features with a parent or guardian’s permission.
Changes
If Kimochi starts sending anything new off your computer, this page will be updated before or alongside that release, and the date at the top will change. Significant changes will also be noted in the release notes. See also the terms of use.
Contact
Questions or concerns: email hamstu@gmail.com, or open an issue on GitHub.