{"id":"src_FPX9VKXmAUWIOOyKwibVI","slug":"posthog-python","name":"PostHog Python","type":"github","url":"https://github.com/PostHog/posthog-python","orgId":"org_RVcfDRcn2piydCEP2lqfD","org":{"slug":"posthog","name":"PostHog"},"isPrimary":false,"metadata":"{\"changelogUrl\":\"https://github.com/PostHog/posthog-python/blob/HEAD/CHANGELOG.md\",\"changelogDetectedAt\":\"2026-03-31T14:13:22.700Z\"}","releaseCount":177,"releasesLast30Days":8,"avgReleasesPerWeek":2.3,"latestVersion":"v7.12.0","latestDate":"2026-04-16T08:39:21.000Z","changelogUrl":"https://github.com/PostHog/posthog-python/blob/HEAD/CHANGELOG.md","hasChangelogFile":true,"lastFetchedAt":"2026-04-19T07:01:02.933Z","trackingSince":"2020-11-23T15:38:15.000Z","releases":[{"id":"rel_jErY9dVNRIZdGDPxPj1C7","version":"v7.12.0","title":"v7.12.0","summary":"## What's Changed\n* chore: merge master into main by @marandaneto in https://github.com/PostHog/posthog-python/pull/513\n\n\n**Full Changelog**: https://...","content":"## What's Changed\n* chore: merge master into main by @marandaneto in https://github.com/PostHog/posthog-python/pull/513\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0","publishedAt":"2026-04-16T08:39:21.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.12.0","media":[]},{"id":"rel_jNeErpEMU-mQUm77IDnDa","version":"v7.11.2","title":"v7.11.2","summary":"## What's Changed\n* chore: add GitHub community health files by @marandaneto in https://github.com/PostHog/posthog-python/pull/505\n* chore(deps): bump...","content":"## What's Changed\n* chore: add GitHub community health files by @marandaneto in https://github.com/PostHog/posthog-python/pull/505\n* chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 by @dependabot[bot] in https://github.com/PostHog/posthog-python/pull/465\n* chore(deps): bump litellm from 1.82.6 to 1.83.0 in /examples/example-ai-dspy by @dependabot[bot] in https://github.com/PostHog/posthog-python/pull/487\n* chore(deps): bump requests from 2.32.5 to 2.33.0 by @dependabot[bot] in https://github.com/PostHog/posthog-python/pull/473\n* chore: update branch references to main by @marandaneto in https://github.com/PostHog/posthog-python/pull/506\n* chore: update endpoint for flags local eval by @patricio-posthog in https://github.com/PostHog/posthog-python/pull/509\n\n## New Contributors\n* @dependabot[bot] made their first contribution in https://github.com/PostHog/posthog-python/pull/465\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2","publishedAt":"2026-04-15T15:45:05.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.11.2","media":[]},{"id":"rel_4K_z_GmYCBOqYda4DWRum","version":"v7.11.1","title":"v7.11.1","summary":"## What's Changed\n* chore: add stale workflow for issues and PRs by @marandaneto in https://github.com/PostHog/posthog-python/pull/502\n* fix(complianc...","content":"## What's Changed\n* chore: add stale workflow for issues and PRs by @marandaneto in https://github.com/PostHog/posthog-python/pull/502\n* fix(compliance): declare capabilities in health endpoint by @andehen in https://github.com/PostHog/posthog-python/pull/501\n* feat: Add os_distro information to events by @parinporecha in https://github.com/PostHog/posthog-python/pull/467\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1","publishedAt":"2026-04-14T11:04:58.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.11.1","media":[]},{"id":"rel_wkPEYLw5zK5GCzVejqNHN","version":"v7.11.0","title":"v7.11.0","summary":"## What's Changed\n* fix(llma): graceful fallback in claude_agent_sdk wrapper by @andrewm4894 in https://github.com/PostHog/posthog-python/pull/495\n* f...","content":"## What's Changed\n* fix(llma): graceful fallback in claude_agent_sdk wrapper by @andrewm4894 in https://github.com/PostHog/posthog-python/pull/495\n* feat(llma): add $ai_stop_reason extraction for all providers by @carlos-marchal-ph in https://github.com/PostHog/posthog-python/pull/499\n* feat: add Gemini embed_content tracking by @carlos-marchal-ph in https://github.com/PostHog/posthog-python/pull/498\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.10.3...v7.11.0","publishedAt":"2026-04-10T15:17:36.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.11.0","media":[]},{"id":"rel_8W1i79ebhGpU46_UkKLfu","version":"v7.10.3","title":"v7.10.3","summary":"## What's Changed\n* fix: pass before_send through module-level setup by @sipa-echo-zaoa in https://github.com/PostHog/posthog-python/pull/472\n* chore:...","content":"## What's Changed\n* fix: pass before_send through module-level setup by @sipa-echo-zaoa in https://github.com/PostHog/posthog-python/pull/472\n* chore: add sampo changeset for before_send module-level setup fix (#472) by @marandaneto in https://github.com/PostHog/posthog-python/pull/489\n\n## New Contributors\n* @sipa-echo-zaoa made their first contribution in https://github.com/PostHog/posthog-python/pull/472\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.10.2...v7.10.3","publishedAt":"2026-04-08T17:43:23.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.10.3","media":[]},{"id":"rel_W36mHGRgV7qqMzbalyu6H","version":"v7.10.2","title":"v7.10.2","summary":"## What's Changed\n* chore: configurabel endpoint for flags local evaluation by @patricio-posthog in https://github.com/PostHog/posthog-python/pull/483...","content":"## What's Changed\n* chore: configurabel endpoint for flags local evaluation by @patricio-posthog in https://github.com/PostHog/posthog-python/pull/483\n\n## New Contributors\n* @patricio-posthog made their first contribution in https://github.com/PostHog/posthog-python/pull/483\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.10.1...v7.10.2","publishedAt":"2026-04-08T13:50:37.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.10.2","media":[]},{"id":"rel_XV6sBSDnYmYplTfiz08ev","version":"v7.10.1","title":"v7.10.1","summary":"## What's Changed\n* fix: pass capture_exceptions as keyword arg in Django middleware by @marandaneto in https://github.com/PostHog/posthog-python/pull...","content":"## What's Changed\n* fix: pass capture_exceptions as keyword arg in Django middleware by @marandaneto in https://github.com/PostHog/posthog-python/pull/488\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.10.0...v7.10.1","publishedAt":"2026-04-08T11:22:24.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.10.1","media":[]},{"id":"rel_7zEVAOfRs3ZqbY_te3pCm","version":"v7.10.0","title":"v7.10.0","summary":"## What's Changed\n* docs: add AI provider integration examples by @richardsolomou in https://github.com/PostHog/posthog-python/pull/466\n* fix: update ...","content":"## What's Changed\n* docs: add AI provider integration examples by @richardsolomou in https://github.com/PostHog/posthog-python/pull/466\n* fix: update localhost port in examples from 8000 to 8010 by @parinporecha in https://github.com/PostHog/posthog-python/pull/453\n* chore: pin litellm to 1.81.13 in example by @marandaneto in https://github.com/PostHog/posthog-python/pull/469\n* feat: add minimum fastapi exception capture repro case by @marandaneto in https://github.com/PostHog/posthog-python/pull/470\n* chore: enforce 7-day minimum release age via uv exclude-newer by @marandaneto in https://github.com/PostHog/posthog-python/pull/476\n* chore(examples): migrate AI examples from pip to uv with locked versions by @richardsolomou in https://github.com/PostHog/posthog-python/pull/471\n* feat(ai): add Claude Agent SDK integration for LLM analytics by @andrewm4894 in https://github.com/PostHog/posthog-python/pull/477\n* docs: add AI provider examples for all LLM analytics integrations by @richardsolomou in https://github.com/PostHog/posthog-python/pull/478\n* fix: propagate missing params in module-level wrapper functions by @dustinbyrne in https://github.com/PostHog/posthog-python/pull/479\n\n## New Contributors\n* @parinporecha made their first contribution in https://github.com/PostHog/posthog-python/pull/453\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.12...v7.10.0","publishedAt":"2026-04-07T16:54:46.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.10.0","media":[]},{"id":"rel_hDJhJt5hubF45gMJqCZay","version":"v7.9.12","title":"v7.9.12","summary":"## What's Changed\n* chore(flags): expose flag_definition_cache_provider by @matheus-vb in https://github.com/PostHog/posthog-python/pull/462\n\n## New C...","content":"## What's Changed\n* chore(flags): expose flag_definition_cache_provider by @matheus-vb in https://github.com/PostHog/posthog-python/pull/462\n\n## New Contributors\n* @matheus-vb made their first contribution in https://github.com/PostHog/posthog-python/pull/462\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.11...v7.9.12","publishedAt":"2026-03-12T09:01:28.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.12","media":[]},{"id":"rel_ERtveSNFOEMmdaOLR4NIp","version":"v7.9.11","title":"v7.9.11","summary":"## What's Changed\n* chore(ci): fix release attribution by @Piccirello in https://github.com/PostHog/posthog-python/pull/461\n\n\n**Full Changelog**: http...","content":"## What's Changed\n* chore(ci): fix release attribution by @Piccirello in https://github.com/PostHog/posthog-python/pull/461\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.10...v7.9.11","publishedAt":"2026-03-11T19:21:05.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.11","media":[]},{"id":"rel_u5WkMn4rdWRKqXJ-Hywqb","version":"v7.9.10","title":"v7.9.10","summary":"## What's Changed\n* fix(ci): attribute release tag to GitHub App by @Piccirello in https://github.com/PostHog/posthog-python/pull/460\n\n\n**Full Changel...","content":"## What's Changed\n* fix(ci): attribute release tag to GitHub App by @Piccirello in https://github.com/PostHog/posthog-python/pull/460\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.9...v7.9.10","publishedAt":"2026-03-10T21:28:53.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.10","media":[]},{"id":"rel_9q1m5rgbLCtjwiu9KjQO5","version":"v7.9.9","title":"v7.9.9","summary":"## What's Changed\r\n* Update release.yml to support commit signing by @Piccirello in https://github.com/PostHog/posthog-python/pull/458\r\n\r\n\r\n**Full Cha...","content":"## What's Changed\r\n* Update release.yml to support commit signing by @Piccirello in https://github.com/PostHog/posthog-python/pull/458\r\n\r\n\r\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.8...v7.9.9","publishedAt":"2026-03-10T20:40:39.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.9","media":[]},{"id":"rel_gMQSxWqffd9RqebiFqtxo","version":"v7.9.8","title":"v7.9.8","summary":"## What's Changed\n* feat(llma): support prompt versions in prompts sdk by @Radu-Raicea in https://github.com/PostHog/posthog-python/pull/454\n* chore(l...","content":"## What's Changed\n* feat(llma): support prompt versions in prompts sdk by @Radu-Raicea in https://github.com/PostHog/posthog-python/pull/454\n* chore(llma): apply prompt SDK review cleanups by @Radu-Raicea in https://github.com/PostHog/posthog-python/pull/456\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.7...v7.9.8","publishedAt":"2026-03-09T14:34:21.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.8","media":[]},{"id":"rel_PZ30A6fsR0l-eIRNSesfA","version":"v7.9.7","title":"v7.9.7","summary":"## What's Changed\n* fix(llma): use distinct_id from outer context if not provided by @ethanporcaro in https://github.com/PostHog/posthog-python/pull/4...","content":"## What's Changed\n* fix(llma): use distinct_id from outer context if not provided by @ethanporcaro in https://github.com/PostHog/posthog-python/pull/449\n* Add warning log for local flag evaluation cold start by @dmarticus in https://github.com/PostHog/posthog-python/pull/452\n\n## New Contributors\n* @ethanporcaro made their first contribution in https://github.com/PostHog/posthog-python/pull/449\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.6...v7.9.7","publishedAt":"2026-03-05T22:10:11.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.7","media":[]},{"id":"rel_o_Wn5mH2y9qICYYRG4nEN","version":"v7.9.6","title":"v7.9.6","summary":"## What's Changed\n* refactor: add PROPERTY_OPERATORS constant for match_property by @dmarticus in https://github.com/PostHog/posthog-python/pull/448\n\n...","content":"## What's Changed\n* refactor: add PROPERTY_OPERATORS constant for match_property by @dmarticus in https://github.com/PostHog/posthog-python/pull/448\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.5...v7.9.6","publishedAt":"2026-03-02T21:29:13.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.6","media":[]},{"id":"rel_0g8qtpXNK-3tU_0kWZsR_","version":"v7.9.5","title":"v7.9.5","summary":"## What's Changed\n* feat: add semver targeting support to local flag evaluation by @dmarticus in https://github.com/PostHog/posthog-python/pull/447\n\n\n...","content":"## What's Changed\n* feat: add semver targeting support to local flag evaluation by @dmarticus in https://github.com/PostHog/posthog-python/pull/447\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.4...v7.9.5","publishedAt":"2026-03-02T20:54:23.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.5","media":[]},{"id":"rel_r4p7wRdXBxHc-tNQr_STs","version":"v7.9.4","title":"v7.9.4","summary":"## What's Changed\n* fix: use $ip not $ip_addess by @iloveitaly in https://github.com/PostHog/posthog-python/pull/356\n* feat(llma): add $ai_tokens_sour...","content":"## What's Changed\n* fix: use $ip not $ip_addess by @iloveitaly in https://github.com/PostHog/posthog-python/pull/356\n* feat(llma): add $ai_tokens_source property to detect token value overrides by @andrewm4894 in https://github.com/PostHog/posthog-python/pull/444\n* fix: revert manual release and add sampo changeset for ai_tokens_source by @carlos-marchal-ph in https://github.com/PostHog/posthog-python/pull/445\n\n## New Contributors\n* @iloveitaly made their first contribution in https://github.com/PostHog/posthog-python/pull/356\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.3...v7.9.4","publishedAt":"2026-02-25T15:29:02.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.4","media":[]},{"id":"rel_e00-cDNJdn1qxKhdyJRQ6","version":"v7.9.3","title":"v7.9.3","summary":"## What's Changed\n* Small fixes for python publishing by @rafaeelaudibert in https://github.com/PostHog/posthog-python/pull/441\n\n\n**Full Changelog**: ...","content":"## What's Changed\n* Small fixes for python publishing by @rafaeelaudibert in https://github.com/PostHog/posthog-python/pull/441\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.2...v7.9.3","publishedAt":"2026-02-18T22:20:39.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.3","media":[]},{"id":"rel_Td2dhZ9EEIpe33BS-Vwgd","version":"v7.9.2","title":"v7.9.2","summary":"## What's Changed\r\n* fix(ai): bind prompt reads to project token by @Radu-Raicea in https://github.com/PostHog/posthog-python/pull/433\r\n* chore: Migra...","content":"## What's Changed\r\n* fix(ai): bind prompt reads to project token by @Radu-Raicea in https://github.com/PostHog/posthog-python/pull/433\r\n* chore: Migrate releases to `sampo` by @rafaeelaudibert in https://github.com/PostHog/posthog-python/pull/398\r\n\r\n\r\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.9.0...v7.9.2","publishedAt":"2026-02-18T22:12:25.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.2","media":[]},{"id":"rel_pxFg6eUkO6zQhmYX5Rz_E","version":"v7.9.0","title":"7.9.0","summary":"## What's Changed\n* test(flags): make wrong-key load_feature_flags deterministic by @andehen in https://github.com/PostHog/posthog-python/pull/432\n* f...","content":"## What's Changed\n* test(flags): make wrong-key load_feature_flags deterministic by @andehen in https://github.com/PostHog/posthog-python/pull/432\n* feat: Support device_id as bucketing identifier for local evaluation by @andehen in https://github.com/PostHog/posthog-python/pull/424\n* chore: release v7.9.0 by @andehen in https://github.com/PostHog/posthog-python/pull/434\n\n\n**Full Changelog**: https://github.com/PostHog/posthog-python/compare/v7.8.6...v7.9.0","publishedAt":"2026-02-17T09:32:41.000Z","url":"https://github.com/PostHog/posthog-python/releases/tag/v7.9.0","media":[]}],"pagination":{"page":1,"pageSize":20,"totalPages":9,"totalItems":177},"summaries":{"rolling":{"windowDays":90,"summary":"The SDK broadened its AI capabilities while hardening feature flag evaluation and improving operational reliability. Prompt management shipped in v7.8.0, then expanded to support versioning and multimodal capture across OpenAI, Gemini, and Anthropic integrations. Local flag evaluation gained semver targeting, device_id bucketing, and ETag caching to reduce polling overhead. The library also tightened retry logic for timeouts and 401 errors, exposed the flag definition cache provider for custom implementations, and surfaced flag evaluation failures through a new `$feature_flag_error` property.","releaseCount":28,"generatedAt":"2026-03-31T14:13:25.286Z"},"monthly":[{"year":2026,"month":2,"summary":"Feature flag evaluation expanded to support device_id as a bucketing identifier for local evaluation, while AI token tracking gained the ability to detect value overrides through a new $ai_tokens_source property. The month also hardened reliability across the board—fixing IP address property naming, preventing HTTP request storms on 401 errors during flag refreshes, and adding Retry-After header respect for 408 responses.","releaseCount":10,"generatedAt":"2026-03-31T14:13:27.380Z"}]}}