---
title: telemetry | CodeWeaver Docs
description: API reference for codeweaver.core.config.telemetry
url: "https://docs.knitli.com/api/core/config/telemetry"
type: static
generatedAt: "2026-04-17T17:21:07.915Z"
---

# telemetry
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/core/config/telemetry.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F&text=telemetry)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F&text=telemetry)[Share on Bluesky](https://bsky.app/intent/compose?text=telemetry%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F&title=telemetry)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F&t=telemetry)[Share on Email](mailto:?subject=telemetry&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F)[Share on WhatsApp](https://wa.me/?text=telemetry%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Fconfig%2Ftelemetry%2F&text=telemetry)
# `codeweaver.core.config.telemetry`
[Section titled “codeweaver.core.config.telemetry”](#codeweavercoreconfigtelemetry)
Telemetry configuration settings.

Configuration sources (priority order):

 1. Environment Variables (set in your shell or env file, in that order)
 1. CodeWeaver configuration (see `CodeWeaverSettings` for priority order)
 1. Defaults defined in `TelemetrySettings`, which are: disable_telemetry: false tools_over_privacy: false (i.e., privacy first) posthog_project_key: CodeWeaver’s PostHog key (not an API key) posthog_host: [https://us.i.posthog.com ↗](https://us.i.posthog.com) batch_size: 10 batch_interval_seconds: 60

Environment Variables: CODEWEAVER__TELEMETRY__DISABLE_TELEMETRY CODEWEAVER__TELEMETRY__TOOLS_OVER_PRIVACY CODEWEAVER__TELEMETRY__POSTHOG_PROJECT_KEY CODEWEAVER__TELEMETRY__POSTHOG_HOST CODEWEAVER__TELEMETRY__BATCH_SIZE CODEWEAVER__TELEMETRY__BATCH_INTERVAL_SECONDS

## Class: `TelemetrySettings`
[Section titled “Class: TelemetrySettings”](#class-telemetrysettings)
Telemetry configuration settings.

We collect basic telemetry data **by default** to help us improve CodeWeaver. **We do not collect *any* potentially identifying information.** We **DO *NOT* collect**:

 - file paths and repository names (all hashed),
 - potential secrets (explicitly not included in serialization),
 - any queries or results content (unless you explicitly tell us we can, see `tools_over_privacy`). If enabled, we **DO collect**:
 - usage patterns,
 - errors,
 - performance metrics,
 - settings usage (e.g., which providers you use, whether you explicitly set certain settings, etc). This helps us make CodeWeaver better for everyone. **We will never sell your data or show you ads. We only use it to improve CodeWeaver.** CodeWeaver implements a granular privacy-first approach to telemetry. *Every single serializable class must define its own `__telemetry_keys__` method to explicitly list which fields are safe to serialize for telemetry purposes.* This ensures that no potentially identifying information is ever collected.

We further screen data on ingest at Posthog to filter out any potential secrets or PII before we actually see and store it.

### Method: `model_post_init`
[Section titled “Method: model_post_init”](#method-model_post_init)

**

```
model_post_init()
```

Post-initialization to track unset fields and set defaults.

## Class: `TelemetrySettingsDict`
[Section titled “Class: TelemetrySettingsDict”](#class-telemetrysettingsdict)
TypedDict for Telemetry settings.

Not intended to be used directly; used for internal type checking and validation.