Privacy Policy
Last updated October 21, 2026
Comoji is built privacy-first. It processes keystrokes locally only to detect emoji shortcuts. Message contents are never uploaded, raw typed text is never logged, and the core app makes no network calls.
You don’t have to take that on faith. Security & Verification lists every host Comoji can contact, what triggers each one, and the exact Terminal commands to confirm all of this yourself.
What Comoji does on your Mac
To turn :liz into 🦎, Comoji watches keyboard input for colon-prefixed tokens, then inserts the chosen emoji into the active text field using synthetic backspaces and a temporary clipboard paste. All of this happens on-device.
What Comoji does not do
- It does not record, store, or transmit what you type.
- It does not upload message contents or text-field contents anywhere.
- It does not require an account and includes no telemetry by default.
- It ignores secure (password) fields, and a built-in list of password managers, terminals, and remote/VM clients.
Data stored locally
Comoji keeps a small amount of data on your Mac to make the app useful: your settings, any custom aliases you create, your default skin-tone preference, and recent-use counts that improve ranking. This data stays on your device and is never sent to us.
Download link emails
When you request a download link, Resend sends a one-time email to the address you provide. We do not add it to a mailing list or send it to analytics. We keep daily hashed email and network identifiers with request counts to limit abuse; the raw address is not stored in our database. Resend processes the recipient address to deliver the message.
Optional Supporter purchases
Stripe processes Supporter payments and keeps the purchase email and payment records. Comoji never receives your card details. After a purchase, Resend sends one confirmation email to the checkout address with a link to restore your license. To restore a license, the website sends an eight-digit verification code through Resend. We temporarily store activation records, hashed email identifiers, verification codes, and abuse-prevention counters in Firebase. Google reCAPTCHA Enterprise and Firebase App Check protect these forms. Activation and restore pages do not load our analytics scripts. The upgrade page uses Google Analytics according to the regional choices described below.
Contact Support verifies a Supporter purchase using a separate emailed code. Your name, email, message, category, and purchase identifiers are sent through Resend to our support inbox so we can reply. Support codes expire after 15 minutes and are single-use; they cannot restore a license. Message contents and email addresses are never sent to analytics.
Your app stores a signed license containing Stripe identifiers on your computer. It verifies that license offline, without expiry, device tracking, or background license checks. No message contents enter the purchase flow.
Clipboard
Emoji insertion uses the system clipboard briefly and then restores your previous clipboard contents. Clipboard managers may momentarily observe this activity. No clipboard data is collected by Comoji.
Permissions
Comoji requests macOS Input Monitoring (to detect emoji shortcuts) and Accessibility (to read the active text field and insert the emoji). These permissions are used solely for the functionality described above.
Stickers
The optional /sticker feature is one part of Comoji that uses the network. A popular set of stickers ships with the app; the rest are fetched from Google’s emoji CDN the first time you use them and then cached on your Mac. Only the sticker artwork is requested, never your message contents or anything you type. Sticker artwork is Google’s Noto Animated Emoji (CC BY 4.0).
Website analytics
When analytics is allowed, Google Analytics measures site visits, upgrade views, checkout starts, and completed purchases and refunds. Purchase reporting uses a pseudonymous browser identifier and a transaction identifier, currency, and amount from Stripe. We do not send your purchase email, card details, license token, verification code, or activation link to Google Analytics. We keep delivery markers in Firebase to avoid counting a webhook twice. Purchases with analytics disabled are not reported to Google Analytics. You can change your choice using Analytics preferences in the footer. The Comoji app itself contains no analytics.
Analytics cookies and your choices
In the EEA and UK, Google Analytics stays off until you choose Allow all. In California, analytics may load before you choose, and the notice lets you opt out. Elsewhere, analytics loads after your region is resolved without an automatic banner. Global Privacy Control and Do Not Track disable analytics. If the location lookup fails, analytics stays off unless you previously accepted.
Reject unnecessary disables further browser analytics and clears Google Analytics cookies. Purchase and security features, including reCAPTCHA and Firebase App Check, remain available. Your choice is remembered in this browser's local storage; clearing site data forgets it. Analytics preferences in the footer lets you change it.
Our server uses the request's country and state information, or sends your IP address to GeoJS to determine your approximate country and state. This lookup selects the applicable notice. We refresh the location on each page visit.
Discord
The “Join the Discord” links on this site hand you off to Discord, a third-party service with its own privacy policy and data practices. Nothing is shared with Discord unless you follow the link; from that point, what happens in the server is covered by their terms, not ours. Following the link is counted as an anonymous, aggregate click event in the website analytics described above.
Contact
Questions about privacy? Email support@comoji.io.