Essential
Keep the docs working: theme choice, consent state, snippet copy buttons.
- Theme toggle
- Banner state
- Search recents
TestML is an open-source dev tool. The site needs a few cookies to work and a few more to count visits. This page lists every one of them. It also shows you how to switch any of them off.
Every cookie on our site falls into one of three groups. Essential ones keep the docs working. Functional ones save small choices. Analytics ones count anonymous visits and stay off until you say yes.
Keep the docs working: theme choice, consent state, snippet copy buttons.
Remember small things: your locale, your preferred code tab, your sidebar width.
Count anonymous visits to spot which guides need work. Off until you opt in.
We model this page on an RFC. Each clause is short. Each clause has a topic. Skim them or read them in order. Any term that needs a definition gets one in clause 01.
A cookie is a tiny text file. Your browser keeps it on disk. The next time you load testml.org, your browser sends it back to us. We use this to keep simple state. Things like your theme, your locale, and whether you have seen this banner. Local storage works the same way. The browser keeps it. We read it.
TestML is an open-source project. We need to know which docs pages help and which ones do not. We use a tiny set of counters for that. We also save a few preferences so the site does not feel forgetful. We never use cookies to follow you across other sites. We never sell the data. There is no ad network on this domain.
The table on this page lists every cookie our site can place. The list is short by design. Each row tells you the name, the kind, the source, and how long the cookie lives. If you find a cookie not on this list, email us. We treat that as a bug.
Some pages embed videos or live code playgrounds. Those iframes come from YouTube, CodeSandbox, or GitHub. They may set their own cookies once the iframe loads. We do not control those cookies. Each provider has its own policy. We link to those policies from the docs.
By default we ship a privacy-first counter that does not set cookies. If you click Accept on the banner, we may also load Google Analytics. That is the only step that adds tracking cookies. You can change your mind later. Open this page and use the controls below.
Every modern browser lets you block cookies. You can block them for one site or for all sites. You can also wipe the ones we have already set. The controls live in the privacy section of your browser settings. Links below jump straight to the docs for the major browsers.
We update this page when we add or remove a cookie. The date at the top reflects the last change. We will not add a new tracker without listing it here first. If a change is large, we will post a note on the blog.
This is the source of truth. If a cookie is not in this table, our site did not set it. Email us if you spot one we have missed. We treat that report as a bug, not a feature.
| Name | Kind | Source | Lifetime | Purpose |
|---|---|---|---|---|
| tml_theme | First-party | 1 year | Stores your dark or light mode choice for the docs. | |
| tml_consent | First-party | 12 months | Records your answer to this very banner. Without it, we would ask again every visit. | |
| tml_session | First-party | Session only | Holds short-lived state for the docs search bar and copy-snippet buttons. | |
| _ga / _ga_* | Third-party (Google) | Up to 2 years | Counts unique visits to docs pages. Loaded only if you opt in to analytics. | |
| plausible_ignore | First-party | Local storage | Flag for our team to skip our own visits in page-view counts. |
Every modern browser ships a clean cookie panel. You can block our cookies, wipe them, or scope a rule to testml.org. The shortcut for each browser is listed below. Paste it into the address bar.
chrome://settings/cookiesabout:preferences#privacyPreferences → Privacyedge://settings/content/cookiesbrave://settings/shieldsArc → Settings → PrivacyWe keep this register short on purpose. If you see a cookie on testml.org that is not here, write to us. We will fix the gap or remove the script. That is the deal we make with every visitor.