Privacy Policy
Last updated 1 November 2026
This policy explains what personal data Termlux collects, why, who helps us process it, and the choices and rights you have. The short version: your code, terminal output and agent conversations stay on your computer; we keep what we need to run your account, licence and sync.
1. Who we are
Termlux (the desktop app, the website at termlux.com and the Termlux account service) is run by EliteTech Innovations s. r. o., Veterná 348/21, 900 44 Tomášov, Slovakia, Company ID (IČO) 55951945, tax ID (DIČ) 2122141582, entered in the Commercial Register of the Municipal Court Bratislava III, section Sro, insert 174870/B (“we”, “us”). We are the controller of the personal data described here.
Questions about privacy, or a request about your data: info@etiinnovations.com.
2. What Termlux never sees
Termlux is a terminal. What you do in it stays on your computer. We do not receive, store or analyse:
- your code, files, or anything shown or typed in a terminal (including scrollback);
- your conversations with Claude Code, Codex, Cursor, Aider or any other agent (those tools connect directly to their own providers, not through us);
- secrets: workspace environment variables, SSH keys and host passwords, and your agent logins are kept on your device (in the macOS Keychain where possible) and never synced.
The app contains no analytics, advertising or tracking tools. We count how many people use it from the licence check it already makes (see “Your devices and licence” below). This website counts its visits without cookies and without identifying you (see “Website visits”), and uses no advertising or tracking either.
3. Data we collect and why
Your account
Email address, first and last name, a hash of your password (we never store the password itself), and account status such as when you last signed in. If you sign in with Google or GitHub, we receive your email, name, account ID and profile picture from them. If you sign in with an emailed code, we keep the code only in hashed form and only for 10 minutes. Why: to provide your account (contract).
Sign-in and security records
For each signed-in session: IP address, browser or app identifier (user agent) and times. We also count failed sign-ins to lock an account temporarily after repeated failures, and rate-limit requests per IP address. Why: to keep accounts secure and stop abuse (legitimate interests).
Your devices and licence
When you activate a computer, the app sends a random installation ID (generated by the app, not derived from your hardware), the platform (macOS, Windows or Linux) and the app version, plus when the device was last seen. We don't collect your computer's name, serial number or hardware identifiers. With your plan and its status, this lets us apply your plan's device limit. Why: licensing (contract).
The app checks your licence when it starts and every six hours while it's open. For each check, and each time it syncs, we note the day; for a check, also the country it came from (see “Countries”). That way we can count how many people use Termlux each day and week, whether they come back after signing up, and which app versions are in use. It tells us nothing about what you do in the app. Why: to understand whether Termlux is useful to the people who try it, and to improve it (legitimate interests).
Sync between your computers
Sync keeps what you choose the same on every computer signed in to your account. Only your own computers receive it, not other people, even ones you work with, unless you share a task board with them (below).
- Workspaces you share (off by default, turned on per workspace): name, colour, group, chosen agent, start folder path, layout and which files a new worktree copies. Termlux before 0.3.6 also sent the auto-start command and the git worktree's repository path and branch.
- Task boards of shared workspaces, unless you turn a board's sync off: each task's number, title, description, type, status, priority, who created it and its history. Anything you or an agent writes into a task is uploaded with it.
- SSH hosts (on by default; you can turn it off for a computer, or mark a host “Only on this Mac”): name, address, port, user name, group, colour, tags, sign-in method, jump host, SSH options, port-forward rules, and which key the host uses (named by its file name and fingerprint, never the key itself). Termlux before 0.3.6 also sent the command run on connect and the agent and X11 forwarding switches.
Folder paths can contain your computer username (for example /Users/you/project). Passwords, SSH keys and environment variables are never uploaded, and the service also strips fields that look like passwords, keys or tokens. Synced data is stored unencrypted on our servers. Why: to provide sync (contract).
Task boards you share with people
If you share a task board with people, its tasks (title, description, type, status, priority, history and who made each change) go to everyone on the board, and stay on our servers while it's shared. Everyone on a board sees the others' names and email addresses. To invite someone we keep the address you typed and send them one email; an unanswered invitation runs out after 14 days. When you leave a board, or its owner stops sharing it, your copy of the tasks stays on your computer. Why: to provide the shared board you asked for (contract).
Payments
Paddle, our reseller and merchant of record, sells the paid plans and takes the payment: you give your card and billing address to Paddle, never to us, and Paddle's own privacy notice covers them. From Paddle we receive and keep your Paddle customer ID; your subscription's plan, price, billing period, number of people, status and renewal or end date; and each payment's ID, status, currency, total, VAT, invoice number and date. Why: to give you the plan you paid for (contract) and to keep the records accounting law requires (legal obligation).
Emails
We send service emails (sign-in codes, password resets, account notices) through Resend, and keep a record of each email's recipient, type and delivery status. Why: to run the service (contract) and diagnose delivery problems (legitimate interests). We don't send marketing emails.
Server logs and error reports
Our servers keep technical request logs (including IP address, time, the address that was requested and details needed to diagnose errors) for up to 30 days. Errors are reported to Sentry, an error-monitoring service. When a page of this website fails in your browser, that error is reported to Sentry too: what failed, the page's address without its query and your browser and system versions, with email addresses masked and no IP address stored. Why: to run, secure and fix the service (legitimate interests).
Website visits
This website counts its page views with Vercel Web Analytics, which sets no cookies and stores nothing on your device. For each page you open it records the page's address without its query, the site you came from, your approximate location (country and city) and your browser, operating system and kind of device. Your IP address isn't stored: visits are told apart by a hash that is discarded after 24 hours, so the counts can't tell us who you are or follow you to other sites. Why: to see which pages are read and improve the site (legitimate interests).
Our own servers also count each page of this site you open: the page's address without its query, whether your visit began on it, the campaign tags and site the visit came from (below) and the country (see “Countries”). No IP address, browser details, device id or cookie is kept with it, so page views can't be linked to each other or to you. If your browser sends Global Privacy Control or Do Not Track, we don't count your page views. Why: to see which posts and pages bring people (legitimate interests).
When a link that brought you here carries campaign tags (such as utm_source=reddit), this browser tab remembers those tags, the site you came from and the page you arrived on, until you close the tab. If you then download the app, we count one download under those tags. If you make an account here, they're kept with it. If you make one in the app, it may ask how you heard about Termlux; answering is optional. None of this identifies you: no IP address, device id or cookie is involved. Why: to learn which posts and ads bring people who find Termlux useful (legitimate interests).
Countries
From the IP address a request comes from, our servers look up its country in DB-IP's country database, which we keep on our own servers: the address isn't sent anywhere for this. We keep only the country, never the address, with a page view or download we count, with a new account (the country it was made from) and with an activated computer (where it last checked in). Why: to know where Termlux is used (legitimate interests). IP geolocation by DB-IP.
Support
If you write to us, we keep the conversation for as long as needed to help you. Why: legitimate interests (answering you).
Problem reports
When you report a problem or send an idea (on this website or in the app), we keep your message and your email address; from the website, the page you sent it from; from the app, its version and your macOS version; and, if you're signed in, which account sent it. Reports are stored on our servers and read only by the Termlux team, to fix problems and to answer you. Why: legitimate interests (fixing what's broken and answering you).
4. Connections the app makes
Besides the Termlux account service, the desktop app connects to:
- Our download server (dl.termlux.com) to check for and download updates. Like any web request, this reveals your IP address and the app version.
- Our relay (part of the Termlux account service), only if you use remote sessions (seeing and controlling one of your computers from another). It's off until you turn it on, on each computer, and each computer you connect must be approved on the other one with a matching code. While on, the app keeps a connection to the relay, which learns which of your devices are connected and passes messages between them. The messages (your terminals, agent chats and what you type) are end-to-end encrypted by the two computers: the relay can't read or change them, and we don't store them. With your account we keep each computer's public key (not a secret), so the relay can check that a connection really comes from that computer. Why: to provide the feature you turned on (contract), and to keep others out of it (legitimate interest).
- npm's package registry (registry.npmjs.org), at most every six hours while you use Claude chats, to see whether a newer Claude Code is out. Only the version number is asked for; like any web request, it reveals your IP address.
- ntfy (ntfy.sh, or a server you choose), only if you turn on phone notifications. Notification text is sent there.
- Sentry, an error-monitoring service, only if you turn on crash reports (when setting up the app, or in its Settings). When something in the app breaks, it sends the error, where in the app's code it happened, the app and macOS versions and a random ID for that launch, never your terminals, chats, files or servers. Your user name in folder paths, email addresses and your computer's name are removed before it's sent. Why: your consent, which you can withdraw in the app's Settings at any time.
- The agents and tools you run in Termlux (Claude Code, Codex, git, ssh…) make their own connections under their own terms and privacy policies.
5. Cookies and local storage
On this website, signing in sets one cookie (auth-token, up to 7 days) and keeps a sign-in token in your browser's local storage. Both are needed for the dashboard to work. If you pick light or dark mode, that choice is kept in local storage too. A link's campaign tags are kept in this tab's session storage until you close it (see “Website visits”). Counting visits sets no cookies, and we use no advertising or third-party cookies, so there is nothing to opt out of and no cookie banner.
When you buy a plan, Paddle's checkout opens on this page and runs under Paddle's own privacy and cookie notice.
The desktop app keeps its settings, workspaces and terminal scrollback in files on your computer, and your sign-in in the macOS Keychain (on other systems, in a protected file in the app's data folder).
6. Who processes data for us
We share personal data only with service providers that help us run Termlux:
| Provider | Purpose |
|---|---|
| Our own servers (Slovakia, in the European Union) | Account service, database, downloads |
| Vercel | Hosting this website, and counting its visits without cookies |
| Resend | Sending service emails |
| Sentry | Error monitoring, and the app's crash reports if you turn them on (stored in the EU) |
| Paddle | Selling the paid plans, as merchant of record: it takes the payment, card and billing address directly and is responsible for that data. We receive your plan, its status and your invoices' totals |
| Google, GitHub | Only if you choose to sign in with them |
We don't sell personal data or share it for advertising. We may disclose data when the law requires it.
Some providers may process data outside the European Economic Area, including in the United States. Where they do, the transfer is covered by the European Commission's Standard Contractual Clauses or the EU–US Data Privacy Framework.
7. How long we keep data
- Account, device, licence and sync data: for as long as you have an account.
- Sign-in sessions: they expire after 7 days of inactivity.
- Server logs: up to 30 days.
- The days a computer checked its licence, and the page views counted on our servers: 400 days.
- Error and crash reports: up to 90 days.
- Payment records (each payment's ID, total, VAT, invoice number and date): 10 years, as Slovak accounting law requires. When you delete your account, they are no longer linked to you.
- When you delete your account, we delete or irreversibly anonymise your personal data within 30 days, except records we must keep by law.
8. Your rights
Under the GDPR you can ask us to give you a copy of your data, correct it, delete it, restrict or object to how we use it, or send it to you in a portable format. Email info@etiinnovations.com from the address on your account; we answer within one month.
You need an email address to have an account; everything else is optional unless a feature you choose needs it. We don't make decisions about you by automated means alone.
You can also complain to a data protection authority, where you live or work, or ours: the Office for Personal Data Protection of the Slovak Republic (dataprotection.gov.sk).
9. Security
Connections to our servers are encrypted (HTTPS). Passwords are stored only as salted hashes. On your computer, your Termlux sign-in and saved SSH passwords are kept in the macOS Keychain, and each workspace keeps its own Claude login apart from the others. No system is perfectly secure; if a breach affects your data, we will tell you as the law requires.
10. Children
Termlux is not meant for anyone under 16, and we don't knowingly collect their data.
11. Changes to this policy
When we change how we handle data, we update this page and its date. If a change matters, we tell you by email or in the app before it applies.
12. Contact
EliteTech Innovations s. r. o., Veterná 348/21, 900 44 Tomášov, Slovakia. Privacy: info@etiinnovations.com. Anything else: info@etiinnovations.com. See also our Terms of Service.