github.com-openai-openai-dotnet
all · 6 devs · built 2026-08-09
Repository snapshot
Monthly reports
No monthly reports available yet.
Performance over time
ETV stacked by Growth, Maintenance and Fixes.
Average performance per developer
ETV per active developer per month.
Active developers over time
Unique developers committing each day.
Knowledge concentration
How dependent is this repo on a small number of contributors? Higher top-1 share = higher key-person risk.
Jose Arriaga Maldonado owns 47.0 % of commits.
Top contributors
Most impactful commits
Top 20 by ETV in the all-time window.
- 8.5ETVPrepare 2.2.0-beta.2 release (Part 1) (#349)Jose Arriaga Maldonado · d6615abe · 2025-02-18
- 3.2ETVAdd ApplyPatchTool for Responses (#1067)Jose Arriaga Maldonado · c76b359e · 2026-04-03
- 2.9ETV[Audio] Add support for diarized audio transcription (#1008) [Audio] Add support for diarized audio transcriptionShivangiReja · d002b9c3 · 2026-03-17
- 2.7ETVAdd support for web search action (#1064)Jose Arriaga Maldonado · 878d727e · 2026-04-02
- 2.2ETVAdd ChatTools and ResponseTools helper classes (#422) This PR adds functionality for managing OpenAI function tools in chat completions and responses, implementing two utility classes: `ChatTools` and `ResponseTools`. ### Key Features - Unified Tool Management - Both classes handle local and remote MCP (Model Context Protocol) tools - Support for both static method tools and remote MCP server tools - Vectorized tool lookup using embeddings for smart tool filtering - Tool Registration - Local tool registration via reflection from static methods - Remote tool registration from MCP servers - Tool Filtering - Vector-based tool filtering when an `EmbeddingClient` is provided - Configurable similarity thresholds - Customizable maximum tool limitsChristopher Scott · 9308b2b1 · 2025-05-09
- 2.1ETV[Skills] Add Skills API support (#1077) * [Skills] Add Skills API supportShivangiReja · f29f382f · 2026-04-10
- 2.1ETVGenerate ListChatCompletions with pagination (#549)Christopher Scott · 8b34d7c1 · 2025-07-29
- 2.0ETV[Diagnostics] Add Stainless telemetry headers (#1260) * [Diagnostics] Add Stainless telemetry headers Outgoing requests now carry six structured headers describing the SDK and the platform that issued them, bringing the .NET library to parity with the other official OpenAI SDKs: X-Stainless-Lang csharp X-Stainless-Package-Version 2.12.0 X-Stainless-Runtime dotnet X-Stainless-Runtime-Version 8.0.11 X-Stainless-OS Windows X-Stainless-Arch x64 These restate, in a machine-parseable form, information already present in the User-Agent, plus the process CPU architecture, so consumers no longer have to parse the user agent string. The User-Agent header itself is unchanged, as Azure services depend on its current shape. System.ClientModel's UserAgentPolicy could not be reused: it exposes only the composed string, and the structured inputs behind it are internal. Parsing that string back apart would reintroduce exactly the fragility this change exists to remove, so the values are derived directly. Also adds an opt-out, via the OpenAI.TelemetryDisabled AppContext switch or the OPENAI_TELEMETRY_DISABLED environment variable. When set, the library sends neither these headers nor the User-Agent it would otherwise add; a User-Agent supplied by the caller is still honored, as are the Authorization, OpenAI-Organization, and OpenAI-Project headers. The setting is read once when a pipeline is built, matching how the experimental OpenTelemetry switch behaves. Implementation notes: - Headers are applied by the single shared per-call policy that every client is built on, so no client can be constructed without them. - Values are computed once per process and are never allowed to fail a request; every path degrades to "unknown" rather than throwing. - Platform detection is netstandard2.0-safe. OSPlatform.FreeBSD and the mobile and browser platforms do not exist in that reference assembly, so they are created by name. Android and the Apple mobile platforms are evaluated before Linux and macOS, because Mono and legacy Xamarin report them as their base platform. - Free-form platform text is normalized to printable ASCII and bounded in length. The package version is not: it is reproduced verbatim so that it always matches the User-Agent, and falls back to "unknown" if it could not be transmitted unaltered, rather than being rewritten into a value that would silently disagree. - Realtime WebSocket handshakes deliberately omit these headers, matching the other official OpenAI SDKs. Regular HTTP requests from RealtimeClient include them. Existing session recordings are unaffected. A RemoveHeaderSanitizer in OpenAIRecordedTestBase strips the headers before the proxy matches a playback request and before a recording is written, so nothing needed to be re-recorded and future recordings will not capture machine-specific values. Coverage lives in 80 new mock-based tests spanning normalization, every OS and architecture branch, never-throw behavior, header application and override, retry de-duplication, and opt-out scope, plus a guard asserting the package version header never drifts from the User-Agent. Measured cost is roughly 590 ns, 912 bytes, and 183 wire bytes per request. No public API change and no new dependencies. * Addressing PR feedback * Addressing additional PR feedback. * Removing arbitrary length for ApplicationId segment of the User-Agent header and allowing a more reasonable 512 characters. * Renaming AppContext switch for telemetry opt-out to better follow naming patterns. * Updating to avoid creating telemetry details when opt-out is active.Jesse Squire · 26047cb2 · 2026-07-31
- 1.6ETVAdd Action property to ImageGenerationTool (#1060)Christopher Scott · 3da05e29 · 2026-04-02
- 1.6ETVGenerate GetChatCompletionMessages with pagination (#569)Christopher Scott · 45f9ea51 · 2025-07-31
- 1.5ETVAdd `AuthenticationPolicy` constructor to other clients (#575) Following up after https://github.com/openai/openai-dotnet/pull/565.Jose Arriaga Maldonado · 3613b6a0 · 2025-07-31
- 1.5ETV[Audio] Add ChunkingStrategy for audio transcription (#1036) * [Audio] Add ChunkingStrategy for audio transcriptionShivangiReja · a20168bf · 2026-03-20
- 1.5ETVAdd `ResponseItem` constructors (#625) All the classes derived from `ResponseItem` now have public constructors, and these constructors are generated. A side effect of making these classes behave as both, inputs and outputs, was that their required properties got setters. Setters make sense when the values of these properties can be updated, but in this particular case they should only be settable at construction time. This is a limitation in the code generator being tracked by the following issue: 🔗 https://github.com/microsoft/typespec/issues/5175#issuecomment-3222039076Jose Arriaga Maldonado · 4376162f · 2025-08-28
- 1.4ETVRestore `Model` in `ResponsesClient` (#870) * Restored `Model` in `ResponseClient` * Converted `ResponseTokenUsage`, `ResponseInputTokenUsageDetails`, and `ResponseOutputTokenUsageDetails` into protocol models * Fixed examplesJose Arriaga Maldonado · 74f7e256 · 2025-12-11
- 1.3ETVRemove typed ProcessMessageAsync methods (#1132)Christopher Scott · 9c02a591 · 2026-05-07
- 1.1ETV[Audio] Add SSE streaming support for speech generation (#1047) Add SSE streaming support for speech generationShivangiReja · 1eb5f826 · 2026-03-25
- 1.0ETVPrepare 2.5.0 release (#713)Jose Arriaga Maldonado · 02c8c771 · 2025-09-24
- 1.0ETVAdd derive types for ResponseMessageAnnotation (#649) * Add derive types for ResponseMessageAnnotationShivangiReja · dd6aa130 · 2025-09-03
- 1.0ETVExpose `ResponseItem.Kind` and add `protected internal` constructor to `ResponseItem` (#1183) This PR updates the Responses item model surface area by introducing a public `ResponseItemKind` extensible enum type and shifting tool models/serialization from the internal `InternalItemType` to `ResponseItemKind`, including widening `ResponseItem`’s constructor accessibility to `protected internal` to support derivation.Jose Arriaga Maldonado · 3840091c · 2026-05-30
- 0.9ETV[Audio] Add Voices API support to AudioClient (#1056) * Add voice api in Audio * Export APIShivangiReja · 8cbe969e · 2026-03-31