Privacy Policy
Last updated
1. Who we are and what this policy covers
Tapiri is a text expansion application operated by Okikelabs Technologies Ltd. References to “Tapiri,” “we,” “us,” or “our” refer to that company. You can contact us at hello@tapiriapp.com.
This policy covers the Tapiri application, tapiriapp.com, and our interactions with customers and people who contact us. It distinguishes information stored on your computer from information involved in visiting our website, buying a license, or requesting support. A local app can keep snippets on your device while a website or payment service separately processes information about your visit or purchase.
For information we determine how and why to process, Okikelabs Technologies Ltd. acts as the responsible organization, often called the “data controller.” Independent payment services and other websites may be responsible for their own processing under separate notices.
For privacy requests and correspondence, use the email address above. Your rights are governed by the privacy laws applicable to our processing.
2. Your snippets and local app data
Tapiri’s personal snippet functionality runs locally on your Mac without a mandatory Tapiri account. Ordinary snippet expansion does not upload your library, send your typing to an AI service, or require an internet request for each expansion. Paid license activation and verification, update checks, and actions you explicitly initiate are separate from local expansion.
Snippets, templates, and preferences
Your local library can contain snippet names, abbreviations, text, formatting, images, folders, app exclusions, and executable script source. The app also keeps local preferences, recent-use information, and draft recovery data. Template answers are saved locally only when you choose to remember them; you can forget an individual saved answer or clear a snippet’s remembered answers.
The library lives in your Mac’s Application Support storage. Snippet files and portable backups are not protected by an additional app-level encryption layer. Protect your Mac and backup locations accordingly. We do not receive a copy of your library merely because you save or use a snippet.
If you export a library, put files in a synchronized folder, or use a computer backup service, the destination you choose handles those copies. That is different from Tapiri providing cloud snippet synchronization. We cannot delete those copies remotely.
Keyboard interaction and Accessibility permission
Tapiri uses macOS Accessibility access to recognize shortcuts, inspect the focused text context where needed, capture selected text when you request it, and insert content into compatible applications. Shortcut matching processes recent input locally and temporarily; it does not create an ordinary typing-history log or send everything you type to our servers.
You can pause expansion, exclude applications, and revoke permissions in macOS settings. Revoking required permissions disables the functions that depend on them. Secure-input protections and application-specific restrictions can prevent insertion; broad cross-app operation does not imply access to every protected field.
Clipboard access
Tapiri accesses the clipboard for features such as explicitly capturing clipboard text, copying a snippet or report, resolving a template that uses clipboard content, and inserting formatted content or images. Paste-based insertion can temporarily replace clipboard contents and retain a local snapshot for restoration. An explicit Copy command intentionally replaces the clipboard.
Clipboard managers, Universal Clipboard, and other applications may separately observe or synchronize clipboard data according to your settings. Avoid copying sensitive information if you do not want those services to receive it.
Scripts and external services you choose
Executable snippets are different from ordinary saved text. Scripts require your explicit trust; imported scripts start untrusted, and saved source changes require renewed approval. Approved scripts run with your user privileges and are not sandboxed. They can access files, execute actions, and contact external services, including sending data to destinations specified in the script.
The statement that ordinary snippets stay local does not describe a script you approve that intentionally transmits information. Review script source, linked scripts, and any form or pattern values passed to them. Cancelling a script or undoing inserted text cannot reverse an external request or a file change already made. Importing or restoring a full library clears script approvals.
Text inserted into other applications
Once you insert text into an email client, browser, messaging service, or other application, that application processes it under its own practices. Tapiri’s local storage does not make another application private or offline. Review the destination before inserting confidential information.
3. Information associated with our services
The app’s local library is separate from the limited information used for billing, licensing, updates, and support.
| Category | Information involved | Purpose |
|---|---|---|
| Support correspondence | Your email address, description, attachments, and optional diagnostics you choose to send | Answer questions, investigate problems, and handle requests |
| Purchase records | Purchase email, Creem customer/order/checkout/product identifiers, plan, amount, currency, and purchase time | Fulfil orders, verify purchases, administer refunds, and maintain records |
| License records | License identifier and key hash, random installation identifier, active device slot, activation status, signed access dates, and relevant timestamps | Activate purchases, manage licensed devices, and verify paid access |
| Website and API requests | Requested resource, request time, IP address and ordinary connection or browser information available to the infrastructure provider | Deliver services, process requests, and protect availability |
| Website analytics | Page visits, traffic sources, campaign parameters, and browser/device characteristics supported by the configured Umami installation | Understand website use and referrals |
Creem checkout
We use Creem as our checkout provider and merchant of record. Creem handles payment details and its own billing, tax, fraud-prevention, and legal responsibilities. We receive the purchase and licensing information needed to provide Tapiri; our licensing database does not store full payment-card details. Read Creem’s Privacy Policy for its processing and roles.
Trial and paid licensing
The seven-day trial starts automatically when you finish or skip setup in the app. It requires no card or separate Tapiri account.
Paid activation, refresh, and deactivation send your license key and a randomly generated installation identifier to our licensing API over HTTPS. The identifier represents an installation; it is not a hardware serial number. The API checks your purchase with Creem and manages device activations. The licensing database stores a hash of the key rather than the raw key, although the key must be transmitted and processed to validate the request. Verified purchase-event identifiers and digests are retained to handle duplicate events; the purchase-recording code does not store the full incoming webhook payload.
Optional support diagnostics
Help → Report a Problem shows the exact report before you share it. Diagnostics start off. If enabled, they include app version/build, macOS version, processor architecture, whether Accessibility permission is granted, whether expansion is running, and whether the library is available.
The diagnostic collector does not include snippet names or bodies, ordinary typing, clipboard contents, remembered form answers, library paths, raw logs, or raw error descriptions. Your written description is included exactly as you enter it, so remove anything you do not want to share.
The report is not automatically uploaded or autosaved by Tapiri. You can copy it, save it to a file, or open an email draft. Your mail application handles draft storage and sending; opening a draft does not send it. The current app has no automatic crash-report upload or general app-usage analytics integration. macOS diagnostics and any sharing you separately enable are governed by your Apple settings.
App updates
Tapiri uses Sparkle to check for and install updates in configured release builds. Automatic checking is off by default and can be enabled in settings. Downloading and installing an update requires your choice. System profiling is disabled, and update checks do not upload snippets or require the feed to receive a license key.
An update request still exposes ordinary network information, such as your IP address and request headers, to the update host. Update downloads are separate network requests from local snippet use and are subject to the retention principles below.
4. Website analytics and referral links
We use self-hosted Umami for website analytics. Its standard analytics functionality is designed to work without analytics cookies. Depending on the configuration, analytics can include page URLs, referrers, campaign parameters, browser and operating-system information, screen characteristics, approximate location, and interaction events.
Cookieless analytics should not be confused with an absence of all processing. Umami’s documentation describes generating session identifiers using information such as IP address, user agent, and website identifier. Website analytics are separate from the Mac app: selecting Umami for the website does not mean snippet contents or ordinary typing are collected from the app. See Umami’s documentation and session documentation.
Some links to other products include parameters such as utm_source=tapiri, utm_medium=referral, and utm_campaign=footer. These identify a traffic source and link placement. The parameters themselves do not include your snippets or an email address. When you follow the link, the destination receives the tagged URL and can record it in its own analytics.
A destination’s analytics record is separate from analytics on Tapiri’s website. Other products, including those linked in our footer, have their own policies. Do not put sensitive personal information into URLs because URLs can appear in analytics, browser history, server logs, and shared links.
We use reporting to understand website traffic and referrals, not to inspect the contents of your local snippet library.
5. Cookies, browser storage, and external services
Browser storage used by a website, local files used by the app, and cookies set by an external checkout are different technologies. Umami’s standard cookieless operation does not establish that every service reached from our website is cookie-free.
Payment pages, video embeds, and third-party services may receive connection information and use their own storage or cookies when loaded or opened. External AI links open the service you select and can include the visible prewritten product-evaluation prompt; they do not attach your snippet library. Where consent is required for optional tracking, we will request it before enabling that processing. You may refuse optional processing without losing access to the local snippet library.
You can manage cookies and site storage in your browser. Blocking a particular service may prevent that service from functioning. Removing website cookies does not delete snippets stored by the desktop app, erase financial records.
6. Why information is processed
The purposes of processing are to deliver the website and purchased functionality, answer support requests, administer payments and refunds, maintain security, understand website performance, and satisfy applicable legal obligations.
Where a law requires a lawful basis, the appropriate basis depends on the activity: performing a contract or taking requested pre-contractual steps for purchases and access; legal obligations for required records; legitimate interests for proportionate security and service administration where those interests are not overridden by your rights; and consent where required for optional processing. We will not treat acceptance of the Terms of Service as blanket consent to every use of personal information.
For local snippets, the relevant operations are performed on your device to provide the functions you request. For purchase and licensing information, processing supports performance of the license agreement; required accounting records support legal obligations. Support and security processing serve our legitimate interests in assisting customers and protecting services, subject to applicable balancing requirements. Website measurement serves our legitimate interest in understanding site performance where permitted by applicable law; where the applicable rules require consent, we rely on that consent instead. You may object to processing based on legitimate interests or withdraw consent for optional processing. Incompatible new uses require an appropriate legal basis and notice.
7. Sharing and service providers
Our licensing API uses Cloudflare Workers and D1, and purchases use Creem. Our self-hosted Umami installation handles website analytics. Cloudflare also provides website and email infrastructure. Email routing and delivery involve the mail systems used by the sender and recipient; using an email-routing provider does not mean every mailbox copy is stored only by that provider. See Cloudflare’s Privacy Policy. We limit the information we provide to what is needed for the recipient’s role. A provider processing information on our instructions is different from a merchant or other business that determines its own legal and operational processing.
Information may also need to be disclosed to professional advisers, courts, regulators, or law-enforcement bodies where required by law or reasonably necessary to establish or defend legal rights. Any business transfer involving customer information must remain subject to applicable privacy obligations and appropriate notice.
Our app does not upload your snippet library for advertising or AI training. The workflows described here do not include the sale of snippet content or advertising profiling of what you type. A user-approved script or a deliberate submission to an external AI service is governed by the actions you choose and that service’s terms. No broad license to your snippets is granted by using Tapiri.
8. International processing
Creem identifies an Estonian operator in its privacy notice, and Cloudflare provides infrastructure that can process information internationally. Website, email, analytics, and payment services may process information outside your country of residence. The relevant locations depend on the providers we actually engage, not simply the location of your device.
Our analytics installation is hosted in Europe. Other providers may use international infrastructure; European analytics hosting does not mean all purchase, email, or licensing information remains in Europe. Where applicable law restricts a transfer, an appropriate lawful transfer basis and safeguards are required, such as an adequacy determination, approved contractual safeguards, or another permitted mechanism. Contact us for information about the arrangements applicable to your information. Using Tapiri is not blanket consent to unrestricted international transfers.
9. Retention and deletion
Local snippets remain on your device until you remove them or their storage. Deleted snippets can remain in Recently Deleted for up to 30 days, unless permanently deleted sooner. Existing backups can still contain an older copy after a snippet is deleted or expires from Recently Deleted.
Tapiri’s local backup policy retains the latest seven regular backups. When saved content has changed, a regular backup becomes due after 24 hours since the last regular copy and is created when the app is running. Manual backups count toward the same regular retention. A separate pre-restore recovery copy may also remain. Backups can include snippets, images, organization, remembered answers, exclusions, and Recently Deleted entries. They exclude script approvals, drafts, recent-use history, preferences, and licensing records.
The app lets you inspect and delete managed backups. Permanent snippet deletion can optionally remove whole managed backup files containing the snippet; it does not erase external exports, system backups, or copies made by other applications. Review recovery copies and exported files separately. Uninstalling the app does not automatically cancel billing or guarantee deletion of all app data.
For information held by us or our providers, retention is tied to its purpose:
- Support requests: resolving the request and maintaining a proportionate record of the issue and its resolution.
- Purchase and tax records: the applicable accounting, tax, refund, and dispute periods.
- License records: administering active access and resolving related purchase or activation issues.
- Security logs: a limited period sufficient to investigate operational or security incidents.
- Analytics: the configured reporting period, followed by deletion or appropriate aggregation.
For server-side records, we determine retention by the duration of the customer relationship, the need to investigate an unresolved request or dispute, applicable accounting and tax obligations, and the operational period needed for security and reporting. We retain information only for as long as reasonably necessary for these purposes, rather than indefinitely simply because storage is available. A deletion request may not remove records we are legally required to retain; where applicable, we will explain the reason and limit further use. Backup copies should expire through the applicable backup cycle rather than being restored to routine use after deletion.
10. Security
Local processing reduces the need to transmit snippet content, but it does not protect against every risk. Someone with access to your device, user account, exports, or backups may be able to access your saved text. Use a strong device password, current software, appropriate disk protection, and backups suitable for the sensitivity of your information.
We use measures such as HTTPS for license requests, signed entitlement verification, and operating-system protections for saved license credentials. Access to information held by us is limited according to the role and purpose of the processing. No software or transmission method can guarantee absolute security. Local library files and exports are not end-to-end encrypted by Tapiri; operating-system protection, including disk encryption, depends on your configuration. Where a security incident triggers notification duties, we will follow the applicable requirements.
11. Your rights and choices
Depending on your location and the law applicable to the processing, your rights may include access to your information, correction, deletion, restriction, portability, objection to certain processing, withdrawal of consent, and a complaint to a supervisory authority. Some laws also provide rights concerning sale, targeted advertising, or significant automated decisions where those activities occur.
Email hello@tapiriapp.com with the subject “Privacy request,” describe the request, and provide the email address or order reference relevant to it. We may request proportionate verification to avoid disclosing information to the wrong person. Do not send identity documents unless specifically requested through an appropriate channel.
We will respond within the period required by applicable law and explain any permitted extension or refusal. Rights have exceptions, including legally required financial records and the rights of other people. We will not discriminate against you for exercising applicable privacy rights. Where legally available, you may use an authorized agent or appeal a decision.
For local snippets, you can use the app’s available editing, deletion, copying, and export functions. We cannot provide a server-side copy of information that was never sent to us. You may also revoke operating-system permissions, understanding that this may disable shortcut detection or text insertion.
You can complain to a competent data-protection authority where you live or work, as applicable, without first contacting us. Where European, UK, or other privacy laws apply to our processing, their additional protections remain available.
12. Children’s information
Tapiri is intended as a general productivity tool, not a service directed at children. A person who cannot legally agree to a purchase must have appropriate authorization from a parent, guardian, or another person permitted by law to act for them. We do not intend to solicit children’s personal information through support or checkout.
If you believe a child has provided personal information to us inappropriately, contact us so we can investigate and take the steps required by applicable law. Text a user independently stores on their own device is distinct from information collected by our services.
13. Changes and contact
Subsequent revisions will show an updated date. Material changes will be communicated in an appropriate way, and additional consent will be obtained where required. A later policy will not retroactively justify uses that were unlawful when information was collected.
For privacy questions or requests, contact Okikelabs Technologies Ltd. at hello@tapiriapp.com. Contact us by email for postal-correspondence details.
For the rules governing use and purchases, see our Terms of Service.
Download emails
When you request an installer, we store your email address and request dates separately from purchase records and use Resend to email the download link. This does not create an account, verify ownership of the address, or subscribe you to marketing. Contact hello@tapiriapp.com to request deletion.
When you submit the download or checkout form, we remember the email in this browser’s local storage so you can confirm or edit it next time. Clearing this site’s browser data removes it. For checkout, we send the confirmed email to Creem to prefill the payment form and deliver your purchase receipt and license key.