NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1013 most downloaded on PyPI
The best Python observability tool! 🪵🔥
Last release 9 days ago
25 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
199 releases · first in 2020
One column per quarter.
Configure proxy managers before other threads can use them by @adriangb in #2479
Enable TCP keepalive and recycle idle connections in Logfire's HTTP sessions by @adriangb in #2309
Make instrument_mcp() work with mcp 2 / fastmcp 4 by @samuelcolvin in #2439
instrument_mcp() work with mcp 2 / fastmcp 4 by @samuelcolvin in #2439logfire.instrument_monty() by @davidhewitt in #2371logfire-cli 0.1.7 or later in the logfire compatibility package.Require logfire-cli 0.1.5 or later in the logfire compatibility package.
logfire-cli 0.1.5 or later in the logfire compatibility package.Require logfire-cli 0.1.4 or later in the logfire compatibility package.
logfire-cli 0.1.4 or later in the logfire compatibility package.logfire run by @strawgate in #2427Handle project setup for accounts without organizations by @strawgate in #2470
Add logfire.instrument_litestar() with support for Litestar 2.11 and later by @dmontagu in #2249
logfire.instrument_litestar() with support for Litestar 2.11 and later by @dmontagu in #2249logfire run detects missing instrumentation packages by @krishna3554 in #2082force_flush() by @L4XB in #2404Remove deprecated query client APIs by @alexmojaki in #2333
version=2 by @alexmojaki in #2363logfire.instrument_pydantic():
input_data on logs produced by logfire.instrument_pydantic(record='failure') by @alexmojaki in #2352logfire.experimental namespace:
logfire.pydantic by @alexmojaki in #2369Fix two races in Claude Agent SDK tool-use hook instrumentation by @dmontagu in #2194
system.cpu.load_average.1m and system.process.count by @strawgate in #2014logfire projects list --json by @strawgate in #2280logfire auth complete without a TTY by @strawgate in #2275logfire --non-interactive by @strawgate in #2283logfire projects status by @strawgate in #2286projects status: work from a saved read token alone by @strawgate in #2296fix(google-genai): break circular reference in span event body by @dmontagu in #2157
logfire.variables_clear since it's for tests, not users by @alexmojaki in #2033httpx2 support in logfire.instrument_httpx() by @alexmojaki in #2095
httpx2 support in logfire.instrument_httpx() by @alexmojaki in #2095Add resource_attributes and resource_detectors options to logfire.configure by @dmontagu in #2012
resource_attributes and resource_detectors options to logfire.configure by @dmontagu in #2012Pre-populate host.* and os.* resource attributes by @strawgate in #2013
host.* and os.* resource attributes by @strawgate in #2013Composition and templating with native handlebars by @alexmojaki in #1954
pylf_v\d+_ pattern to default scrubbing patterns by @alexmojaki in #1993logfire.configure() before lazy remote variables by @alexmojaki in #2002…that are backwards compatible. However, a couple deprecations were introduced:
Add support for new /v2/query endoint by @Viicos in #1897
This introduces changes to the LogfireQueryClient (and its AsyncLogfireQueryClient async variant), that are backwards compatible.
However, a couple deprecations were introduced:
query_json() method was deprecated. Use query_json_rows() instead.query_json_rows() / query_arrow() / query_csv() methods without providing a min_timestamp is deprecated.See the announcement for more details.
Support OpenTelemetry SDK 1.42 by @alexmojaki in #1978
Fix token pattern to accept organization IDs for API keys by @Viicos in #1980
Add logfire.forward_export_request and forward_export_request_starlette methods by @alexmojaki in #1974
logfire.forward_export_request and forward_export_request_starlette methods by @alexmojaki in #1974ResolvedVariable.reason by @alexmojaki in #1945traceback.format_exception by @alexmojaki in #1948db.query.text to scrubber SAFE_KEYS by @bendrucker in #1959feat: gateway cli command by @ddanielcruzz in #1915
CLI:
prompt command without --project by @Kludex in #1912Integrations:
model_dump in usage cost path by @imp-joshi in #1886Other:
logfire.version to resource attributes by @alexmojaki in #1911logfire.configure() by @Kludex in #1904level param to @logfire.instrument() by @imp-joshi in #1871Support OpenTelemetry SDK 1.40.0 by @alexmojaki in #1861
Add push_dataset helpers to the experimental API client by @dmontagu in #1848
push_dataset helpers to the experimental API client by @dmontagu in #1848fix: Show token badges for OpenAI streaming logs by @alexmojaki in #1857
Capture token usage and cost attributes in OpenAI streaming logs by @alexmojaki in #1846
operation.cost for OpenAI embeddings by @alexmojaki in #1843gen_ai.usage.raw for Anthropic by @alexmojaki in #1847cf-connecting-ip header in forward_export_request by @BreytMN in #1824sys.stdout better by @alexmojaki in #1840Add logfire.instrument_claude_agent_sdk() by @alexmojaki in #1799
logfire.instrument_claude_agent_sdk() by @alexmojaki in #1799logfire.url_from_eval(report) method by @Kludex in #1694gen_ai.usage.input_tokens for Anthropic by @alexmojaki in #1812Add logfire auth logout command by @ai-man-codes in #1781
Add gen_ai.usage.raw attribute to OpenAI Responses spans by @alexmojaki in #1777
gen_ai.usage.raw attribute to OpenAI Responses spans by @alexmojaki in #1777Handle anthropic beta messages and refactor by @alexmojaki in #1774
Add gen_ai.system attribute to anthropic spans, enabling token/cost badges by @alexmojaki in #1760
feat: add browser proxy helpers: forward_export_request and logfire_proxy by @AlanPonnachan in #1697
Add experimental datasets package by @dmontagu in #1711
Add managed variables by @dmontagu in #1691
feat: Add logfire.db_api — PEP 249 DB API 2.0 interface by @dmontagu in #1692
logfire.db_api — PEP 249 DB API 2.0 interface by @dmontagu in #1692feat: Add multi-token support for project migration by @adriangb in #1672
feat: Add OTel Gen AI semantic convention scalar attributes by @brightsparc in #1657
feat: pytest integration by @jirikuncar in #1648
Add DSPy integration to logfire by @bdsaglam in #1625
Adds aiohttp request body capture. by @adtyavrdhn in #1595
logfire.instrument_surrealdb by @alexmojaki in #1573
logfire.instrument_surrealdb by @alexmojaki in #1573ProcessPoolExecutor patch #1556 by @pipinstalled in #1567write_token permission in logfire projects commands by @Viicos in #1545Support OpenTelemetry 1.39.0, drop support for earlier versions, stop using the OTel events API/SDK by @alexmojaki in #1562
new_trace parameter to logfire.instrument by @njz-cvm in #1499instrument_google_genai by @alexmojaki in #1551ProxyLogger emit() by @qianl15 in #1561Make logfire.instrumented functions cloudpicklable by @alexmojaki in #1542
logfire.instrumented functions cloudpicklable by @alexmojaki in #1542Limit retried exports based on total size, not number by @alexmojaki in #1527
Ensure OTEL_EXPORTER_OTLP_HEADERS doesn't override logfire token by @alexmojaki in #1500
OTEL_EXPORTER_OTLP_HEADERS doesn't override logfire token by @alexmojaki in #1500Skip recording exceptions on NonRecordingSpan by @alexmojaki in #1497
NonRecordingSpan by @alexmojaki in #1497Support OpenTelemetry 1.38, fix instrument_google_genai and instrument_langchain by @alexmojaki in #1495
instrument_google_genai and instrument_langchain by @alexmojaki in #1495Comply with opencode MCP format by @Kludex in #1488
Add "type" keyword on opencode MCP settings by @Kludex in #1486
Store OpenAI Responses streaming response in events format understood by UI by @alexmojaki in #1479
Record response when streaming OpenAI Responses API by @stevenh in #1457
Add experimental exception_callback configuration by @alexmojaki in #1355
exception_callback configuration by @alexmojaki in #1355operation.cost metric in spans by @alexmojaki in #1435pyproject.toml to be PEP639 compliant by @Kludex in #1429canonicalize_exception_traceback for RecursionError by @alexmojaki in #1455Trigger auth command from prompt by @Kludex in #1423
Fix Root Model Not Rendering As Expected by @dhruv-ahuja in #1396
Allow capturing headers and response body with logfire.instrument_aiohttp_client() by @adtyavrdhn in #1405 and #1409
Update to OpenTelemetry SDK 1.37.0, drop support for <1.35.0 by @alexmojaki in #1398
Fix: check LOGFIRE_IGNORE_NO_CONFIG from environment when needed by @Lftobs in #1379
LOGFIRE_IGNORE_NO_CONFIG from environment when needed by @Lftobs in #1379gen_ai messages by @alexmojaki in #1392Export attach_context and get_context directly from logfire module, not just logfire.propagate by @dhruv-ahuja in #1385
attach_context and get_context directly from logfire module, not just logfire.propagate by @dhruv-ahuja in #1385ensure_ascii=False to json.dumps calls by @qiangxinglin in #1381stack_offset from with_settings() by @LucasSantos27 in #1380Add logfire.instrument_print() by @alexmojaki in #1368
logfire.instrument_print() by @alexmojaki in #1368logfire.instrument by @stevenh in #1337logfire_token to scrubbing patterns by @alexmojaki in #1367Add specific code agent options for logfire prompt by @Kludex in #1350
logfire prompt by @Kludex in #1350Add --base-url to CLI by @Kludex in #1345
logfire.instrument_google_genai() fixes for response_schema and elided content by @alexmojaki in #1342
logfire.instrument_google_genai() fixes for response_schema and elided content by @alexmojaki in #1342enable_commenter and commenter_options args of instrument_sqlalchemy by @alexmojaki in #1335urllib3 logs while checking token by @alexmojaki in #1341Ensure logfire_api.LogfireSpan.context and other attrs are None by @alexmojaki in #1317
logfire_api.LogfireSpan.context and other attrs are None by @alexmojaki in #1317Able to see output from token selection by @Kludex in #1312
Your coding agent can read these notes before it upgrades. Set up the MCP server →