Privacy Policy
Last updated: October 14, 2026
Your project and coding tool
Impeccable provides design instructions and tools for your AI coding agent. Its project checks run locally and return findings to that agent. They do not upload your project files or detection results to Impeccable’s servers.
Your coding tool may send prompts, files, screenshots, and other context to its AI provider. That processing depends on the tool, your settings, and the provider’s terms. The sections below describe Impeccable’s own network requests and website services.
Version checks and downloads
Impeccable can check for a newer skill version at impeccable.style/api/version. The check sends no project content and normally runs at most once a day, using a local cache. Set IMPECCABLE_NO_UPDATE_CHECK=1 to turn it off.
Installing or updating Impeccable downloads software from the services used by your installation method, such as npm or GitHub. Website bundle downloads redirect to GitHub Releases. Those services receive the download request and handle it under their own policies.
Visual worlds and previews
When Impeccable requests design options from impeccable.style/api/roll, it sends:
- A roll key and round number, used to reproduce a selection and request another round. The key is randomly generated by default.
- Scope and optional filters, describing the kind of design work: page purpose, how much of the interface is being designed, and target platform. The API also accepts a minimum catalog rating.
These requests do not include your project name, file paths, prompt, or brief. A configured local catalog can supply the options without this API request. Displaying catalog previews can separately request their images from Impeccable’s servers.
Optional choice reporting
For a round supplied by our API, Impeccable can report which kind of card was chosen, its position on the page, and, when a catalog world won, its catalog ID. If the user asks for a new set of options instead of choosing, it can report that too. The report also carries the roll key, round number, catalog version, scope, page mode, whether the user asked for safer or bolder options, and whether the choice came from a click in the local picker or from your agent. It never sends the names or descriptions of directions created for your project. If one arrives anyway, our server discards it.
Set IMPECCABLE_NO_TELEMETRY=1 or DO_NOT_TRACK=1 to disable this choice report. These settings do not disable requests for catalog options or preview images.
What our servers keep from rolls and choices
Our roll and choice handlers keep one record per event to understand which options are shown and which are chosen. We store them in a Cloudflare D1 database and in Cloudflare Analytics Engine, and archive them in Cloudflare R2. A record holds the catalog IDs dealt or chosen, the selection details listed above, the Impeccable version, and a broad client type such as a command-line tool or browser.
The roll key is never stored. We keep a keyed hash of it instead, which links the rounds of one roll to the choice that ended it but cannot be turned back into the key. Records contain no IP address, project content, or user or device ID. Cloudflare separately processes request information to deliver the service, described below.
The live set of worlds on our homepage uses the same API. Those requests are recorded the same way and marked as website traffic, so they are never counted as choices made in Impeccable.
We keep these records without a fixed deletion date, so we can compare how choices change as the catalog grows. Because none of them names a person or a device, we cannot find or delete the records of one user on request.
Image generation
When your coding tool generates images through its own image tool, that provider’s terms and data settings apply.
If you run Impeccable’s image generator with OPENAI_API_KEY, it sends the image prompt to OpenAI, billed to that key. Reference images supplied to the command are uploaded too. Prompts and references can contain details of your project. Removing the key disables this API route; it does not disable image generation built into your coding tool. See OpenAI’s API data controls.
Live Mode and the direction picker
Live Mode and the direction picker use local servers to exchange selections, annotations, and other working state with your agent. Their controls communicate over localhost. Live Mode can save screenshots and annotations in your project for the agent to read.
The local connection does not upload that working state to Impeccable. Your agent’s processing and any remote assets loaded by the page remain subject to the relevant provider’s policies.
Website services and browser storage
Our homepage uses Google Analytics to measure visits and interactions. It can collect page and referrer information, device and browser details, approximate location, and cookie identifiers. Google Analytics uses cookies to distinguish visitors and sessions. See Google’s explanation of Analytics cookies and data collection.
Every page on impeccable.style uses PostHog to understand how the site is used. It records page views, clicks, the commands you copy, which install method you pick, and JavaScript errors, along with page and referrer information, device and browser details, and approximate location. It stores a random identifier in a cookie and local storage to link visits from the same browser. These requests go through impeccable.style/relay, which forwards them to PostHog with your IP address so it can estimate location. See PostHog’s privacy policy.
The site also loads fonts from Google Fonts. Your browser sends Google the requests needed to load those fonts. The command-syntax switch saves your preference in your browser’s local storage.
Cloudflare hosts our websites, API, and catalog images. It processes request information, including IP addresses, to deliver and protect these services. Cloudflare’s privacy policy describes its handling of that information.
Impeccable Pro waitlist
When you join the waitlist, we store your email address and signup time in Cloudflare D1. We also store the signup source, referrer, country, and a hash of your IP address when available. The hash helps limit repeated signups; the waitlist table does not store the raw IP address.
We use your email to confirm your signup and notify you when Pro is ready. Confirmation emails are sent through Cloudflare’s email service. The source and referrer tell us where signups came from.
You can unsubscribe using the link in your email. Confirming the request deletes your signup record from the waitlist database. If the email provides a reply-based unsubscribe option, follow those instructions instead.
Chrome extension
The Impeccable extension checks pages inside your browser. Page snapshots and detection results are processed locally, including in an offscreen extension document. The detector does not upload them to an external server.
The extension saves rule and display preferences with chrome.storage.sync. Chrome can sync those settings across browsers signed in to your Google account when sync is enabled. See Chrome’s storage documentation.
The extension requests these permissions:
- activeTab and scripting: inspect the page you choose.
- storage: save your preferences.
- webNavigation: respond to page navigation for automatic scanning.
- offscreen: run the detector’s WebAssembly code in an extension document.
- Access to all URLs: support inspection on the websites you choose.
GitHub and contact
Our source code and public issue discussions are hosted on GitHub and covered by GitHub’s privacy policy.
For questions about this policy or about your data, email [email protected]. You can also reach @pbakaus or open an issue in the Impeccable repository; issues are public, so use email for anything private.