Privacy Policy for Halfleaf

Effective date: August 19, 2026


1. Scope

This Privacy Policy explains how Halfleaf handles information when providing reading, text-to-speech, offline audio generation, iCloud synchronization, and support features.

Halfleaf is designed to work offline first. The app has no account system, advertising, behavioral analytics, or telemetry. It does not upload imported books, generated audio, reading history, or annotations to servers operated by the developer.

Some features do require network connections to Apple iCloud, voice-model repositories, email providers, or the hosting service for this website. These connections are described separately below.

2. Data stored on your device

Halfleaf stores data required to provide its features locally, including:

This data is stored in the app sandbox or other app-specific directories provided by the Apple operating system. Except as described in this policy, Halfleaf does not transmit it to the developer.

You actively claim the Pro trial through a zero-priced Apple In-App Purchase. Halfleaf verifies trial and purchase records using Apple StoreKit, calculates the 14-day period from the claim transaction date, and caches the start date, revocation status, and lifetime entitlement in local app preferences for offline use. Claiming, purchasing, and restoring use Apple's services. The same purchase account can restore its records on supported devices, independently of Halfleaf's iCloud content synchronization and without sending them to a developer-operated server. Deleting the app does not delete Apple's transaction records. Halfleaf does not receive your bank or payment-card details. Early test builds may have left device-only trial records in the Keychain; the current version no longer reads or adds them.

To limit trial extensions through simple clock rollback, Halfleaf stores a lower bound of the observed time in local app preferences. It includes device time and signing dates from verified Apple transactions. This record only increases and is used to check the original trial deadline; it does not change the claim date or affect lifetime purchases. A completed scheduled wait for the trial deadline also advances this record.

This record is not sent to the developer or used for cross-app tracking. It is not a continuously refreshed network clock. Device backups may include the preference. If an incorrect future device date is observed, correcting the date later does not lower this record and may cause the trial to end early.

3. iCloud synchronization

When you allow Halfleaf to use iCloud in system settings, the app can synchronize the following data between devices signed in to the same Apple Account through an Apple CloudKit private database:

CategoryExamples
Book informationTitle, author, cover, and original filename
Reading dataPosition, progress, lists, annotations, and highlighted text
Reading and listening statisticsActivity start and end times, reading or listening category, random record identifiers, and book completion times and identifiers
Reading settingsTheme, text size, voice preferences, and chapter adjustments
Source filesEPUB, TXT, or Markdown files that you imported
Offline audioGenerated audio files and narration timelines
Custom voicesName, description, reference recording, and preview audio
Workbench registrationAn app-generated device identifier, workbench/device name, available voice names and capabilities, and recent online/offline status timestamps
Workbench tasksBook and chapter titles, content fingerprints and character counts, selected voice, originating device name, chapter selection, generation progress, control requests, and status timestamps

Statistics combine activity across devices: overlapping time is counted once, with listening taking priority over reading. Activity intervals contain no book text, recordings, or device names. They are not sent to the developer or used for analytics or advertising. Days are displayed in the viewing device's time zone. Offline records sync when iCloud is available. Deleting a book does not automatically delete cumulative statistics; see Section 8 to remove app data containing these records.

If you enable a Mac as your workbench or send it a generation task, Halfleaf uses these workbench records to coordinate your own devices. The default workbench name can come from the Mac's hostname; you can change it in Settings — Data & Storage — Workbench. Its app-generated device identifier is used to select the workbench, not for advertising or cross-app tracking. Recent successful synchronization and exit timestamps let your other devices estimate whether the workbench is online; they are not a continuous connection or a guarantee that generation is running.

Task records describe the requested work and its state. They do not contain full book text, reference recordings, or unfinished audio. The workbench obtains the required book source and custom-voice assets through the same private iCloud synchronization described above, generates speech locally, and synchronizes completed audio through the existing audio service. These records and assets are not sent to the developer or a cloud speech service.

The CloudKit private database is associated with your Apple Account and is not a server operated by the developer. The developer does not receive this content through its own services. Apple provides the transfer, storage, and security mechanisms, and its terms and privacy policy apply.

Halfleaf does not currently offer separate synchronization switches for each category of data. You can stop future synchronization by disabling Halfleaf in your system iCloud settings. Disabling synchronization does not automatically delete data already stored on your device or in iCloud.

If you upgrade from an earlier test build, your device or iCloud account may still contain pronunciation-correction records created by that build. The current release no longer provides an interface for creating or editing those records, but it may still read them for compatibility. You can remove the corresponding local or iCloud data using the methods in Section 8.

4. Voice-model downloads

Local neural voice models are optional downloads chosen by the user; preview audio is included with the app. When you use this download feature, Halfleaf may connect to public model repositories or mirrors, including:

Model-download requests do not include book content, reading history, annotations, your iCloud account, or a unique device identifier. To provide the network connection, the repository and its network providers may process your IP address, request time, requested file, and ordinary HTTP request information. Their respective privacy policies apply to that processing.

Voice-model downloads are optional. You can use Apple's built-in system voices without downloading a model, and audio already generated does not require the original model for playback.

5. This website

Halfleaf's website and Privacy Policy are hosted on Tencent Cloud. The site provides help, same-origin audio samples and optional launch registration as described below. It has no account system, advertising, cookies, external fonts or third-party CDN.

Where a page offers audio samples, the files are served by this website. Listening does not require uploading books or recordings, or granting microphone access. Audio-file requests are subject to the limited technical information processing described below.

To establish a connection, deliver pages, and protect the service from abuse, the hosting and network providers may process limited technical information such as IP address, request time, requested path, and browser type. The developer does not use this information for profiling or advertising and does not associate it with data in the Halfleaf app. Technical logs are retained according to the actual server configuration and the service provider's applicable terms.

6. Feedback and communications

You can contact the developer through the in-app Email Feedback option or by emailing halfleaf@qqfly.net directly.

The in-app option opens your system mail application and pre-fills the following technical context:

The pre-filled text does not contain book titles, authors, book text, reading progress, annotations, logs, file paths, your iCloud account, device name, or a unique device identifier. You can review, edit, or remove any content before sending the message.

Only after you choose to send an email will the developer receive your sender address, message, attachments, and any pre-filled information you leave in place. This information is used only to respond, investigate an issue, and maintain records reasonably necessary for that communication. It is retained only for as long as needed for those purposes or to meet applicable legal obligations. The email providers used by both parties also process the message under their own terms.

The app also offers a diagnostic-bundle export that you initiate. Unlike the pre-filled email text above, this bundle may contain app and device context, background-task status, structured operational events, and performance or crash reports provided by Apple MetricKit. Halfleaf does not upload the bundle automatically. You decide whether to send it through the system share sheet and who receives it. Please inspect its contents before sharing. If you send it to the developer, it is used only for troubleshooting and necessary support records.

7. Microphone and custom voices

Halfleaf requests microphone access only when you choose to create a custom voice by recording a reference clip.

Halfleaf does not use the microphone for any other purpose.

8. Deletion and retention

What you want to removeHow to remove itResult
A local copy of offline audioChoose Remove Download under Settings — Offline AudioRemoves only the local audio; a copy in iCloud can be downloaded again
A local book source and derived cachesWhen the source is already in iCloud, press and hold the book in the library and choose Remove DownloadKeeps the book record and cloud copy; opening it again can retrieve the source from iCloud
Offline audio stored in iCloudChoose Delete in Offline AudioRemoves the corresponding local and iCloud audio; other devices update after synchronization
A custom voiceDelete it under Settings — My VoicesRemoves its reference and preview audio; book audio already generated with the voice remains
A book and its associated dataDelete the book from the libraryRemoves the book, reading progress, annotations, source file, and associated offline audio; other devices update after synchronization
An ended workbench taskDelete the record from the workbench task list once the task is shown as ended and its pending changes are confirmedRemoves that task record from iCloud after synchronization; already generated audio remains
The current workbench registrationTurn off Use as workbench in Settings — Data & Storage — Workbench on the registered MacClears the registered device identifier, name, voice catalogue, and presence timestamps after synchronization; existing task records and generated audio are retained separately
Local app-sandbox dataDelete the appRemoves the app's sandbox data, but not iCloud copies or Apple's transaction records; unused Keychain records from early test builds may remain
All Halfleaf data in iCloudRemove Halfleaf data under Settings — Apple Account — iCloud — Manage Account StorageRemoves Halfleaf data stored in your iCloud account

Halfleaf does not currently offer a single control that deletes all cloud data. To remove both local and iCloud data, you must delete them separately.

Ended workbench tasks with confirmed changes are hidden seven days after their last status update and become eligible for deletion from iCloud during a later successful synchronization. Offline devices or synchronization failures can delay that deletion. Tasks still running, paused, waiting for confirmation, or with unsent changes are retained. Turning off the workbench or deleting a book does not itself delete the task history, which may still include book, chapter, and device names. You can remove ended tasks manually as described above; removing all Halfleaf data from iCloud also removes its workbench records. The cleared registration record itself may remain to indicate that no device is registered.

You control how long device-local and iCloud data is retained. Feedback email and necessary website security logs are handled for the purposes and periods described in Sections 6 and 5, respectively.

9. Children's privacy

Halfleaf is not specifically directed to children and does not ask users to provide their age. The app contains no advertising, behavioral analytics, or account registration. If a parent or guardian believes that a child provided inappropriate information through a feedback email, they can contact the developer at the address below.

10. Your rights

You can access, modify, or delete Halfleaf data directly on your device and through iCloud settings. To request access to, correction of, or deletion of information supplied by feedback email, or to ask a question about this policy, contact halfleaf@qqfly.net. The developer will respond within a reasonable period after verifying the request.

11. Security

Halfleaf relies on Apple's app sandbox, device encryption, and iCloud protections for data in transit and at rest. This website is served over HTTPS. The developer applies safeguards appropriate to the product and the information handled, but no storage or transmission method can guarantee absolute security.

12. Changes to this policy

The developer may update this policy when Halfleaf's features, data practices, or applicable requirements change. The updated policy will be published on this page with a new effective date. Material changes affecting user rights will also be communicated in the app or its release notes, as appropriate.

13. Contact

Developer: qqfly

Email: halfleaf@qqfly.net

Website and help: Halfleaf website

Website launch notification — separate from the App

This notice applies only to optional launch registration on the Halfleaf website, updated September 22, 2026. It does not change the App’s data handling.

Only when you actively click the launch-notification button, we store a random event ID, random browser ID, server time, button placement and page language. Click counts and approximate browser-deduplicated interest counts cover 180 days. Repeated requests are not counted again. Browser IDs are stored in this site’s localStorage only after the server confirms success and expire after 180 days. Cleared storage, other browsers and shared devices affect these counts; they are not unique people or purchase intent.

Email registration is optional and only used for this app’s availability notification, not advertising. We store your email, registration time, language, button placement and the notice version. Duplicate addresses are counted once; submitting again does not extend retention. Addresses are not verified, and registration itself does not send an email.

Interest records expire after 180 days. Emails expire one year after registration or 30 days after notification, whichever is earlier. Contact halfleaf@qqfly.net to request deletion. After verifying the request, we delete the matching registration from the active database and existing private backups. Backups rotate after 30 days; expired records may remain in an older snapshot until rotation. Restores must expire old records again.

The service uses the developer-controlled Tencent Cloud server, with separate storage for each app and no third-party analytics or form provider. No fingerprinting, cookies, cross-site identity matching or association with App content. Management data is not public. Technical access logs may include IP addresses and paths; API abuse prevention keeps network-address digests in memory for at most one hour. No interest identifier is created simply by viewing a page.