Privacy policy

Your workout stays yours.

Fighting Form lets you browse and train base workouts without an account. Creating or saving your own workouts and training history requires signing in; they are written to your account on our server and cached on your device. When you are signed in, saved Journal entries and goals, custom collections, and the drills within them are written to your account on our server and cached on your device. Journal text, prompts, feelings, goals, and attachment descriptions and metadata sync; Journal photo, video, and voice recap files remain on your device. Collections and workout interval media files remain on your device except for demonstration videos you choose to stream to TV. Fighter also receives the Collections items it looks up, as described under Optional assistant. Health stores remain on your device; a saved Journal recap of an imported workout syncs its activity, source label, timing, and duration context.

Effective date: October 21, 2026

Account to save Browsing and base training require no account. Sign in to save workouts and history.
No tracking No ads, data brokers or cross-app tracking.
Account and device Saved Journal and Collections records sync to your account. Media files stay on device except for recordings you choose to stream to TV.

Scope

This policy describes how know.sh LLC, an Illinois limited liability company (“know.sh”) handles information in the native Fighting Form apps for iPhone, iPad, and Mac and on Fighting Form’s static privacy and support pages.

Account for your library

You may use Fighting Form to browse and train base workouts without an account. If you choose Sign in with Apple or Sign in with Google to save your own workouts and history, the selected provider sends our identity service its stable provider account identifier and any name or verified email address it supplies. Apple may supply a private-relay email address. We use provider and issuer identifiers—not email or name—to recognize and securely link sign-in methods.

Our identity and account services retain a random Fighting Form account identifier, the provider links you authorize, the bounded provider name and email snapshot, an editable display name, account creation/update/last-seen times, session and deletion state, and redacted security/audit facts. This information is linked to your account and used only for authentication, account and security functionality, fraud prevention, service reliability, and support. We do not use it for advertising, marketing, cross-app tracking, or data-broker sharing.

If you enable an authenticator app, the identity service generates and protects a TOTP secret, the last accepted counter, enrollment and lockout state, and strong salted one-way hashes of one-time recovery codes. The manual key, QR payload, and recovery-code plaintext are shown only during the relevant one-time flow. Fighting Form does not claim that TOTP is phishing-resistant.

Account credentials, provider revocation credentials, signing keys, and factor secrets are protected separately from ordinary profile records. The native app stores its Fighting Form session credentials in device-only Keychain storage, not preferences. The Apple and Google sign-in flows do not send your workout, Journal, Health, Collection, or media records to those providers.

The identity and account services run on Microsoft Azure in the United States. Apple and Google process their own sign-in and authorization data under their respective policies. Ordinary network information such as IP address, request time, user agent, response status, and requested service path may be processed in bounded security and delivery logs. Requests to our account API also carry the app version and build for service reliability and content compatibility counts; this header contains no personal information or device identifier. Authorization headers, provider tokens, factor codes, recovery codes, profile bodies, and local app data are excluded from application logs.

Information in the app

Fighting Form stores the information needed to run, recover, and reflect on your training: timer preferences, custom workout plans, cue settings, favorite combinations, user-authored reference collections and their instructions or supporting links, optional short video or audio files you import into those collections, a resumable in-progress workout or effort checkpoint, onboarding status, unified session history, optional perceived-effort ratings and corner notes, journal entries and drafts, goals, explicitly selected photos, videos, or files, and voice recaps you choose to attach.

Base library content comes from our server and is cached on the device; a corrupt or unreadable cache is deleted and refetched, never migrated. Your own workouts and your training history require signing in to create or save; they are written to your account on our server and kept in a device cache, and offline changes are queued for sync when your account connection is available; conflicts or rejected changes may need your attention. Records saved on this device before you signed in are offered for upload when you sign in.

When you are signed in, saved Journal entries and goals, custom collections, and the drills within them are written to your account on our server and cached on your device. Journal text, prompts, feelings, goals, and attachment descriptions and metadata sync; Journal photo, video, and voice recap files remain on your device. Collections and workout interval media files remain on your device except for demonstration videos you choose to stream to TV. Fighter also receives the Collections items it looks up, as described under Optional assistant. Fighting Form does not sell your information, use it for advertising, or share it with data brokers. The optional assistant and TV streaming for your recordings also send content to Fighting Form services as described below, including Collections items Fighter looks up for you.

Analytics and crash reports

The iPhone, iPad and Mac apps share analytics and crash reports unless you turn off Share analytics and crash reports in Settings. They are off in development builds and automated tests, and they stop at once when you ask to delete your account and stay off until you sign in again. There is no App Tracking Transparency prompt because nothing is used to track you: we do not read the advertising identifier, link this data with other companies' data, or share it with advertisers or data brokers.

Product analytics (Mixpanel, United States data residency). The apps send product events such as opening the app, starting and finishing a workout, saving a routine or a Journal entry, and using the assistant, with coarse facts about them: the workout's craft, how it ended, its duration as a range, round and interval counts, whether a Watch is paired, timing ranges, the platform, and error codes. Events never include workout or routine titles, notes, Journal text, Health data, Collections content, searches or your own media. When you are signed in, events carry a pseudonymous identifier derived from your account, so they are linked to your account; signed out, they carry a random identifier for this installation. Mixpanel does not derive your location from your network address. Analytics stored in the United States include events from users in the European Union. Deleting your account asks Mixpanel to delete its events for your account.

Crash reports (Firebase Crashlytics, Google). When the app crashes or hits certain errors, it sends a crash report with technical details (device and system version, the code location, and a short error code) and a Firebase installation identifier. Crash reports are never linked to your account, and are kept for 90 days. Deleting your account deletes this installation's Firebase identifier.

Both services receive your network address as part of delivering a request, as any internet service does.

Depending on your settings, Apple may include Fighting Form’s iPhone or iPad data in a device or iCloud backup, and a Mac backup service may include the Mac app container. Apple and any backup provider control those services under their own terms and privacy policies.

Optional assistant

Fighting Form includes an optional assistant, Fighter, whose only ability is making and editing your own workouts, using the exercise logs you have recorded to set them up. It is reached from Train and Build, it requires a signed-in account, and it sends nothing until you enter a message and choose Send.

When you send a message, Fighting Form transmits that conversation and the draft workout it is building with you to the Fighting Form inference service, which sends it to an AI model provider to write Fighter’s reply: Anthropic (Claude). We don’t attach your name, email or account identifier; anything you type, and the library items Fighter looks up, are sent as they are. Before Fighter sends anything to a provider for the first time, the app asks for your permission; you can withdraw it at any time in Fighter settings, and Fighter then sends nothing. To build or edit a workout, Fighter can also look things up in your library, and the app then sends what it finds: the names of your saved workouts and Stacks, the details of the saved workouts and Stacks it opens, and the names and instructions of matching items in your own Collections, alongside exercises from our catalog. When Fighter sets the repetitions, time or weight for an exercise, it can also ask the app for your last few logged sessions of that exercise, and the app then sends, for each set, what was planned and what you completed (repetitions, time and weight) with the date. These assistant lookups do not send Journal entries, Health data, heart rate, voice recaps, Collections media files, or History workout names and notes to Fighter. Account library sync is separate, as described above.

The service can only reply with words and with calls to a closed set of tools: the workout-editing tools and the one that reads those exercise logs. Those calls arrive as data the app checks against its own rules before anything happens, and the service cannot save anything: a workout reaches your library only after you read a review of that exact workout and choose Save. The assistant requires a signed-in native-app account, a server-issued inference scope, and available usage under that account's limit. It can be disabled server-side.

Anthropic processes your messages, drafts, the library items Fighter looks up, and exercise logs only to produce Fighter’s replies, as our service provider under its commercial API terms; it may not use them to train its models. Anthropic deletes API inputs and outputs within 30 days, except that content flagged for a usage-policy violation may be kept for up to 2 years. Anthropic stores API data at rest in the United States. Anthropic may run the model in any of its available regions. Fighting Form itself does not use your conversations to train a model. Conversations are stored in your account until you delete them or delete your account. We keep usage records linked to your account, with no message content (provider, model, token counts, cost, timing and request identifiers), normally for up to 90 days to apply usage limits and track costs, and longer only while a billing or usage-limit record is unresolved. Existing service backups follow their retention policy; deleting live records does not immediately remove backup copies. Unsaved drafts and links to saved workouts also use protected, account-scoped storage on your device. Deleting a conversation keeps saved workouts in your library.

Optional dictation uses on-device speech recognition: dictation turns your speech into text in the message field on your device, and that text is sent only when you choose Send. Microphone and Speech permissions are requested when you select dictation. Dictation audio never leaves your device.

Fighting Form has no voice conversation mode and sends no audio to any voice service.

Optional answer notifications store an installation identifier and Apple push token linked to your account. Notifications show a generic alert and carry conversation and answer identifiers, without message or workout text. Turn notifications off in Fighter settings or in system Settings. Account deletion erases conversation content, including any earlier voice transcripts and voice session records, and notification registrations.

Journal protection and device authentication

On iPhone and iPad, Journal entries, drafts, user-authored collection records, and app-owned media use complete file protection, so Fighting Form cannot read those protected files while the device is locked. On Mac, Journal and Collections content remains in Fighting Form’s sandbox and is subject to the Mac user account and file-system protections.

An optional Journal Lock asks the operating system to verify the device owner before showing private writing. iPhone and iPad may offer Face ID, Touch ID, or the device passcode. Mac may offer Touch ID, Apple Watch, or the Mac account password. Fighting Form receives only whether the operating system approved the request; it never receives, stores, or transmits biometric data or an account password. The lock preference remains on the device.

Journal Lock is a local access control, not cloud or end-to-end encryption. Fighting Form conceals journal content when it leaves the foreground and does not automatically disable an enabled lock when authentication is unavailable.

Camera, microphone, selected files, audio, and notifications

During an active workout, Fighting Form can play a bell, speak round and drill calls, mix with other audio, and provide haptics where the platform supports them.

Fighting Form requests microphone permission only after you choose Record in Voice recap or for a collection item, or select dictation; dictation stays on your device as described under Optional assistant, and the rest of this paragraph describes voice recaps. Recording works only while Fighting Form is in the foreground. You can record, pause, resume, review, title, attach, play back, and delete a recap. A system audio interruption pauses capture and Fighting Form never resumes recording automatically. Each recap is limited to 10 minutes and stored locally as a mono AAC .m4a file using app-owned storage; the audio file is not transmitted to know.sh LLC or a developer-operated backend. Its attachment metadata and any caption or description sync with the saved Journal entry. You can revoke microphone permission under Privacy & Security in iOS or iPadOS Settings or macOS System Settings.

Fighting Form requests camera permission only when you choose Record video to capture a demonstration for an exercise in your own Collections.

On iPhone and iPad, photo and video attachments use Apple’s system Photos picker, while Collections imports use the system file picker. Fighting Form receives only the items you explicitly select, does not request blanket access to your photo library, and does not retain ongoing access to a Collections source location after making its app-owned copy. On Mac, Journal and Collections import uses a system open panel and receives only files you explicitly select; export uses a system save panel and writes only to the destination you choose. App-owned media files remain in the sandbox and are not transmitted to know.sh LLC unless you turn on TV streaming for your recordings as described under Cast to TV.

If you explicitly opt in, Fighting Form schedules local notifications for relevant structured-workout transitions while the app is not visible. These workout notifications are created on your device; Fighting Form does not register for remote push notifications or send a device token to a server for workout notifications. Optional Fighter answer notifications use remote push notifications as described under Optional assistant. You can change notification access at any time in the platform’s system settings.

The iPhone and iPad app offers the separate optional Apple Health reading, workout sharing, and Watch capture choices described below. Fighting Form does not request location, contacts, or blanket photo-library access. The Mac app does not access Health and does not scan arbitrary files.

Cast to TV

Stream my recordings to TV is optional, off by default, and requires sign-in. While you are casting with this setting on, Fighting Form uploads your own demonstration videos from Collections or workout interval attachments for the current and next intervals to our private storage, linked to your account, so the TV can play them through short-lived signed links. This TV feature does not upload Journal media. Collections records and Journal text and metadata sync separately as described above.

We may also create a TV-compatible copy of each recording, which is stored and deleted along with it. Turning the setting off deletes these recordings and their copies from the server; deleting your account deletes them too. Incomplete uploads are removed after 24 hours.

Apple Health

Fighting Form offers an optional read-only Apple Health connection on iPhone and iPad. After you choose Connect Health, it requests only workout summaries with associated aggregate average/minimum/maximum heart rate, activity-specific distance, and active calories, plus body weight, complete paired blood-pressure observations, sleep intervals/stages, resting heart rate, heart-rate variability, and cardio fitness. The Mac app is outside this scope.

The local record preserves source attribution, workout activity and timing, provider-reported duration evidence, approved aggregate summaries, typed Body & Recovery readings, an internal Health object link, an opaque import cursor, minimal import-error facts, and any separate reflection you choose to add. Fighting Form does not import routes or location, raw sample series, workout events, clinical data, or another service’s account or class details.

Separately, you may enable workout sharing for your signed-in Fighting Form account to save new workouts recorded on this device to Apple Health. Changing accounts turns sharing and new Watch capture off. Syncing History from another device does not authorize export. Manually logged workouts are marked as entered by you, and paused time is excluded. Deleting local History does not delete Apple Health workouts. With paired Apple Watch capture enabled, the Watch records heart rate and measured active energy during an iPhone workout and saves its Health workout only after the workout is saved in Fighting Form. Discard saves no workout. Each workout has one Health writer, and retries reuse its identity to prevent duplicates.

Apple Watch exchanges bounded workout identity, timing, pause/resume commands, live aggregate readings and save status only with your paired iPhone through Apple's connectivity framework. Raw continuous sensor samples remain in HealthKit. For completed workouts with heart-rate capture, Fighting Form retains a derived 10-second display summary strictly on this device in protected storage to render the Woven Cadence pulse chronicle graph, display zone durations, and compute Fighting Form Effort points. This derived telemetry is excluded from cloud sync, backups, and developer servers, and is deleted when the workout is deleted. Individual maximum heart rate configuration (100...240 bpm) is explicitly confirmed by you and can be reset at any time. Protected local coordination and export retry state is excluded from backup. The native Mac app does not capture or export Health workouts.

Apple does not tell apps whether Health read access was denied. A completed system sheet means only that access was requested, and an empty import means no readable data is available—not that permission was granted or denied. Stopping import stops future reads while retaining existing local history. If a source workout disappears, Fighting Form marks its source as removed without silently deleting the local workout or your reflection; local deletion remains a separate action.

Health import stores and Watch heart-rate summaries are not uploaded to developer servers or sent to analytics, advertisers, or data brokers. If you save a Journal recap of an imported Health workout, its activity, source label, start and end times, and known durations sync with that entry to your account; Health identifiers, query anchors, raw samples, and metric series are not included in that recap. The complete Health workout and Body & Recovery stores, their SQLite sidecars, and recovery backups are excluded from device and iCloud backup. After a device restore, you reconnect and re-import; Journal recaps remain in their separate protected store. A personal archive you explicitly request includes only imported activity, interval, known durations, a human-readable source label, and your app-owned quick check-in. It strips Health aggregates, identifiers, anchors, source/device internals, links, refusals, and raw samples. Existing local timer and manual history remains in its current protected store, and Fighting Form merges the projections for display without writing one record to both.

First-party training content

The iPhone, iPad, and Mac apps ask Fighting Form’s server for the current content release and then download its publisher-authored immutable exercise, workout, demonstration, and pre-rendered speech objects over HTTPS using server-signed links valid for up to five minutes. When you are signed in, your release request carries your account authorization, so our server knows which account requested access to the current release. You can browse training content without creating an account by requesting temporary access to protected content. The app creates an installation security key, and our server assigns a random installation identifier. Signed-out authorization also sends a public key, signed proofs, a platform client identifier and short-lived security metadata. This access mechanism verifies possession of the installation key; it does not use Apple device attestation. Signing in uses your account’s normal access instead. Object downloads use the signed links, without forwarding your account or install token to the object host. Content requests never include Health data, Journal, workouts, History, searches, Collections, or imported media. When product analytics is enabled, content refresh events include the release number or an error code under the analytics identity described above.

We store the installation identifier, platform client, public-key fingerprint, security status, relevant timestamps and request counters. We do not link this installation record to your account. Our installation abuse controls store keyed address-derived counters rather than raw IP addresses; hosting providers also process ordinary network information. Active installation records expire 30 days after registration or the last successful token issuance. Blocked records expire 90 days after revocation. Our production operational-log tables are configured for seven-day retention. Expired installation records are removed asynchronously by scheduled cleanup. Current database backups are configured for seven-day retention; the separate migration archive expires on November 19, 2026.

The private key stays on your device. The private key, or its Secure Enclave handle, is stored in this device’s non-synchronizing Keychain and is usable after the device’s first unlock following restart. Reset application does not currently clear installation access credentials. If the installation marker is missing, the app discards leftover installation credentials before next requesting signed-out content access. Remaining server records expire on the schedules above.

Earlier versions downloaded training content from a public DigitalOcean Spaces origin. The apps carry no bundled training library. A valid cache of the last successful download keeps content available when a download fails; a first launch needs a successful download. A corrupt, unreadable, future-format, or different-build content cache is deleted and downloaded again. Downloaded content uses an operating-system-purgeable cache. Downloaded content is cached separately from your private records. Your own workouts and History live in your account on our server and are cached on device; custom collections and their drills, saved Journal entries, and goals also sync as account records. Their media files stay on device except for recordings you choose to stream to TV, as described above.

Retention and your controls

Completed account deletion keeps scrubbed deletion receipts for their retention period and a permanent marker that the account was deleted, so it can't be reopened or written to again. Pending cleanup records remain until cleanup completes; deleting live records does not immediately remove existing backup copies. Deleting an account removes those remote records; it does not erase retained device copies of collections, drills, journal entries, drafts, or media. Signing out clears the session without deleting the remote account or retained local data. The app explains both boundaries before confirmation.

Because the first-party content host receives publisher-authored manifest, demonstration, and pre-rendered speech object paths, it receives no cue text, written steps, Journal, workouts, History, local media, or Fighting Form account token.

Content downloads

Fighting Form downloads its exercise library, workout content, demonstration video and spoken audio from a content service we operate, so this material can be corrected and extended without waiting for an App Store update. These downloads are one-directional: the app requests release information using account authorization or signed-out installation authorization, then downloads publisher-authored files through signed links. These content requests send no workout, Journal entry, Health value, search, or person-authored text.

As with any internet request, our hosting provider may record ordinary server logs including your IP address and the file requested. We use these records only to deliver, secure, and keep the service reliable, not to build an advertising profile, and do not join them to the Fighting Form account profile.

Downloaded content is stored on your device and verified before use. If the service is unreachable the app keeps working from the content already on your device.

When you contact support

If you email support, know.sh LLC receives the contact details and message content you choose to provide. That information is used to answer your request, troubleshoot the issue, maintain an appropriate support record, and meet legal obligations. Do not send health records, passwords, or other sensitive information.

Support email is handled by the selected email provider and is retained only as reasonably needed for the request or as required by law. Depending on where you live, you may have rights to access, correct, delete, object to, or restrict the handling of this information. Make a request by emailing support@fightingform.tech; legal exceptions may apply.

These web pages

The Fighting Form privacy and support pages contain no advertising, analytics scripts, tracking pixels, forms, or Fighting Form-set cookies. We count requests to each page per day, without IP addresses or browser details, to see which pages are used. These script-free server counts use only an allowlisted page path, response status and referrer class, and are kept for 90 days. Separately, the hosting provider may process standard request information, such as an IP address, date and time, browser details, and requested page, to deliver and secure the site. know.sh LLC does not use that information to build advertising profiles.

Children

Fighting Form is not directed to children and is not enrolled in Apple’s Made for Kids program. We do not knowingly create or retain an optional account for a child where parental consent is required. A parent or guardian who believes a child supplied account information may request deletion using the contact information below.

Policy changes

If Fighting Form’s data practices change, this policy, the in-app disclosure, the privacy manifest, and the App Store privacy answers will be updated as appropriate. Material changes will be identified by a revised effective date.

Contact

Questions about this policy or a support communication can be sent to:

Publisher
know.sh LLC, an Illinois limited liability company
Email
support@fightingform.tech

Storage diagnostics

If workout storage is unavailable, Fighting Form automatically sends technical diagnostics to its first-party server: app and OS version, a random installation ID, protected-file names, sizes and integrity digests, and structural failure locations. No workout contents, Journal text, Health records, or credentials are included. Reports are limited, used only for troubleshooting, and retained for up to 90 days.