Privacy
KnightCode is a local CLI workflow with bring-your-own-key model access. This page explains what is stored locally, what is sent to providers, and what the website may collect.
The short version
- No KnightCode account is required.
- You configure your own provider key for model access.
- Agent prompts, file context, and tool results may be sent to the provider/model route you choose.
- Credentials, sessions, settings, skills, and prompts are stored on your machine.
What KnightCode stores locally
- Credentials in
~/.knightcode/agent/auth.json, or in environment variables you set yourself.tools.jsoncan also hold a Brave Search key when you turn web search on. - Sessions as JSONL files, including messages, tool calls, and compaction summaries.
- Settings, skills, prompts, and themes under
~/.knightcodeand, after you trust a folder, under its.knightcodedirectory.
What KnightCode sends over the network
KnightCode sends network requests only when a feature needs them:
- Model requests go to the provider you selected. That can be OpenRouter, a direct provider such as Anthropic or OpenAI, a cloud account, or a server on your machine.
- Web search, when you enable
websearchwith/tools, goes to DuckDuckGo or Brave Search. - Web fetch, when you enable
webfetch, requests the URL the agent is fetching. - Model catalog refreshes come from
knightcode.dev.--offlineorKNIGHTCODE_OFFLINE=1turns them off. - Install, update, and launch pings. Each interactive CLI session and each desktop app launch sends one request to
knightcode.devwith the KnightCode version, whether it was the CLI or the desktop app, and a user agent that names your operating system, runtime, and CPU architecture. The CLI's first session on a new version also marks the install or update. Each request carries an install ID: a one-way hash of a random ID stored in your settings. Only the hash is sent toknightcode.dev. The random ID itself goes only to OpenAI, which receives it as a device ID when you sign in with ChatGPT. The install ID stays the same across launches, so pings from one installation can be linked to each other. Versions released before this ID existed are identified by a hash of the IP address and user agent instead. The site adds a coarse location (country, region, city) from the request and does not store your IP address. This counts how many installations are active each day. The pings are on by default. Turn them off withenableInstallTelemetry: falseorKNIGHTCODE_TELEMETRY=0. The same setting controls the identifying headers KnightCode adds to requests for OpenRouter, NVIDIA NIM, and Cloudflare models. - Bug reports are uploaded to KnightCode only when you run
/bug.
Whatever context you send to a provider is governed by that provider's privacy policy and retention settings.
What the website collects
The website is hosted separately from the CLI. It may receive standard HTTP request logs from the host and uses Vercel Analytics to understand basic page traffic. Do not put secrets into website forms or URLs.
Third-party providers
KnightCode is BYOK. That means provider accounts, billing, retention, rate limits, and abuse monitoring are handled by the services you configure, not by a KnightCode-hosted account system.
Changes
If this policy changes, the “Last updated” date at the top of the page changes with it. Material changes may also be mentioned in the changelog.
Contact
For questions or bug reports, please open an issue on our GitHub repository. For security concerns, please see our Security Policy.