TabForge Privacy Policy

Effective date: October 18, 2026

TabForge: Code Keyboard is a keyboard extension and companion app for programming, scripting, terminals, and remote desktops on iPhone and iPad. This policy explains the information TabForge uses while you type, what it stores locally, and how its optional features work.

TabForge contains no analytics, advertising, account system, application networking service, or automatic diagnostic uploader. There is no TabForge server. The keyboard does not transmit keystrokes, surrounding text, snippets, swipe gestures, or spelling requests to a TabForge service.

This policy covers the app and keyboard extension. It does not describe this website, the apps you type into, terminal or remote-desktop services, Apple system features, external websites, or device backup providers, which have their own data practices.

Typing Context and Information Held in Memory

iOS and the host app may expose limited text and field information to the keyboard through Apple's text document interface. TabForge uses that context on the device for editing, indentation, completions, cursor movement, and optional spelling correction. Host apps can limit or withhold context. TabForge does not build a keystroke history or save the host document.

The optional, experimental swipe recognizer uses an included coding vocabulary. Gesture traces and alternatives are temporary; they are not uploaded or used to train a model. Swipe recognition is off by default.

Optional English prose correction uses Apple's on-device spelling service. When enabled, it can request Apple's supplementary keyboard lexicon, which may include names and text shortcuts. A bounded set is held in memory to avoid correcting those words; TabForge does not save or log the lexicon.

Correction state, spelling resources, swipe traces, repeat tasks, and held-key state are released when the keyboard is dismissed or receives a memory warning. Normal operating-system memory management still applies; this is not a guarantee of secure memory erasure.

Information Saved on Your Device

TabForge deliberately saves the following information in local preferences storage:

  • Keyboard preferences: layout, profile, theme, and editing choices.
  • Custom snippets: text you choose to save for insertion later.
  • Playground draft: the companion app's editor content, so it can be restored between launches.

The saved playground draft is separate from the keyboard's temporary typing context. Text entered or inserted into the playground is saved, including a voice transcript after you choose to insert it.

These records use the iOS application sandbox and the device's normal storage protections. TabForge does not add separate encryption or password protection to drafts, snippets, or preferences. Device backups and operating-system retention rules may apply.

Managing and Deleting Local Data

Reset keyboard preferences resets keyboard preferences and custom snippets. It does not clear the playground draft; delete or replace the playground text separately.

Disabling Full Access stops the extension's use of shared preferences. It does not itself erase existing local or App Group records. Removing the app and keyboard removes their installed containers subject to iOS behavior; backups may retain earlier data.

Full Access Is Optional

Typing and the keyboard's quick settings work without Full Access. With Full Access enabled, the companion app and keyboard extension can share preferences and snippets through their on-device App Group. Without it, the extension keeps its own local quick preferences.

iOS's Full Access permission allows broader capabilities than this sharing. TabForge does not use it to add a network connection, collect typing, or record audio. Granting Full Access does not enable a TabForge cloud service.

Voice Input, Dictation, and Writing Tools

The keyboard extension does not record microphone audio. System dictation remains available where iOS provides it, and you can switch to the Apple keyboard.

The companion app's Voice to code feature starts only after a user action and requests microphone and Speech Recognition permissions. It requires on-device English recognition. If that capability or language support is unavailable, TabForge does not fall back to cloud recognition.

Audio buffers are passed to Apple's on-device Speech service; TabForge does not write recordings to a file. The transcript remains in the voice view until you dismiss it or insert it into the saved playground draft. Recording is cancelled when the view is dismissed, the app enters the background, or a relevant audio interruption occurs.

Apple controls system Dictation and Writing Tools. Their availability and data handling depend on Apple's services and your system settings, rather than TabForge's on-device voice implementation.

Other Apps, Sharing, and External Links

When you use the keyboard extension, TabForge inserts text into the selected host app. That app may store or transmit it, including to a remote terminal or desktop. TabForge cannot control the recipient's processing. iOS uses the system keyboard in secure/password and phone fields, and apps may decline third-party keyboards.

The playground's Share code action sends the current draft to the system share sheet only when you choose it. The destination you select receives the text and handles it under its own policies.

Opening a repository or other external link is a user-initiated action handled by the system or browser. The destination receives an ordinary web request under its own privacy policy. TabForge does not attach typing context to these links. Licenses and notices are bundled and read locally.

Diagnostics and Reports

TabForge contains no typed-text logging or automatic diagnostic uploader. Apple may provide crash reports, TestFlight feedback, and device diagnostics according to your system and testing choices. The project does not intentionally add document text to those reports.

If you choose to submit a bug report, any screenshots, logs, or other information you include are shared by your action. For a suspected vulnerability, follow the TabForge security policy and avoid including private typing in a public issue.

Availability and Policy Updates

TabForge is provided as-is, without a guarantee of availability, compatibility, data recovery, or continued support.

This policy may change as the app's permissions, storage, dependencies, or data handling change. Updates will appear on this page with a revised effective date. The app's privacy and data-handling documentation and public source code provide implementation details.

Contact

For questions about this policy, contact jeremy@jeremycollins.net.