Privacy Policy

Last updated: July 21, 2026

What Impeccable is

Impeccable is an open-source collection of agent skills (text files) that run locally in your AI coding tool. Your project files, prompts, page content, and detection results are never sent to Impeccable.

The skill makes exactly three requests to Impeccable's own servers, all listed below: a version check, a request for a set of visual worlds when you start new design work, and an optional note of which one you chose. Each is best-effort, silent on failure, and separately disableable. A fourth request goes to OpenAI rather than to us, and only if you have configured a key for it.

Skill version check

When an agent loads the Impeccable skill, scripts/context.mjs may make a best-effort GET request to https://impeccable.style/api/version at most once per day to check whether a newer skill version is available. The request sends no project files, prompts, page content, detection results, or personal information. It is silent on failure and can be disabled by setting IMPECCABLE_NO_UPDATE_CHECK=1.

The world roll

When you start new design work, Impeccable asks our server for a set of candidate visual worlds to weigh against the directions it derives from your product. That is a GET request to https://impeccable.style/api/roll carrying four values and nothing else:

No project name, file path, prompt, brief, or design content is sent. The request times out quickly, and on any failure the skill falls back to a local roll that needs no network at all, so the design work continues either way.

Which world you chose

If a world we dealt becomes the direction you build, the skill sends one POST to https://impeccable.style/api/chosen noting the identifier of that world, the roll key, the scope, and the mode. It tells us which worlds in our catalog are actually worth building with. It carries nothing about your project and no identifier for you or your machine, and the server answers the same way whether or not it recorded anything.

Set either IMPECCABLE_NO_TELEMETRY=1 or the standard DO_NOT_TRACK=1 to switch it off. The skill only ever sends this for a roll our server dealt; a roll served from a local catalog never sends one.

Both the roll and the choice are recorded as counts in Cloudflare's analytics, with no request bodies retained and nothing that identifies a sender. Like any web request, they reach Cloudflare's edge, which sees the connecting IP address in order to answer; we do not store it or attach it to these records.

Image generation, if you enable it

Impeccable can render a design direction as a picture before it builds it. Where your coding tool has its own image generation, that stays inside your tool and its own privacy policy governs it.

If instead you set OPENAI_API_KEY, scripts/generate-image.mjs sends a text description of the design direction to https://api.openai.com/v1/images/generations, billed to your key. That description is written for the purpose and does not include your source files, but it does describe the work, so it is content leaving your machine to a third party. It happens only when a key is set, the skill states the cost before the first image, and OpenAI's privacy policy governs what they receive. Unset the key and nothing is sent.

Website analytics

The Impeccable website (impeccable.style) uses Google Analytics to understand traffic patterns (page views, referrers, country). No personal information is collected beyond what Google Analytics provides by default. No cookies are used for advertising.

Downloads

When you download a skill bundle from the website, we log the download event (which bundle, timestamp) for usage statistics. No personal information is attached to these logs.

Coding-agent plugins

When installed as a plugin for ChatGPT, Codex, or Claude Code, Impeccable runs within the local coding-agent session. The bundled design hook inspects UI files after edits and reports findings back to that local session. No project content or detection results are sent to Impeccable's servers. The host application's privacy policy governs the application itself.

Local servers

Two features run a small HTTP server on your own machine, and a browser page talks to it. Live Mode uses one so the picker in your browser can reach the agent, and the direction-choosing page uses one to send your pick back. Both listen on localhost, both are torn down when the feature exits, and nothing either of them handles leaves your computer. Screenshots and annotations from Live Mode are written to your project's temporary files and read by your local agent.

Chrome Extension

The Impeccable Chrome DevTools extension runs entirely in your browser. All anti-pattern detection happens locally on the page you are inspecting. No page content, URLs, or detection results are ever sent to any external server.

The extension stores your rule preferences (which detections are enabled or disabled) using Chrome's built-in sync storage (chrome.storage.sync), which syncs settings across your Chrome instances via your Google account. No other data is stored or transmitted.

The extension requests the following permissions:

GitHub

The source code is hosted on GitHub. Interactions with the repository (issues, pull requests, stars) are governed by GitHub's privacy policy.

Contact

Questions about this policy? Open an issue on GitHub or reach out to @pbakaus.