The short version: Your scripts, workflows, and everything you type stay on your Mac — always. The App does send anonymous usage analytics — enough to tell us it is being used, which versions are out there, and whether people reach the upgrade screen. They carry no identifier of any kind — no account, no device ID, nothing that persists between launches — so they cannot be traced back to you, and we could not single you out even if asked. It contacts external services in three ways — to verify your license key, to check for updates, and to send that usage data. There is no advertising and nothing is sold. This website is separate: it uses cookieless visitor analytics that identify nobody, switched off entirely for EU visitors — see This Website. Exactly what the analytics contain is set out under Usage Analytics in the App.
Typestream is made by Bot in Space LLC. We are responsible for the data described in this policy, and we are the people to contact about it.
We aim to meet the standards set by data protection law wherever you live, including in Europe and the United Kingdom. The sections below explain what we handle, why, how long we keep it, and what you can ask us to do about it.
Typestream ("the App") is a macOS application that simulates human typing by replaying user-authored scripts via low-level keyboard event simulation. This Privacy Policy explains what data the App and this website do and do not collect, and how they operate with respect to your privacy.
We are committed to your privacy. The App works locally and requires no account. It contacts external services in only three limited, non-content ways — license verification, update checks, and anonymous usage analytics — each described below. It never transmits your scripts or the text you type.
Typestream does not collect, store, or transmit:
The limited data the App does send — your license key and device identifier for verification, update checks, and three anonymous events — is described in the sections below.
All data created within Typestream — including your workflows, step configurations, and preferences — is stored locally on your Mac using standard macOS storage mechanisms (UserDefaults for preferences, and workflow files saved to locations you choose). Your license key is stored securely in the macOS Keychain.
This data never leaves your device and is not accessible to us or any third party.
Typestream requests access to macOS Accessibility APIs solely to simulate keyboard events in other applications — this is the core mechanism that makes the App work. This permission:
You can revoke this permission at any time in System Settings → Privacy & Security → Accessibility. Revoking it will prevent the App from typing in other applications.
The App sends anonymous usage analytics through Aptabase, an open-source, privacy-focused analytics service for desktop apps. We use it to know whether people are actually using Typestream, which versions are in circulation, and whether the upgrade screen is being reached. (This section is about the App. The website is covered separately under This Website.)
It never sends your scripts, the text you type, or anything about the applications you type into. Aptabase's servers see the IP address of the request, use it to derive a rough country, and then discard it without storing it.
Nothing in this identifies you, and that is a property of the design, not a promise. There is no account, no email, no device identifier, and no persistent ID of any kind. Nothing identifying is stored on your Mac — no cookie, no analytics file, no identifier. The only thing tying two events together is a session marker held in memory that is discarded when the App quits, so even we cannot tell whether two launches came from the same person. We do not sell this data, share it for advertising, or use it to build a profile.
Aptabase handles this data on our behalf, on the terms of its Privacy Policy, which sets out how long it retains what it receives.
There is no switch for this in the App. We would rather tell you that plainly than imply a control that does not exist. Because these events carry nothing that points to a person, there is no individual record for us to find, show you, or delete — but if you would prefer not to send them at all, write to [email protected] and we will tell you how to disable them on your machine.
If you purchase Typestream Pro, the App contacts our licensing provider, Lemon Squeezy, to activate and periodically verify your license key. To manage the number of devices tied to your license, the App sends a per-device hardware identifier as the activation's instance name, along with your license key. This is your Mac's platform UUID, or — on a Mac that does not report one — a random identifier generated once and kept on your Mac so that the same machine is not counted twice.
This identifier is retained only for as long as the activation is live. It is deleted when the device is deactivated, or when your license ends. If you never enter a license key, no license data is transmitted.
Lemon Squeezy is the seller of record for your purchase. Your order, payment, and invoice details are held by them under their own Privacy Policy, on their own terms rather than ours — and they are required by tax law to keep invoice records for a number of years, which is not something we can shorten or delete on request. See How Long We Keep Things below.
Typestream checks for new versions using Sparkle, a widely used open-source update framework for macOS. The App requests an update feed from our own server; like any web request, this includes your IP address, and the request identifies which version of Typestream and of Sparkle is asking. By default this happens about once an hour while the App is running.
Like any web request, these produce ordinary server logs, which Cloudflare keeps for us for a short period. Nothing is added to the request to track you, and nothing about the update check is stored on your Mac.
If you would rather not send these requests at all, you can turn off automatic update checks in Settings → General → Updates. You will then need to check for new versions yourself, so we'd encourage leaving them on for security fixes — but the choice is yours.
This website (typestream.app) is a static site hosted on Cloudflare Pages. It sets no cookies and runs no advertising or cross-site tracking scripts.
All typefaces are self-hosted and served from our own domain, so viewing this site sends no request to Google Fonts or any other third-party host. Two things involve your data when you visit:
If you are visiting from the EU, this is switched off entirely. We have configured Cloudflare to exclude European visitors, so the measurement script is not added to the pages you receive and no analytics data about your visit is collected at all. For everyone else, the section below explains what we do with it.
Visiting the /buy page redirects you to a checkout hosted by Lemon Squeezy, where their privacy policy and cookies apply.
Typestream does not integrate with any advertising or cross-site tracking services, and does not sell or share your data. Where a provider handles data on our behalf, we have an agreement in place requiring them to use it only for what we've asked and to keep it secure. The external services involved are:
We only handle data where we have a clear reason to, and we think it's fair to tell you what that reason is in each case:
We keep data only as long as it's needed for the reason it was collected:
Everything you create in the App — your workflows, steps, and preferences — is stored only on your Mac. We never receive it, so how long it sticks around is entirely up to you.
We are a United States company, and the providers we rely on operate internationally. Cloudflare serves this website and our update feed from data centres around the world, including inside Europe. Lemon Squeezy handles purchases and licensing in the United States. Aptabase receives the App's usage analytics on servers in the United States.
Where data belonging to people in Europe or the UK reaches any of them, it is covered by the contractual protections for international transfers that each provider includes in its standard terms. If you'd like the details for a particular provider, email [email protected] and we'll point you to them.
Some of these you can act on yourself, without asking us:
Beyond that there is not much left for us to hold. With no account, usage analytics that carry no identifier, and website analytics that identify nobody, the only record connected to you is your license — and even that sits with Lemon Squeezy rather than with us. Where we do hold something, you can ask us to show it to you, correct it, delete it, send you a copy, or stop using it for a particular purpose. Email [email protected] and we'll reply within a month at the outside. There's no charge.
One honest caveat: most of what reaches us can't be traced back to a person at all, so we may need your license key before we can tell which data is yours. For the usage analytics this is not a limitation we can work around — those events contain nothing that points to anyone, so there is genuinely no way for us, or for anyone else, to pick your data out of them.
If you think we've handled your data badly, we'd much rather you told us first so we can put it right. You also have the right to complain to the data protection authority in your country, and you can do that whether or not you come to us.
Typestream is not directed at children, and we do not knowingly collect personal information from anyone under 16 — or under the lower age limit set by your country, where one applies. Since the App requires no account and collects no directly identifying data from anyone, this holds universally.
We may update this Privacy Policy from time to time. Any changes will be posted on this page with an updated effective date. If we make a material change to what we collect or why, we will notify you in the App before the change takes effect, and where the change requires your consent we will ask for it.
If you have any questions about this Privacy Policy or how Typestream handles data, please don't hesitate to reach out.
Visit our Support page →